Kubernetes

AWS Fargate에서 Pod Disruption Budget(PDB)로 OS 패치 대응하기

데밥스 2024. 12. 3. 17:02
728x90
반응형

Pod Disruption Budget(PDB)는 Kubernetes에서 애플리케이션의 안정성을 보장하기 위한 핵심 도구입니다.

특히 AWS Fargate 환경에서는 운영체제(OS) 패치 이벤트가 정기적으로 발생하며, 이를 대비해 `PDB`와 `EventBridge`를 활용한 체계적인 대응 전략이 중요합니다.

 


AWS Fargate OS 패치 이벤트란?

AWS Fargate는 보안과 안정성을 위해 주기적으로 OS 패치를 수행하며, 이 과정에서 Fargate 노드를 재활용(recycle)합니다.

이에 따라 다음과 같은 조치가 필요합니다:

  1. Pod 퇴거(Eviction) : 패치 중 영향을 최소화하기 위해 기존 Pods를 퇴거시킵니다.
  2. 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 패치도 더 이상 문제가 아니라, 관리 전략의 일부가 됩니다.

 

 

728x90
반응형