Kubernetes
-
Deployment RollBackSystemEngineering/kubernetes 2021. 11. 29. 15:42
개요 운영을 하면서 배포 이미지에 문제가 생길 경우 빠르게 롤백해야 하는 상황이 생긴다. 롤백 방법을 자주 까먹어 정리하여 글을 쓴다. 리비전 확인 롤백 가능한 리비전을 아래 명령어로 확인 할 수 있다. $ kubectl rollout history deployment srebgk-deployment deployment.apps/srebgk-deployment REVISION CHANGE-CAUSE 63 64 65 66 67 68 69 70 71 72 73 리비전 상세정보 롤백이 필요할 때 리비전의 상세정보를 확인하여 이미지 버전 및 파드의 상세정보를 확인 가능하다. $ kubectl rollout history deploy srebgk-deployment --revision=64 설정 변경 롤백 릴리즈..
-
EKS 환경에서 kubeconfig 적용하기CloudEngineering (AWS)/EKS 2021. 11. 5. 21:24
개요 EKS의 사용률이 높아지면서 운영자의 입장에서는 그만큼 관리해야 할 클러스터가 많아질 것이다. EKS 기본 환경 Setting부터 여러 개의 클러스터 접근 방법에 대해 알아보려 한다. 쿠버네티스는 kubectl에 대한 인증정보를 kubeconfig라는 yaml파일에 저장한다. EKS 클러스터는 어떻게 접근을 하는지, 어떻게 인증을 받아오는지 알아보자. Kubeconfig EKS 클러스터에 접근 가능한 kubeconfig파일을 생성하는 것은 간단하다. aws command 한 줄이면 인증 정보를 kubeconfig 파일에 저장할 수 있다. aws eks --region update-kubeconfig --name EKS에 인증을 받아오는 구조는 어떤 방식일까? EKS 클러스터의 세부 정보 탭에 API..
-
PodDisruptionBudget을 이용한 Pod 재배치SystemEngineering/kubernetes 2021. 9. 7. 22:11
개요 쿠버네티스 환경을 운영하다 보면 클러스터의 노드를 변경해야 하는 순간이 온다. 이럴 때 교체 대상이 되는 노드를 drain 한다. drain은 노드 위에서 운영되고 있는 Pod를 다른 노드로 재 배치하고 Schedule을 중지시킨다는 내용이다. 하지만 drain을 무작정하게 되면 모든 파드가 동시에 재배치 되거나 헬스 체크를 통과하기 전에 다음 파드의 재배치가 시작되어 정상적인 파드가 하나도 없는 상태가 될 가능성이 있다. 이러한 현상을 예방해보자. 문제 상황 서비스되고 있는 Deployment가 드레인 상태의 노드에 스케줄링되어있을 경우 Node A 에서 drain을 하게 되면 service 1에 묶여있는 deployment는 동시에 재 배치되므로 이러한 경우에는 Node B와 Node C에 배치..
-
Kubernetes 환경 서비스 무중단 배포SystemEngineering/kubernetes 2021. 8. 5. 20:09
개요 사내에서 팀원들이 사용하는 웹사이트를 운영 중에 있다. 혼자서 개발하고 배포하고 하는데 이상하게 배포할 때마다 1~2초 정도 503 Error가 발생한다. 분명 Deployment로 롤링업데이트를 진행한다고 이해하고 있었는데 이상하다. 그렇게 무중단 배포가 아닌 채로 운영을 하다가 아래 카카오 기술 블로그의 글을 읽었다. kubernetes를 이용한 서비스 무중단 배포 Kubernetes는 컨테이너 오케스트레이션 영역에서 거의 표준으로 자리 잡은 오픈소스 시스템입니다. kubernetes를 사용하게 되면 여러대의 노드를 하나의 클러스터로 묶어서 사용가능하게 됩니다. 클 tech.kakao.com 무중단 배포의 Key는 Pod의 readinessProbe이다. 배포를 막 마치고 pod가 올라올 때 애..
-
EKS 환경에서 RBAC 적용하기CloudEngineering (AWS)/EKS 2021. 7. 21. 17:44
개요 EKS는 사용자가 IAM 사용자를 인증받아 대상 클러스터에 kubectl 명령어로 접근할 수 있도록 설정한다. 하지만 이 IAM은 정책 기반으로 AWS 서비스에 대한 접근 제어만 가능할 것이다. kubernetes의 리소스를 제한하고 싶을 경우에는 어떻게 해야 할까? Cluster 인증 EKS Cluster에 인증받는 순서가 아래 그림에 아주 자세하게 나와있다. 그림을 보고 테스트를 따라 해 본다면 쉽게 이해가 갈 것이다. 요약하자면 IAM과 kubernetes의 user 혹은 group을 aws-auth의 ConfigMap과 묶어 인증받는 순서이다. 같이 적용해 보도록 하자. AWS는 EKS 클러스터를 생성할 때의 IAM을 클러스터 master 계정으로 생성한다. master 계정 외에 다른 계정..