본문 바로가기

Kubernetes (k8s)21

[k8s] how to use falco secure verification on k8s -- CKS Falco는 클라우드 환경에서 발생할 수 있는 보안 이슈를 탐지하고 알리는 오픈소스 보안 도구입니다. k8s 기반 환경에서 Falco를 사용하여 시스템에서 발생하는 Event를 모니터링 하고, Event 발생 시 조치를 취할 수 있습니다. 1.Falco - docker container로 실행 [참조] https://falco.org/blog/intro-k8s-security-monitoring/ https://falco.org/docs/getting-started/running/#docker-privileged https://github.com/falcosecurity/falco/issues/2469 l 커널 모듈과 함께 falco latest를 실행 docker pull falcosecurity/fa.. 2023. 8. 19.
[k8s] Test Cilium Hubble Cilium은 Kubernetes를 위한 고급 네트워킹 및 보안 기능을 제공하는 오픈 소스 프로젝트입니다. Linux 커널의 eBPF(extended Berkeley Packet Filter) 기술을 활용하여 효율적이고 유연한 네트워킹 및 보안 정책을 가능하게 합니다. Cilium CNI 플러그인은 kube-proxy와 같은 기본 Kubernetes 네트워킹 플러그인을 대체하고 향상된 네트워킹 기능을 제공합니다. 다음 글에서는 Cilium에서만 제공되는 hubble에 대해서 테스트 해보겠습니다. 1.Enable hubble in Cilium 이전 글과 같이 cilium을 정상적으로 kubernetes cluster 환경에서 설치 후 cilium hubble을 사용가능한 상태로 만듭니다. kevin@k8s.. 2023. 6. 12.
[k8s] migrate calico to cilium [설치 참조 문서] https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/ https://cilium.io/blog/2020/10/06/skybet-cilium-migration/ https://kubernetes.io/ko/docs/tasks/administer-cluster/network-policy-provider/cilium-network-policy/ https://github.com/microservices-demo/microservices-demo [Calico 삭제] calico 관련 daemonset, deploy, po 등을 삭제합니다. kevin@k8s-master:~$ kubectl get po,ds,deploy -.. 2023. 6. 12.
[k8s] Flannel+Calico에서 Cilium으로 CNI Live Migration을 수행하는 방법 https://cilium.io/blog/2020/10/06/skybet-cilium-migration/ How to perform a CNI Live Migration from Flannel+Calico to Cilium This is a guest blog by Josh Van Leeuwen and covers how Josh implemented a CNI live migration for a customer, Sky Betting and Gaming,... cilium.io 2023. 6. 7.
[k8s] k8sgpt -- 쿠버네티스와 ChatGPT? https://medium.com/techbeatly/chatgpt-for-your-kubernetes-cluster-k8sgpt-649f2cad1bd5 https://github.com/k8sgpt-ai/k8sgpt 다음 글을 참조하며 테스트를 진행해보았다. kevin@k8s-master:~/k8sgpt$ brew tap k8sgpt-ai/k8sgpt kevin@k8s-master:~/k8sgpt$ brew install k8sgpt ==> Installing k8sgpt-ai/k8sgpt/k8sgpt dependency: isl ==> Pouring isl--0.26.x86_64_linux.bottle.tar.gz 🍺 /home/linuxbrew/.linuxbrew/Cellar/isl/0.26: 74.. 2023. 6. 1.
[k8s] Deploy a Django application on kubernetes & HPA test 1.Docker image build & push [git clone] git clone https://github.com/MachDn/django-todo-cicd.git kevin@k8s-master:~$ cd django-todo-cicd/ 연습에 사용할 django 기반 app을 git clone 합니다. [Create Docker image] kevin@k8s-master:~/django-todo-cicd$ docker build -t moveho/django-todo:latest . kevin@k8s-master:~/django-todo-cicd$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE moveho/django-todo latest 8fc05.. 2023. 5. 24.
[k8s] Rollout blue-green -- workbook [Blue-green 배포] 트래픽을 한번에 구버전에서 신버전으로 옮기는 방법입니다. Blue/Green 배포에서 현재 운영중인 서비스 환경을 Blue 라고 부르고, 새롭게 배포할 환경을 Green이라고 부릅니다. Blue Green의 서버를 동시에 나란히 구성해둔 상태로 배포 시점에 로드밸런서가 트래픽을 Blue에서 Green으로 일제히 전환 시킵니다. 새로운 버전에 문제가 없다고 판단 됐을 시점에 Blue 구버전을 제거하거나 다음 배포를 위해 유지해 둘 수도 있습니다. 이를 쿠버네티스 환경에서 실습 해보는 것이 이 워크북의 주요 내용입니다. 1.Blue-green 배포 실습환경 구성 [deployment.yaml 파일 생성] apiVersion: apps/v1 kind: Deployment metad.. 2023. 5. 23.
[k8s] Rollout Canary -- workbook [Canary 배포] 점진적으로 구버전에 대한 트래픽을 신버전으로 옮기는 것은 롤링 업데이트 방식과 비슷합니다. 하지만 차이점은 새로운 버전에 대한 오류를 조기에 감지하는 것입니다. 소수만 새로운 버전으로 옮겨둔 상태에서 서비스를 운영하고 새로운 버전에 이상이 없다고 판단되면 모든 트래픽을 신규 버전으로 옮기는 배포 방식입니다. 새로운 버전에 대한 위험성을 최소화 할 수 있지만, 신/구 버전이 동시에 존재하므로 호환성 문제가 발생할 수 있습니다. 이를 쿠버네티스 환경에서 실습 해보는 것이 이 워크북의 주요 내용입니다. 1.Canary 배포 실습환경 구성 [deployment.yaml 파일 생성] apiVersion: apps/v1 kind: Deployment metadata: labels: app: w.. 2023. 5. 21.
[k8s] VPA (Vertical Pod Autoscaler) 설치 및 실습 VPA (Vertical Pod Autoscaler) 는 Pod의 리소스를 감시하고, pod 의 resource가 부족한 경우 pod를 Restart 하며 pod의 resource를 증가시킵니다. Kubernetes VPA는 pods에 대한 CPU 및 Memory 예약을 자동으로 조정하여 애플리케이션의 크기를 적절하게 조정할 수 있게 지원합니다. 클러스터의 리소스 사용률을 개선하고 다른 pod를 위한 CPU 및 Memory를 확보할 수 있습니다. 직접 k8s 클러스터에 VPA를 설치하고 테스트 하는것을 해당 글에서 다루어 봅니다. 1.Metric Server 설치 kubectl apply -f \ https://github.com/kubernetes-sigs/metrics-server/releases/l.. 2023. 5. 16.
[k8s] TLS Ingress 생성해서 https로 서비스 하기 1. Namespace 생성 kevin@k8s-master:~$ kubectl create ns testing namespace/testing created kevin@k8s-master:~$ kubectl get ns testing NAME STATUS AGE testing Active 9s kevin@k8s-master:~$ kubectl create deployment nginx-pod --namespace testing --image=nginx:latest --replicas=1 deployment.apps/nginx-pod created kevin@k8s-master:~$ kubectl expose deployment nginx-pod --namespace testing --name=nginx-.. 2023. 5. 3.