[7주차] EKS Update BP

Minn·2026년 4월 28일

클라우드 및 인프라 운영시에 다양한 업무들을 수행하지만 그 중 큰 부분을 차지하는 작업들 중 하나는 '업그레이드' 라고 생각한다. EKS 버전 업그레이드 워크샵을 통해 EKS 업그레이드시 필요한 부분들을 알아보자.

1. 실습환경


1.0 실습에 앞서

  • Amazon EKS 버전을 업데이트하는 것은 Kubernetes 클러스터의 보안, 안정성, 성능 및 호환성을 유지하는 데 필수적이며, 플랫폼에서 제공하는 최신 기능과 역량을 활용할 수 있도록 보장
  • AWS는 컨트롤 플레인을 관리하고 업그레이드하지만, 클러스터 소유자/고객은 클러스터 컨트롤 플레인과 데이터 플레인 모두에 대한 업그레이드를 시작할 책임이 있음
    • 데이터 플레인 업그레이드는 여전히 고객의 책임, 여기에는 자체 관리형 노드 그룹, 관리형 노드 그룹, Fargate 및 기타 애드온을 통해 프로비저닝된 워커 노드가 포함
  • 워크숍 환경은 EKS 1.30 기반 클러스터에서 여러 노드 운영 방식을 함께 다루는 구조
  • 핵심은 단순 버전 업그레이드가 아니라 Control Plane, Add-on, Node, Workload를 순서대로 검증하는 과정

1.1 실습환경 위치


1.2 인프라 구조

  • Managed Node Group, Self-managed Node Group, Karpenter, Fargate가 함께 존재하는 구조
IDE Terminal
 ├─ kubectl
 ├─ AWS CLI
 ├─ Terraform
 └─ Git

        │
        ▼

Amazon EKS Cluster
 ├─ Managed Node Group
 ├─ Self-managed Node Group
 ├─ Karpenter Node
 └─ Fargate Node

        │
        ▼

Cluster Add-ons
 ├─ Argo CD
 ├─ AWS Load Balancer Controller
 ├─ EFS CSI Driver
 ├─ Karpenter
 └─ Metrics Server

1.3 애플리케이션 구조

  • 워크숍에서는 쇼핑몰 형태의 샘플 애플리케이션을 사용
  • 각 컴포넌트는 독립적인 서비스로 구성되어 있으며 Argo CD를 통해 EKS 클러스터에 배포되는 구조
User
 │
 ▼
UI Service
 ├─ Catalog Service
 ├─ Cart Service
 ├─ Checkout Service
 └─ Static Assets

Checkout Service
 └─ Orders Service

1.5 EKS 업그레이드 흐름

  • Control Plane, Add-on, Node, Workload 순서로 확인하는 방식
[사용자 작업 흐름]

현재 상태 확인
   ↓
Control Plane 업그레이드
   ↓
Add-on 호환성 확인
   ↓
Node Group 업그레이드
   ↓
Karpenter / Fargate 등 업그레이드
   ↓
애플리케이션 상태 확인

1.6 주요 고려사항

Add-on 호환성

EKS 버전을 올리기 전에 설치된 Add-on들이 대상 Kubernetes 버전과 호환되는지 확인 필요

대상 Add-on

  • Argo CD
  • AWS Load Balancer Controller
  • EFS CSI Driver
  • Karpenter
  • Metrics Server

노드 업그레이드 방식 차이

현재 노드 구성이 섞여 있기 때문에 동일한 방식으로 처리 불가

  • Managed Node Group: EKS 관리형 업그레이드 가능
  • Self-managed Node Group: AMI, Launch Template, Drain 직접 고려 필요
  • Karpenter Node: NodePool, NodeClass, Karpenter 버전 확인 필요
  • Fargate Node: Fargate Profile 대상 워크로드 확인 필요

애플리케이션 영향도

  • 업그레이드 중 Pod 재배치 발생 가능
  • 서비스 중단 여부 확인 필요
  • Argo CD Sync / Health 상태 확인 필요

1.7 환경 확인


2. 실습 진행


2.1 Control Plane 업그레이드

  • terraform 을 통한 버전 업데이트 진행


2.2 Addon 업그레이드

  • 업그레이드 가능 버전 확인


2.3 관리형 노드그룹 업데이트 (인플레이스)

노드그룹 생성

노드그룹 업데이트


2.4 관리형 노드그룹 업데이트 (블루-그린)

1.30 버전 사용 노드그룹 확인 (블루)

1.31 버전 사용 노드그룹 생성 (그린)

1.30 버전 사용 노드그룹 삭제 (블루)


2.5 Karpenter 업데이트 (블루-그린)

카펜터 설정 확인

pod 설정 변경

  • 테스트를 위한 레플리카 1 → 10으로 변경

ami 업데이트


2.6 자체 관리 노드그룹

설정 확인

  • ami-02b487869ba8cadfd

업그레이드


2.7 Fargate 업그레이드

  • pod 상태 확인

  • pod rollout restart

  • 대기

  • 완료
profile
클라우드 왕초보

0개의 댓글