본문 바로가기

개발관련/Kubernetes

(10)
Argo CD Webhook(with Bitbucket) Argo CD에서는 기본적으로 3분 뒤 Git Repository를 폴링하여 새로운 manifest의 업데이트를 감지한다. 이런 지연 시간이 맘에 안든다면, Argo CD API 서버가 Git Repository의 Webhook 이벤트를 수신하도록 구성할 수 있다. Argo CD는 Github, GitLab, Bitbucket, Bitbucket Server 및 Gogs의 git webhook 알림을 지원한다. 이번 글에서는 Bitbucket Webhook 이벤트를 트리거하여 Argo CD Sync를 자동으로 하는 방법을 알아본다. 사전 준비사항은 아래와 같다. kubectl이 설치되어 있어야 한다. Argo CD 대시보드가 있어야 한다.(Argo CD가 설치되어 있어야 한다.) Argo CD에 Webh..
쿠버네티스 Pod의 우아한 셧다운(Graceful shutdown of Pod with Kubernetes) 쿠버네티스에서 새로운 버전의 Pod를 배포할 때, blue-green 방식으로 Rolling update된다. 따라서 기존 Pod를 삭제하고 새로운 Pod로 트래픽을 절체하게 된다. 이 때, 기존 Pod 내부에서 돌아가고 있는 어플리케이션(예를 들어 백엔드 어플리케이션)의 Task가 모두 완료되지 않은 상태에서 기존 Pod를 삭제하게 된다면, 해당 Task 혹은 세션이 만료되지 않은 상태이기 때문에 애플리케이션 레이어의 네트워크 에러 및 장애가 발생할 수 있다. 이는 굉장히 위험할 수 있기 때문에(결제와 관련된 Task의 경우) 반드시 기존 Task를 모두 완료한 상태에서 기존 Pod를 삭제하도록 해야 한다. 일단 Pod의 종료 이벤트에 대해서 알아보자. 참고 Pod의 종료 이벤트 순서는 Pod를 시작하..
kubernetes Pod의 진단을 담당하는 리소스 : probe 프로브(Probe)는 컨테이너에서 kubelet에 의해 주기적으로 수행되는 진단(diagnostic)이다. 진단을 수행하기 위해서, kubelet은 컨테이너에 의해서 구현된 핸들러를 호출한다. 핸들러에는 다음과 같이 세 가지 타입이 있다. ExecAction : 컨테이너 내에서 지정된 명령어를 실행한다. 명령어 상태 코드 0으로 종료되면 진단이 성공한 것으로 간주한다. TCPSocketAction : 지정된 포트에서 컨테이너의 IP 주소에 대해 TCP 검사를 수행한다. 포트가 활성화되어 있다면 진단이 성공한 것으로 간주한다. HTTPGetAction : 지정된 포트 및 경로에서 컨테이너의 IP 주소에 대한 HTTP Get 요청을 수행한다. 응답의 상태코드가 200 보다 크고 400 보다 작으면 진단이 성..
kubectl에서 연결할 쿠버네티스 클러스터 변경하는 방법 여러개의 쿠버네티스 클러스터를 사용하고 있을 경우 로컬 pc에서 하나의 kubectl로 각 클러스터를 스위칭 해가며 연결할 수 있어야 한다. 예를 들어 아래 두 개의 클러스터가 있다고 가정한다. kube-cluster-1 kube-cluster-2 그리고 kubectl을 사용할 pc(혹은 서버)의 ./kube/config 내용 중 contexts 내용이 아래와 같다고 가정한다. ... contexts: - context: cluster: kube-cluster-1 user: foo@kube-cluster-1 name: foo@kube-cluster-1 - context: cluster: kube-cluster-2 user: var@kube-cluster-2 name: var@kube-cluster-2 ...
Dockerfile 여러개 두고 골라서 쓰는 방법 여러개의 Dockerfile을 두고 골라서 빌드 가능 예 ) docker build -t api-server:latest . -f dev.Dockerfile docker build -t api-server:latest . -f stg.Dockerfile docker build -t api-server:latest . -f prod.Dockerfile docker build -t : . -f
AWS EKS에 ALB Ingress Controller 한큐에 세팅하는 스크립트 #/bin/bash echo '>>> CREATE ALBIngressControllerIAMPolicy ' aws iam create-policy \ --policy-name ALBIngressControllerIAMPolicy \ --policy-document https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.3/docs/examples/iam-policy.json echo '' echo '>>> Connecting ALBIngressControllerIAMPolicy To WorkerNode Role' NG_ROLE=`kubectl -n kube-system describe configmap aws-au..
Kubernetes 환경 구성하기 https://www.notion.so/bscnote/Kubernetes-92c022b0cde94661af8cd9c16bf11807 Kubernetes 환경 구성하기 Overview www.notion.so
Kubernetes 네트워킹 이해하기 https://www.notion.so/bscnote/Kubernetes-a453b0a968524236bda4f1f2ccd5f8cc Kubernetes 네트워크 정리 Kubernetes Network www.notion.so