EKS Auto Mode 디버깅
2026-04-07 작성2026-06-30 수정7분 읽기
EKS Auto Mode는 노드 프로비저닝, 네트워킹, 스토리지를 AWS가 완전 관리하는 운영 모델입니다. 편리하지만, 관리 영역이 줄어든 만큼 디버깅 접근 방식도 달라집니다.
Auto Mode vs Standard Mode 차이점
| 항목 | Standard Mode | Auto Mode | 디버깅 영향 |
|---|---|---|---|
| 노드 관리 | 사용자 (MNG/Karpenter) | AWS 관리 (NodePool) | NodePool CRD로 상태 확인, EC2 API 제한적 |
| VPC CNI | 수동 설정/업그레이드 | 자동 관리 | Custom CNI 설정 불가, ENI 디버깅 간소화 |
| GPU Driver | GPU Operator 설치 | AWS 관리 | Device Plugin 충돌 주의 (devicePlugin=false) |
| 스토리지 | EBS CSI 별도 설치 | 내장 드라이버 (gp3) | io2 Block Express 제약, EFS는 별도 설치 |
| CoreDNS | Add-on 관리 | 자동 관리 | Custom CoreDNS 설정 제한 |
| 노드 SSH | 가능 (MNG/Karpenter) | 제한적 (AWS Systems Manager) | kubectl debug node 사용 필수 |
| Auto Scaling | Karpenter/CA | NodePool auto-scaling | Spot 중단 처리 자동화 |
| 네트워크 정책 | Calico/Cilium 설치 가능 | VPC CNI Network Policy | 기능 제약 존재 |
NodePool 아키텍처
Auto Mode의 노드 라이프사이클:
NodePool 디버깅
NodePool 상태 확인
# NodePool 목록
kubectl get nodepools
# 출력 예시
# NAME READY AGE
# default True 7d
# gpu-nodepool True 2d
# NodePool 상세 정보
kubectl describe nodepool default
# 주요 확인 항목:
# - Conditions: Ready, CapacityAvailable
# - Instance Types: 허용된 인스턴스 타입
# - Constraints: 레이블, 테인트, 가용 영역
NodeClaim 라이프사이클
# NodeClaim 목록 (실제 노드 요청)
kubectl get nodeclaims
# 출력 예시
# NAME TYPE CAPACITY READY AGE
# default-abc123 t3.xlarge 4 True 2d
# default-def456 t3.xlarge 4 True 1d
# gpu-nodepool-xyz789 g5.2xlarge 8 True 6h
# NodeClaim 상세 정보
kubectl describe nodeclaim <nodeclaim-name>
# 주요 필드:
# - Phase: Pending/Launched/Registered/Ready/Terminating
# - Conditions: Initialized, Ready, Drifted
# - Instance ID: EC2 인스턴스 ID
# - Node Name: 대응되는 Kubernetes 노드
NodeClaim 상태 전이
인스턴스 타입 선택 실패
증상: Pod가 Pending 상태로 멈춤, NodeClaim이 생성되지 않음
# Pod 이벤트 확인
kubectl describe pod <pod-name>
# 에러 예시:
# Warning FailedScheduling No nodes available to schedule pod
# NodePool 제약 확인
kubectl get nodepool <nodepool-name> -o yaml | grep -A 10 requirements
# 일반적인 원인:
# 1. Pod 리소스 요청이 NodePool의 모든 인스턴스 타입을 초과
# 2. 가용 영역 제약 (특정 AZ에만 용량 부족)
# 3. Spot 용량 부족 (capacityType: spot)