Spec-Zone.ru › Kubernetes

PodDisruptionBudget

PodDisruptionBudget — это объект для определения максимального нарушения работы группы подов

apiVersion: policy/v1

import "k8s.io/api/policy/v1"

PodDisruptionBudget

PodDisruptionBudget — это объект для определения максимального нарушения работы группы подов

Поле Описание
apiVersion
string
APIVersion определяет версионируемую схему представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind — это строковое значение, представляющее ресурс REST, который представляет данный объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
Стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec
PodDisruptionBudgetSpec
Спецификация желаемого поведения PodDisruptionBudget.
status
PodDisruptionBudgetStatus
Последний наблюдавшийся статус PodDisruptionBudget.

PodDisruptionBudgetSpec

PodDisruptionBudgetSpec — это описание PodDisruptionBudget.

Поле Описание
maxUnavailable
Выселение разрешено, если после него не более "maxUnavailable" подов, выбранных с помощью "selector", будут недоступны, то есть даже при отсутствии выселяемого пода. Например, можно запретить все добровольные выселения, указав 0. Этот параметр взаимоисключающий с "minAvailable".
minAvailable
Выселение разрешено, если после него по-прежнему будут доступны как минимум "minAvailable" подов, выбранных с помощью "selector", то есть даже при отсутствии выселяемого пода. Например, можно запретить все добровольные выселения, указав "100%".
selector
LabelSelector
стратегия исправления: replace
Запрос по меткам для подов, выселение которых контролируется бюджетом нарушений. Селектор со значением null не выберет ни одного пода, а пустой селектор ({}) выберет все поды в пространстве имён.
unhealthyPodEvictionPolicy
string
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.
currentHealthy
integer
текущее количество здоровых подов
desiredHealthy
integer
минимальное требуемое количество здоровых подов
disruptedPods
object
DisruptedPods содержит сведения о подах, выселение которых было обработано обработчиком подресурса выселения API-сервера, но ещё не было замечено контроллером PodDisruptionBudget. Под будет находиться в этой карте с момента обработки запроса на выселение API-сервером до момента, когда контроллер PDB увидит, что под помечен для удаления (или до истечения времени ожидания). Ключом карты является имя пода, а значением — время обработки запроса на выселение API-сервером. Если удаление не произошло и под по-прежнему существует, через некоторое время контроллер PodDisruptionBudget автоматически удалит его из списка. При нормальном ходе событий эта карта большую часть времени должна быть пустой. Большое количество записей в карте может указывать на проблемы с удалением подов.
disruptionsAllowed
integer
Количество нарушений подов, разрешённых в данный момент.
expectedPods
integer
Общее количество подов, учитываемых этим бюджетом нарушений
observedGeneration
integer
Последнее поколение, наблюдавшееся при обновлении статуса этого PDB. DisruptionsAllowed и другие сведения о статусе действительны только в том случае, если observedGeneration равно поколению объекта PDB.

PodDisruptionBudgetList

PodDisruptionBudgetList — это коллекция объектов PodDisruptionBudget.

Поле Описание
apiVersion
string
APIVersion определяет версионируемую схему представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
массив PodDisruptionBudget
Items — это список объектов PodDisruptionBudget
kind
string
Kind — это строковое значение, представляющее ресурс REST, который представляет данный объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
Стандартные метаданные объекта. Подробнее: 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API