카테고리 없음

EKS 버전 업그레이드 시 주의점 및 체크리스트

idea9329 2025. 2. 18. 10:34
반응형

 

1. EKS 버전 업그레이드 개요

Amazon EKS(Amazon Elastic Kubernetes Service) 클러스터를 업그레이드할 때는 컨트롤 플레인(Control Plane)과 워커 노드(Worker Nodes)를 단계적으로 업데이트해야 합니다. 이를 통해 가용성을 유지하면서 다운타임을 최소화할 수 있습니다.


2. EKS 버전 업그레이드 시 주요 고려사항

✅ 1) 업그레이드 전 체크리스트

  1. 현재 사용 중인 Kubernetes 버전 확인
    • kubectl version 또는 aws eks describe-cluster --name <cluster-name> 명령어로 확인
    • EKS는 이전 두 개의 Kubernetes 버전만 지원하므로 최신 안정 버전으로 유지 필요
  2. EKS 지원 버전 확인
  3. 사용 중인 AWS SDK 및 클라이언트 라이브러리 호환성 검토
    • AWS CLI, eksctl, kubectl, Terraform 등 최신 버전으로 업데이트
  4. 어플리케이션 및 애드온 호환성 체크
    • kubectl get pod -A 로 모든 파드가 정상인지 확인
    • Ingress Controller, CNI Plugin, CoreDNS, Metrics Server 등 필수 애드온 버전 업그레이드 필요
    • kubectl describe  kubectl logs로 애플리케이션 이벤트 점검

✅ 2) 컨트롤 플레인(Control Plane) 업그레이드

  1. EKS 클러스터를 최신 버전으로 업그레이드
    aws eks update-cluster-version --name <cluster-name> --kubernetes-version <new-version>
    • 업그레이드 후 클러스터 상태 확인:
      aws eks describe-cluster --name <cluster-name> --query 'cluster.version'
  2. EKS 애드온(CoreDNS, kube-proxy, VPC CNI 등) 업데이트
    aws eks update-addon --cluster-name <cluster-name> --addon-name coredns --addon-version latest
    aws eks update-addon --cluster-name <cluster-name> --addon-name kube-proxy --addon-version latest
    aws eks update-addon --cluster-name <cluster-name> --addon-name vpc-cni --addon-version latest

✅ 3) 워커 노드(Worker Nodes) 업그레이드

  1. 새로운 노드 그룹 생성 (Blue/Green 배포 방식 권장)
    • 기존 노드 그룹을 바로 업데이트하지 말고, 새로운 노드 그룹을 생성 후 점진적으로 이전
    • Auto Scaling Group을 이용해 새 노드 배포 후, 기존 노드를 단계적으로 삭제
  2. 노드 그룹 버전 업그레이드
    • 기존 노드를 업데이트하는 대신, 새 노드 그룹을 생성하는 것이 더 안전
    eksctl create nodegroup --cluster <cluster-name> --name <new-nodegroup-name> --node-type t3.medium --nodes 3
  3. 노드 교체 및 애플리케이션 정상 동작 확인
    • 기존 노드에서 파드를 새 노드로 이동
    kubectl drain <old-node-name> --ignore-daemonsets --delete-local-data
    • 기존 노드 삭제
    eksctl delete nodegroup --cluster <cluster-name> --name <old-nodegroup-name>

✅ 4) 업그레이드 후 체크리스트

  1. 애플리케이션 정상 동작 확인
    • kubectl get pods -A로 모든 파드가 정상 실행 중인지 확인
    • kubectl logs <pod-name>으로 로그 점검
  2. 노드 및 네트워크 정상 작동 확인
    • kubectl get nodes로 모든 노드가 Ready 상태인지 확인
    • kubectl get svc -A로 서비스 정상 여부 확인
  3. Helm 차트 및 애드온 재설정 필요 여부 확인
  4. helm list helm upgrade <release-name> <chart-name> --namespace <namespace>

3. EKS 업그레이드 Best Practice

  • Blue/Green 방식으로 업그레이드하여 다운타임 최소화
  • 자동 백업 및 스냅샷 생성 후 진행 (ETCD 백업 등)
  • 애드온(CoreDNS, VPC CNI, kube-proxy) 및 Helm 차트 최신 버전 유지
  • 자동화된 테스트 및 Canary 배포 적용

4. 마무리: EKS 업그레이드 핵심 요약

 사전 점검: 애플리케이션 및 애드온 호환성 확인
 컨트롤 플레인 업그레이드: aws eks update-cluster-version
 노드 그룹 업그레이드: 기존 노드 대신 새 노드 그룹 생성 후 교체
 업그레이드 후 검증: 모든 서비스 정상 작동 확인

EKS 업그레이드는 신중하게 진행해야 하며, 사전 테스트 및 점진적 업그레이드가 중요합니다. 🚀

반응형