PodDisruptionBudget
PodDisruptionBudget — это объект для определения максимального нарушения работы группы подов
apiVersion: policy/v1
import "k8s.io/api/policy/v1"
PodDisruptionBudget
PodDisruptionBudget — это объект для определения максимального нарушения работы группы подов
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионируемую схему представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring |
Kind — это строковое значение, представляющее ресурс REST, который представляет данный объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta |
Стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
specPodDisruptionBudgetSpec |
Спецификация желаемого поведения PodDisruptionBudget. |
statusPodDisruptionBudgetStatus |
Последний наблюдавшийся статус PodDisruptionBudget. |
PodDisruptionBudgetSpec
PodDisruptionBudgetSpec — это описание PodDisruptionBudget.
| Поле | Описание |
|---|---|
maxUnavailable |
Выселение разрешено, если после него не более "maxUnavailable" подов, выбранных с помощью "selector", будут недоступны, то есть даже при отсутствии выселяемого пода. Например, можно запретить все добровольные выселения, указав 0. Этот параметр взаимоисключающий с "minAvailable". |
minAvailable |
Выселение разрешено, если после него по-прежнему будут доступны как минимум "minAvailable" подов, выбранных с помощью "selector", то есть даже при отсутствии выселяемого пода. Например, можно запретить все добровольные выселения, указав "100%". |
selectorLabelSelector стратегия исправления: replace |
Запрос по меткам для подов, выселение которых контролируется бюджетом нарушений. Селектор со значением null не выберет ни одного пода, а пустой селектор ({}) выберет все поды в пространстве имён. |
unhealthyPodEvictionPolicystring |
UnhealthyPodEvictionPolicy определяет критерии, по которым нездоровые поды должны рассматриваться для выселения. В текущей реализации здоровыми считаются поды, у которых элемент status.conditions имеет type="Ready",status="True". Допустимые политики: IfHealthyBudget и AlwaysAllow. Если политика не указана, используется поведение по умолчанию, соответствующее политике IfHealthyBudget. Политика IfHealthyBudget означает, что работающие поды (status.phase="Running"), которые ещё не стали здоровыми, можно выселять только в том случае, если защищаемое приложение не испытывает нарушений (status.currentHealthy не меньше status.desiredHealthy). На здоровые поды распространяется действие PDB при выселении. Политика AlwaysAllow означает, что все работающие поды (status.phase="Running"), которые ещё не стали здоровыми, считаются испытывающими нарушения и могут быть выселены независимо от того, выполнены ли критерии PDB. Это означает, что у работающих подов приложения, испытывающего нарушения, может не появиться возможности стать здоровыми. На здоровые поды распространяется действие PDB при выселении. В будущем могут быть добавлены дополнительные политики. Клиенты, принимающие решения о выселении, должны запрещать выселение нездоровых подов, если в этом поле указана неизвестная политика. Возможные значения перечисления: - Политика `"AlwaysAllow"` означает, что все работающие поды (status.phase="Running"), которые ещё не стали здоровыми, считаются испытывающими нарушения и могут быть выселены независимо от того, выполнены ли критерии PDB. Это означает, что у работающих подов приложения, испытывающего нарушения, может не появиться возможности стать здоровыми. На здоровые поды распространяется действие PDB при выселении. - Политика `"IfHealthyBudget"` означает, что работающие поды (status.phase="Running"), которые ещё не стали здоровыми, можно выселять только в том случае, если защищаемое приложение не испытывает нарушений (status.currentHealthy не меньше status.desiredHealthy). На здоровые поды распространяется действие PDB при выселении. |
PodDisruptionBudgetStatus
PodDisruptionBudgetStatus содержит сведения о статусе PodDisruptionBudget. Статус может отставать от фактического состояния системы.
| Поле | Описание |
|---|---|
conditionsмассив Condition стратегия исправления: слияние по ключу type
|
Conditions содержит условия для PDB. Контроллер нарушений устанавливает условие DisruptionAllowed. Известны следующие значения поля reason (в будущем могут быть добавлены дополнительные причины): - SyncFailed: контроллер столкнулся с ошибкой и не смог вычислить количество разрешённых нарушений. Поэтому нарушения не разрешены, а статус условия будет False. - InsufficientPods: количество подов равно или меньше числа, требуемого PodDisruptionBudget. Нарушения не разрешены, а статус условия будет False. - SufficientPods: количество подов превышает число, требуемое PodDisruptionBudget. Условие будет иметь значение True, а количество разрешённых нарушений указано в свойстве disruptionsAllowed. |
currentHealthyinteger |
текущее количество здоровых подов |
desiredHealthyinteger |
минимальное требуемое количество здоровых подов |
disruptedPodsobject |
DisruptedPods содержит сведения о подах, выселение которых было обработано обработчиком подресурса выселения API-сервера, но ещё не было замечено контроллером PodDisruptionBudget. Под будет находиться в этой карте с момента обработки запроса на выселение API-сервером до момента, когда контроллер PDB увидит, что под помечен для удаления (или до истечения времени ожидания). Ключом карты является имя пода, а значением — время обработки запроса на выселение API-сервером. Если удаление не произошло и под по-прежнему существует, через некоторое время контроллер PodDisruptionBudget автоматически удалит его из списка. При нормальном ходе событий эта карта большую часть времени должна быть пустой. Большое количество записей в карте может указывать на проблемы с удалением подов. |
disruptionsAllowedinteger |
Количество нарушений подов, разрешённых в данный момент. |
expectedPodsinteger |
Общее количество подов, учитываемых этим бюджетом нарушений |
observedGenerationinteger |
Последнее поколение, наблюдавшееся при обновлении статуса этого PDB. DisruptionsAllowed и другие сведения о статусе действительны только в том случае, если observedGeneration равно поколению объекта PDB. |
PodDisruptionBudgetList
PodDisruptionBudgetList — это коллекция объектов PodDisruptionBudget.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионируемую схему представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
items *массив PodDisruptionBudget |
Items — это список объектов PodDisruptionBudget |
kindstring |
Kind — это строковое значение, представляющее ресурс REST, который представляет данный объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataListMeta |
Стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/policy/pod-disruption-budget-v1/