Spec-Zone.ru › Kubernetes 1.25

Подразделение прерывания работы Pod

PodDisruptionBudget — это объект, определяющий максимальное прерывание, которое может быть вызвано для группы контейнеров.

apiVersion: policy/v1

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

Подразделение прерывания работы Pod

PodDisruptionBudget — это объект, определяющий максимальное прерывание, которое может быть вызвано для группы контейнеров.

  • apiVersion: policy/v1

  • kind: PodDisruptionBudget

  • metadata (ObjectMeta)

    Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • spec (PodDisruptionBudgetSpec)

    Спецификация желаемого поведения PodDisruptionBudget.

  • status (PodDisruptionBudgetStatus)

    Наиболее недавно наблюдаемое состояние PodDisruptionBudget.

Спецификация PodDisruptionBudget

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

  • maxUnavailable (IntOrString)

    Отклонение разрешено, если не более «maxUnavailable» контейнеров, выбранных по «selector», недоступны после отклонения, т. е. даже в отсутствие отклонённого контейнера. Например, можно предотвратить все добровольные отклонения, указав 0. Это взаимоисключающее значение с «minAvailable».

    IntOrString — тип, который может содержать int32 или строку. При использовании в JSON или YAML маршаллинг и унмаршаллинг производят или потребляют внутренний тип. Это позволяет, например, иметь JSON-поле, которое может принимать имя или число.

  • minAvailable (IntOrString)

    Отклонение разрешено, если как минимум «minAvailable» контейнеров, выбранных по «selector», останутся доступными после отклонения, т. е. даже в отсутствие отклонённого контейнера. Таким образом, например, можно предотвратить все добровольные отклонения, указав «100%».

    IntOrString — тип, который может содержать int32 или строку. При использовании в JSON или YAML маршаллинг и унмаршаллинг производят или потребляют внутренний тип. Это позволяет, например, иметь JSON-поле, которое может принимать имя или число.

  • selector (LabelSelector)

    Запрос меток над контейнерами, чьи отклонения управляются бюджетом прерываний. Нулевой селектор не будет соответствовать ни одному контейнеру, а пустой ({}) селектор выберет все контейнеры в пространстве имён.

Статус PodDisruptionBudget

PodDisruptionBudgetStatus представляет информацию о состоянии PodDisruptionBudget. Статус может отставать от фактического состояния системы.

  • currentHealthy (int32), требуется

    текущее количество здоровых контейнеров

  • desiredHealthy (int32), требуется

    минимальное желаемое количество здоровых контейнеров

  • disruptionsAllowed (int32), требуется

    Количество прерываний контейнеров, которые в настоящее время разрешены.

  • expectedPods (int32), требуется

    общее количество контейнеров, учтённых в этом бюджете прерываний

  • conditions ([]Condition)

    Стратегия патча: слияние по ключу type

    Карта: уникальные значения по ключу типа будут сохраняться во время слияния

    Условие содержит условия для PDB. Контроллер прерываний устанавливает условие DisruptionAllowed. Ниже приведены известные значения для поля причины (в будущем могут быть добавлены дополнительные причины): - SyncFailed: контроллер столкнулся с ошибкой и не смог вычислить количество разрешённых прерываний. Следовательно, прерывания не разрешены, и состояние условия будет False.

    • InsufficientPods: количество контейнеров равно или меньше необходимого количества, указанного в PodDisruptionBudget. Прерывания не разрешены, и состояние условия будет False.
    • SufficientPods: количество контейнеров больше необходимого, указанного в PodDisruptionBudget. Условие будет True, а количество разрешённых прерываний указано в свойстве disruptionsAllowed.

    Condition содержит детали одного аспекта текущего состояния данного ресурса API.

    • conditions.lastTransitionTime (Time), требуется

      lastTransitionTime — это последний момент времени, когда условие перешло из одного состояния в другое. Это должно соответствовать моменту изменения базового условия. Если это неизвестно, то можно использовать время, когда изменилось поле API.

      Time — оболочка вокруг time.Time, которая поддерживает правильный маршаллинг в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.

    • conditions.message (string), требуется

      message — удобочитаемое сообщение, указывающее детали перехода. Это может быть пустая строка.

    • conditions.reason (string), требуется

      reason содержит программный идентификатор, указывающий причину последнего перехода состояния. Производители определённых типов условий могут определить ожидаемые значения и их смысл для этого поля и то, считаются ли значения гарантированным API. Значение должно быть строкой в формате CamelCase. Это поле не должно быть пустым.

    • conditions.status (string), требуется

      состояние условия, одно из True, False, Unknown.

    • conditions.type (string), требуется

      тип условия в формате CamelCase или в формате foo.example.com/CamelCase.

    • conditions.observedGeneration (int64)

      observedGeneration представляет .metadata.generation, на основе которой было установлено условие. Например, если .metadata.generation в настоящее время составляет 12, но .status.conditions[x].observedGeneration составляет 9, условие устарело по отношению к текущему состоянию экземпляра.

  • disruptedPods (map[string]Time)

    DisruptedPods содержит информацию о контейнерах, чьё отклонение было обработано обработчиком подресурсов отклонения API-сервера, но ещё не было замечено контроллером PodDisruptionBudget. Контейнер будет в этой карте с момента обработки API-сервером запроса на отклонение до момента, когда контроллер PDB увидит контейнер как помеченный на удаление (или после истечения срока ожидания). Ключом в карте является имя контейнера, а значением — время, когда API-сервер обработал запрос на отклонение. Если удаление не произошло и контейнер всё ещё там, он будет автоматически удалён из списка контроллером PodDisruptionBudget по истечении некоторого времени. Если всё пройдёт гладко, эта карта должна быть пустой в большинстве случаев. Большое количество записей в карте может указывать на проблемы с удалением контейнеров.

    Time — оболочка вокруг time.Time, которая поддерживает правильный маршаллинг в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.

  • observedGeneration (int64)

    Самая последняя наблюдаемая генерация при обновлении этого PDB status. Информация о disruptionsAllowed и других статусах действительна только в том случае, если observedGeneration равно генерации объекта PDB.

Список PodDisruptionBudget

PodDisruptionBudgetList — коллекция PodDisruptionBudget.

  • apiVersion: policy/v1

  • kind: PodDisruptionBudgetList

  • metadata (ListMeta)

    Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • items ([]PodDisruptionBudget), требуется

    Items — список PodDisruptionBudget

© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-24.docs.kubernetes.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1/

Spec-Zone.ru

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