EKS Auto Mode와 Karpenter

노드 자동화 운영

EKS 1.37, Karpenter v1.15 기준 (2026-10-20 확인)

오늘 세션 구성

1
개념: 왜 노드 자동화인가
2
구조: NodePool, NodeClass, Auto Mode
3
스케일링과 disruption
4
Auto Mode 심화와 운영: 설정, 용량, 진단, 비용, 마이그레이션
5
데모 영상 4편
6
마무리

1부: Pending Pod가 노드를 부른다

고정된 노드 그룹 중심

  • 인스턴스 유형과 크기를 그룹마다 미리 정함
  • 워크로드 모양이 바뀌면 그룹을 새로 설계
  • 비어 가는 노드를 줄이는 판단은 사람이 함
  • AMI 교체와 노드 수명 관리도 별도 작업

Pending Pod 기반 프로비저닝

  • 스케줄되지 못한 Pod의 요구 사항이 수요 신호
  • requirements를 만족하는 인스턴스 유형 중에서 선택
  • 남는 노드는 consolidation으로 회수
  • 설정이나 AMI가 바뀌면 Drift, 오래되면 만료로 교체
핵심 질문이 바뀝니다: "몇 대를 띄울까"가 아니라 "어떤 조건의 노드를 허용하고, 언제 바꿔도 되는가"를 선언합니다.

제어 루프: 누가 무엇을 하나

1Pod가 Pending자리를 찾지 못한 Pod를 unschedulable로 표시kube-scheduler
2NodeClaim 생성NodePool 조건 안에서 인스턴스 후보를 계산하고 NodeClaim을 만듦Karpenter controller
3EC2 시작NodeClass의 subnet, SG, AMI로 인스턴스를 띄움Karpenter cloud provider, EC2
4노드 Readykubelet이 클러스터에 등록, NodeClaim이 Node와 연결kubelet
5Pod 바인딩새 노드에 Pod를 배치kube-scheduler
Karpenter는 Pod를 배치하지 않음
노드를 만들 뿐이고, 바인딩은 여전히 kube-scheduler가 합니다.
NodeClaim이 노드 한 대의 기록
교체, 만료, 중단 판단도 NodeClaim 단위로 이루어집니다.
Auto Mode도 같은 루프
2번과 3번을 AWS가 운영하는 관리형 Karpenter가 맡습니다.

2부: NodePool과 NodeClass의 분업

karpenter.sh/v1, kind: NodePool
  • template.spec.requirements: 허용할 인스턴스 조건
  • disruption: consolidation 정책, budget
  • template.spec.expireAfter, terminationGracePeriod
  • limits, weight, nodeClassRef
무엇을, 언제 바꿀지
어떤 노드를 허용하고 언제 회수, 교체할지를 정합니다. Auto Mode와 직접 운영이 같은 API를 씁니다.
라벨 접두사도 다름: 직접 운영은 karpenter.k8s.aws/instance-*, Auto Mode는 eks.amazonaws.com/instance-*. NodePool을 옮길 때 requirements 키를 바꿔야 합니다.

Auto Mode는 Karpenter를 AWS가 운영

항목EKS Auto ModeSelf-managed Karpenter v1.15
Karpenter controllerAWS 관리, 클러스터 Pod 아님, 버전 비공개사용자 노드의 Pod, Helm과 CRD chart로 업그레이드
AMI, OSAWS 결정, Bottlerocket 변형, 새 AMI는 Drift로 교체amiSelectorTerms, custom AMI, userData
VPC CNI, CoreDNS, kube-proxy, EBS CSI, Pod Identity Agent내장, CNI, CoreDNS, kube-proxy는 노드의 systemd serviceadd-on으로 설치, 관리
Spot 중단, 노드 healthAWS 자동 처리, 자동 repair 내장SQS, EventBridge 구성, NodeRepair는 alpha gate
그래도 사용자 몫
NodePool과 NodeClass 정의, PDB, 워크로드 설계, 비용 관리는 여전히 사용자가 정합니다.
둘 중 하나를 권장
AWS는 한쪽을 권장합니다. 마이그레이션 중 공존하면 NodePool로 워크로드를 분리합니다.

버전 지도: 2026-10-20 기준

EKS 출시
-
표준 지원 종료
-
확장 지원 종료
-
Karpenter 최소
-
비고
-
버전을 누르면 ap-northeast-2 기준 지원 일정과 Karpenter 호환 버전이 바뀝니다.
Karpenter v1.15.0 (2026-10-10)
1.37에 필요. regular release라 다음 minor 출시 전까지만 지원
v1.14.x LTS (2027-07까지)
K8s 1.36까지. v1.14.2 패치 2026-10-19 출시
Auto Mode는 버전 선택 없음
관리형 Karpenter 버전은 비공개이고 AWS가 업그레이드합니다.