k8s pod disruption budgets (PDB)

2024-03-22
  • k8s
  • resource
  • 파드의 중단에는 자발적 중단과 비자발적 중단이 있음. 자세한건 공식 문서에도 잘 나와있음.

    요약하자면,

    • 비자발적 중단 : 자원부족이나 오류, 장애 등의 원인
    • 자발적 중단 : 사용자의 명령이나, 디플로이먼트 업데이트

    비자발적 중단은 PDB 로 막을 수 없지만, 버짓은 차감된다. PDB 는 node drain 이나 deployment replica 감소로 인한 자발적 중단의 경우, 일시에 중단되는 파드의 수를 제한할 수 있다.

    중요한 세가지 필드가 있음

    • .spec.selector : pod selector
    • .spec.minAvailable : eviction 이후에도 있어야하는 pod 개수. absolute number, percentage 가능. (ex: 0% 또는 0)
    • .spec.maxUnavailable : (k8s version >= 1.7) eviction 이후 unavailable 한 pod 개수.
    apiVersion: policy/v1
    kind: PodDisruptionBudget
    metadata:
      name: zk-pdb
    spec:
      minAvailable: 2
      selector:
        matchLabels:
          app: zookeeper
    

    참고