PodDisruptionBudget(PDB)은 Kubernetes에서 애플리케이션의 가용성을 보장하기 위해 사용되는 정책 리소스입니다. 이를 통해 관리자는 계획된 중단(예: 노드 유지보수, 롤링 업데이트 등) 중에도 최소한의 파드 개수를 유지하여 서비스 가용성을 보호할 수 있습니다.
kubectl drain
실행) 정책을 적용하여 가용성 유지kubectl drain
명령을 실행하면, Kubernetes는 해당 노드의 파드를 종료하기 전 PDB 정책을 확인합니다.minAvailable
또는 maxUnavailable
조건을 충족하는 한도 내에서만 파드 종료가 진행됩니다.apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: my-app-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: my-app
위 설정은 app: my-app
라벨이 있는 파드 중 최소 2개가 항상 실행되어야 함을 의미합니다.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: my-app-pdb
spec:
maxUnavailable: 1
selector:
matchLabels:
app: my-app
위 설정은 app: my-app
라벨이 있는 파드 중 한 번에 최대 1개만 중단될 수 있도록 제한합니다.
PodDisruptionBudget(PDB)은 Kubernetes에서 계획된 중단에 대비해 서비스의 안정성을 유지하는 중요한 도구입니다. 적절한 PDB 설정을 통해 유지보수 중에도 중요한 애플리케이션이 중단되지 않도록 보호할 수 있습니다. 클러스터 운영 중 지속적인 가용성을 보장하려면 PDB를 적극 활용하는 것이 좋습니다.