EKS 업그레이드 운영

지원 버전: EKS 1.29+, EKS Auto Mode GA 마지막 업데이트: 2026년 2월 21일

< 이전: 리소스 최적화 | 목차 | [다음: 없음] >


이 문서에서는 EKS Auto Mode 환경에서 무중단 업그레이드를 수행하는 방법을 설명합니다. 업그레이드 계획부터 사전 체크리스트, Auto Mode 특화 업그레이드, 블루/그린 전략, 그리고 사후 검증까지 실전 운영에 필요한 모든 내용을 다룹니다.

목차


1. 업그레이드 계획

Kubernetes 버전 지원 정책 (N-3)

Kubernetes는 최근 3개의 마이너 버전(N, N-1, N-2)만 공식 지원합니다. EKS는 이보다 넓은 범위를 지원하지만, 보안 패치와 버그 수정은 주로 최신 버전에 집중됩니다.

┌─────────────────────────────────────────────────────────────────┐
│                    Kubernetes 버전 지원 범위                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   1.27 ──── 1.28 ──── 1.29 ──── 1.30 ──── 1.31 ──── 1.32       │
│    │         │         │         │         │         │          │
│    ▼         ▼         ▼         ▼         ▼         ▼          │
│  지원종료   Extended   N-2       N-1        N      Preview       │
│             Support                      (최신)                  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

EKS 버전 생명주기

EKS 버전은 두 가지 지원 단계를 거칩니다:

지원 단계
기간
특징
비용

Standard Support

출시 후 ~14개월

모든 패치, 보안 업데이트 제공

기본 요금

Extended Support

Standard 종료 후 ~12개월

중요 보안 패치만 제공

추가 비용 ($0.60/cluster/hour)

버전 호환성 매트릭스

EKS 버전
K8s 버전
주요 기능
CoreDNS
VPC CNI
kube-proxy
지원 상태

1.32

1.32.x

DRA GA, CEL Admission

v1.11.4

v1.19.2

v1.32.0

Preview

1.31

1.31.x

AppArmor GA, nftables

v1.11.3

v1.19.0

v1.31.3

Standard

1.30

1.30.x

Pod Scheduling Readiness

v1.11.1

v1.18.5

v1.30.6

Standard

1.29

1.29.x

ReadWriteOncePod GA

v1.11.1

v1.18.2

v1.29.10

Standard

1.28

1.28.x

Sidecar Containers

v1.10.1

v1.16.4

v1.28.13

Extended

1.27

1.27.x

In-place Pod Resize

v1.10.1

v1.15.1

v1.27.16

Extended

Add-on 버전 요구사항

각 EKS 버전에 맞는 Add-on 버전을 사용해야 합니다:

Kubernetes Deprecation 정책

Kubernetes API는 명확한 사용 중단(deprecation) 정책을 따릅니다:

API 유형
사용 중단 후 제거까지
예시

GA (v1)

12개월 또는 3개 릴리스

policy/v1 PodDisruptionBudget

Beta (v1beta1)

9개월 또는 3개 릴리스

networking.k8s.io/v1beta1 Ingress

Alpha (v1alpha1)

다음 릴리스에서 변경 가능

실험적 기능

주요 Deprecation 이력:

업그레이드 타임라인 권장사항


2. 사전 체크리스트

Deprecated API 탐지 (pluto)

pluto는 Kubernetes 매니페스트에서 사용 중단된 API를 탐지하는 도구입니다.

pluto 출력 예시:

PodDisruptionBudget (PDB) 감사

업그레이드 중 노드 drain이 실패하지 않도록 PDB를 검증합니다.

문제가 되는 PDB 패턴:

ETCD 및 애플리케이션 상태 백업

EKS는 컨트롤 플레인(etcd 포함)을 관리하므로 직접 백업은 불필요합니다. 그러나 애플리케이션 상태는 별도로 백업해야 합니다.

Velero 복원 테스트:

Add-on 호환성 확인 스크립트

노드 상태 검증

애플리케이션 상태 검증

종합 사전 체크 스크립트


3. Auto Mode 업그레이드

Terraform 3-Layer 업그레이드 순서

EKS Auto Mode에서는 Terraform의 3-Layer 구조를 순차적으로 업그레이드합니다.

Step 1: 02-cluster Layer 업데이트

Step 2: 컨트롤 플레인 업그레이드 대기

Step 3: 03-platform Layer Add-on 업데이트

Step 4: NodePool 자동 교체 (Karpenter Drift Detection)

Auto Mode에서는 컨트롤 플레인 업그레이드 후 Karpenter가 자동으로 노드를 교체합니다.

Drift Detection 동작 원리:

노드 교체 모니터링:

Graceful 노드 드레인 프로세스

업그레이드 진행 모니터링

Prometheus 쿼리로 업그레이드 상태 확인:

업그레이드 중단 처리

롤백 고려사항

컨트롤 플레인은 롤백이 불가능합니다. 따라서:

  1. 업그레이드 전: 반드시 테스트 환경에서 검증

  2. 문제 발생 시: 블루/그린 전략으로 이전 버전 클러스터로 트래픽 전환

  3. Add-on 롤백: 이전 버전으로 downgrade 가능


4. 블루/그린 업그레이드

전략 개요

블루/그린 업그레이드는 새 버전 클러스터를 기존 클러스터와 병렬로 운영하며 점진적으로 트래픽을 전환하는 전략입니다.

Step 1: 새 버전 클러스터 생성

Step 2: Platform Layer 배포

Step 3: ArgoCD Hub에 새 클러스터 등록

Step 4: ArgoCD ApplicationSet 설정

Step 5: Smoke Test

Step 6: NLB 가중치 전환

Terraform으로 NLB 가중치 관리:

Step 7: 이전 클러스터 제거

롤백 절차

문제 발생 시 트래픽을 다시 Blue로 전환합니다.

Stateful 워크로드 마이그레이션

데이터베이스 등 상태가 있는 워크로드는 별도 마이그레이션이 필요합니다.


5. 사후 검증

종합 헬스체크 스크립트

Smoke Test 예시

메트릭 비교 (Before/After)

Grafana 대시보드 쿼리 예시:

사후 모니터링 기간

운영 문서 업데이트

업그레이드 완료 후 다음 문서를 업데이트합니다:


참고 자료


< 이전: 리소스 최적화 | 목차 | [다음: 없음] >

마지막 업데이트