운영 및 관리
Disruption Budget 설정
# disruption-budget.yaml
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: production-pool
spec:
template:
spec:
requirements:
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["m", "c", "r"]
- key: karpenter.sh/capacity-type
operator: In
values: ["on-demand"]
nodeClassRef:
group: eks.amazonaws.com
kind: NodeClass
name: default
disruption:
consolidationPolicy: WhenEmptyOrUnderutilized
consolidateAfter: 5m
budgets:
# 기본: 전체 노드의 10%만 동시 중단
- nodes: "10%"
# 업무 시간: 중단 최소화
- nodes: "1"
schedule: "0 9-18 * * mon-fri" # 월-금 9-18시 (KST)
duration: 9h
# 주말: 더 적극적인 통합 허용
- nodes: "30%"
schedule: "0 0 * * sat-sun"
duration: 48h
# 긴급 유지보수 윈도우: 중단 금지
- nodes: "0"
schedule: "0 0 1 * *" # 매월 1일
duration: 24h롤링 교체 전략
PodDisruptionBudget과의 연동
Zone 장애 대응
CloudWatch 지표 모니터링
CloudWatch 대시보드 설정
kubectl 기반 진단
일반적인 문제와 해결 방법
문제 1: Pod가 Pending 상태로 유지됨
문제 2: 노드 프로비저닝 실패
문제 3: 노드 Consolidation이 작동하지 않음
문제 4: Spot 인터럽트 후 Pod 재스케줄 지연
보안 모범 사례
Day-2 운영 체크리스트
일일 체크리스트
항목
확인 명령어
정상 기준
주간 체크리스트
항목
설명
월간 체크리스트
항목
설명
노드 교체 전략 비교
Rolling vs Aggressive 교체
전략
설정
사용 시나리오
장점
단점
교체 전략 선택 가이드
가용 영역 장애 대응 패턴
Multi-AZ Awareness 설정
Capacity Reservation 활용
운영 자동화
노드 교체 알림 설정
PDB 준수 모니터링
용량 모니터링 대시보드
운영 체크리스트 요약
영역
체크 항목
마지막 업데이트