본문 바로가기

쿠버네티스

(5)
AWS EKS 클러스터 인증 및 kubectl RBAC 설정 방법 외부 호스트에서 새로운 IAM 정보로 AWS EKS의 kubernetes API로 kubectl 명령을 날릴 수 있는 방법을 안내한다. 기본적인 AWS 사용법 및 IAM 서비스에 대한 이해도가 있다는 것을 바탕으로 안내한다. STEP 1 : IAM 사용자에게 할당할 정책 생성 및 할당 아래의 json 내용으로 RBAC을 설정할 IAM 계정에 할당할 정책을 생성한 후 할당한다. { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "eks:ListFargateProfiles", "eks:UpdateClusterVersion", "eks:ListNodegroups", "eks:Descr..
쿠버네티스 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 ...
Kubernetes 네트워킹 이해하기 https://www.notion.so/bscnote/Kubernetes-a453b0a968524236bda4f1f2ccd5f8cc Kubernetes 네트워크 정리 Kubernetes Network www.notion.so