AWS Fargate에서 Pod Disruption Budget(PDB)로 OS 패치 대응하기
Pod Disruption Budget(PDB)는 Kubernetes에서 애플리케이션의 안정성을 보장하기 위한 핵심 도구입니다.
특히 AWS Fargate 환경에서는 운영체제(OS) 패치 이벤트가 정기적으로 발생하며, 이를 대비해 `PDB`와 `EventBridge`를 활용한 체계적인 대응 전략이 중요합니다.
AWS Fargate OS 패치 이벤트란?
AWS Fargate는 보안과 안정성을 위해 주기적으로 OS 패치를 수행하며, 이 과정에서 Fargate 노드를 재활용(recycle)합니다.
이에 따라 다음과 같은 조치가 필요합니다:
- Pod 퇴거(Eviction) : 패치 중 영향을 최소화하기 위해 기존 Pods를 퇴거시킵니다.
- Pod 삭제 : 퇴거가 실패할 경우, 기존 Pods를 강제로 삭제하고 새 Pods를 생성합니다.
패치 이벤트 대응을 위한 핵심 설정
1. Pod Disruption Budget(PDB) 설정
PDB는 OS 패치 이벤트 중 동시에 중단될 수 있는 Pod의 개수를 제어합니다.
이를 통해 애플리케이션의 가용성을 유지할 수 있습니다.
예시 PDB 설정
아래는 `minAvailable`을 기준으로 최소 가용성을 설정한 PDB 예시입니다:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: example-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: example
2. PDB: 최소 가용성 vs 최대 중단 가능성
① 최소 가용성 (minAvailable)
- 정의: 항상 실행 상태를 유지해야 하는 최소 Pod 개수.
- 사용 사례: 주요 서비스의 가용성을 보장.
- 예시: minAvailable: 2 → 최소 2개의 Pod가 실행 중이어야 퇴거 가능.
② 최대 중단 가능성 (maxUnavailable)
- 정의: 동시에 중단될 수 있는 최대 Pod 개수.
- 사용 사례: 업데이트 시 리소스 영향을 제한.
- 예시: maxUnavailable: 1 → 최대 1개의 Pod만 중단 가능.
③ 설정 선택 가이드
- `minAvailable`: 가용성을 보장하려는 경우.
- `maxUnavailable`: 중단 영향을 제어하려는 경우.
- 두 설정은 동시에 사용할 수 없으며, 상황에 맞춰 하나만 설정해야 합니다.
EventBridge 알림 설정
AWS는 Fargate OS 패치 시 발생하는 이벤트를 `Amazon EventBridge`를 통해 알립니다.
이를 활용해 자동화된 대응을 설정하거나 사전 조치를 취할 수 있습니다.
자세한 EventBridge 활용법.
Event Driven Architecture with AWS Infra Monitoring
EDA (Event Driven Architecture) AWS Infra Monitoring 관리하는 콘솔이 증가함에 따라 AWS EventBridge를 활용하여 각 콘솔의 인프라 변경 사항을 중앙 DevOps 콘솔로 라우팅 하는 EDA 구현합니다.구체적으로, 각 콘
rldnjsdlsi.tistory.com
EventBridge 이벤트 예시
{
"source": ["aws.eks"],
"detail-type": ["EKS Fargate Pod Scheduled Termination"]
}
Pod 수동 재시작: 선제적 대응 전략
Pod 퇴거 알림을 수신한 경우, 퇴거일 이전에 Pod를 수동으로 재시작하여 패치를 선제적으로 처리할 수 있습니다.
명령어 예시
kubectl delete pod <POD_NAME> --namespace=<NAMESPACE>
🌟 운영 인사이트
Eviction 실패 대응
- 실패 이벤트를 모니터링하여 필요시 PDB를 일시적으로 조정해 중단을 방지합니다.
- Eviction 실패 메시지 예시
{ "evictErrorMessage" : "Cannot evict pod as it would violate the pod's disruption budget" }
최소 가용성과 중단 가능성 조율
- PDB 설정을 유기적으로 관리해 서비스 가용성과 업데이트 안정성 간 균형을 유지합니다.
🎁 Wrap-Up
AWS Fargate의 OS 패치 이벤트는 Kubernetes 클러스터 운영의 핵심 과제 중 하나입니다.
Pod Disruption Budget과 EventBridge를 적절히 설정하면 패치 중에도 안정적인 워크로드를 유지할 수 있습니다.
이를 통해 서비스 중단을 최소화하고 보안성을 강화하며, 대규모 클러스터에서도 신뢰성 높은 Kubernetes 환경을 구축할 수 있습니다.
이제 Fargate의 OS 패치도 더 이상 문제가 아니라, 관리 전략의 일부가 됩니다.