Иногда Kubernetes делает ровно то, что вы ему разрешили — и именно в этом проблема 🤯
При плановых операциях в Kubernetes удаление подов считается добровольным вмешательством. В этих сценариях кластер не оценивает бизнес-критичность сервиса, а действует строго в рамках заданных ограничений.
🛠️ PodDisruptionBudget (PDB) задает эти ограничения.
Он определяет, какое количество подов из выбранной группы может быть одновременно выселено при управляемых действиях.
PDB описывается одним из двух параметров:
• minAvailable — минимальное количество подов в состоянии Ready
• maxUnavailable — максимально допустимое количество недоступных подов
Параметры взаимоисключающие и применяются к подам, выбранным через селектор.
Если PDB не задан, Kubernetes не ограничивает количество выселяемых подов при плановых операциях.
Есть граничные случаи, которые важно учитывать:
• сервис с одной репликой и PDB (minAvailable: 1 или maxUnavailable: 0) блокирует выселение пода и делает невозможным kubectl drain
• PDB учитывает только поды в состоянии Ready, что влияет на поведение кластера при частично деградированном сервисе
❗️ PDB не обеспечивает доступность и не предотвращает отказ. Его задача — формализовать допустимый уровень доступности при управляемых изменениях в кластере.
Ставьте реакцию:
🔥— если используете PDB в продакшене
❤️— если узнали о PDB из этого поста
При плановых операциях в Kubernetes удаление подов считается добровольным вмешательством. В этих сценариях кластер не оценивает бизнес-критичность сервиса, а действует строго в рамках заданных ограничений.
🛠️ PodDisruptionBudget (PDB) задает эти ограничения.
Он определяет, какое количество подов из выбранной группы может быть одновременно выселено при управляемых действиях.
PDB описывается одним из двух параметров:
• minAvailable — минимальное количество подов в состоянии Ready
• maxUnavailable — максимально допустимое количество недоступных подов
Параметры взаимоисключающие и применяются к подам, выбранным через селектор.
Если PDB не задан, Kubernetes не ограничивает количество выселяемых подов при плановых операциях.
Есть граничные случаи, которые важно учитывать:
• сервис с одной репликой и PDB (minAvailable: 1 или maxUnavailable: 0) блокирует выселение пода и делает невозможным kubectl drain
• PDB учитывает только поды в состоянии Ready, что влияет на поведение кластера при частично деградированном сервисе
❗️ PDB не обеспечивает доступность и не предотвращает отказ. Его задача — формализовать допустимый уровень доступности при управляемых изменениях в кластере.
Ставьте реакцию:
🔥— если используете PDB в продакшене
❤️— если узнали о PDB из этого поста
Просмотры: 30