Spec-Zone.ru › Kubernetes 1.25

StatefulSet

StatefulSet представляет собой набор Pods с постоянными идентификаторами.

apiVersion: apps/v1

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

StatefulSet

StatefulSet представляет собой набор Pods с постоянными идентификаторами. Идентификаторы определяются как:

  • Сеть: Единственный стабильный DNS и имя хоста.
  • Хранилище: столько VolumeClaims, сколько запрошено.

StatefulSet гарантирует, что данный сетевой идентификатор всегда будет сопоставлен с тем же идентификатором хранилища.

  • apiVersion: apps/v1

  • kind: StatefulSet

  • metadata (ObjectMeta)

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

  • spec (StatefulSetSpec)

    Spec определяет желаемые идентификаторы Pods в этом наборе.

  • status (StatefulSetStatus)

    Status — текущий статус Pods в этом StatefulSet. Данные могут быть устаревшими на определенный промежуток времени.

StatefulSetSpec

StatefulSetSpec — это спецификация StatefulSet.

  • serviceName (строка), обязательно

    serviceName — имя сервиса, управляющего этим StatefulSet. Этот сервис должен существовать до StatefulSet и отвечает за сетевой идентификатор набора. Pods получают DNS/имена хостов, которые следуют шаблону: pod-specific-string.serviceName.default.svc.cluster.local, где "pod-specific-string" управляется контроллером StatefulSet.

  • selector (LabelSelector), обязательно

    selector — запрос меток для Pods, которые должны соответствовать количеству реплик. Он должен соответствовать меткам шаблона Pod. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

  • template (PodTemplateSpec), обязательно

    template — объект, описывающий Pod, который будет создан, если обнаружено недостаточное количество реплик. Каждый Pod, созданный StatefulSet, будет соответствовать этому шаблону, но будет иметь уникальный идентификатор по сравнению с остальными Pods в StatefulSet.

  • replicas (int32)

    replicas — желаемое количество реплик заданного шаблона. Это реплики в том смысле, что они являются экземплярами одного и того же шаблона, но отдельные реплики также имеют постоянный идентификатор. Если не указано, по умолчанию равно 1.

  • updateStrategy (StatefulSetUpdateStrategy)

    updateStrategy указывает StatefulSetUpdateStrategy, который будет использован для обновления Pods в StatefulSet, когда в шаблон внесены изменения.

    StatefulSetUpdateStrategy указывает стратегию, которую контроллер StatefulSet будет использовать для выполнения обновлений. Он включает все дополнительные параметры, необходимые для выполнения обновления для указанной стратегии.

    • updateStrategy.type (строка)

      Type указывает тип StatefulSetUpdateStrategy. По умолчанию — RollingUpdate.

    • updateStrategy.rollingUpdate (RollingUpdateStatefulSetStrategy)

      RollingUpdate используется для передачи параметров, когда Type — RollingUpdateStatefulSetStrategyType.

      RollingUpdateStatefulSetStrategy используется для передачи параметров RollingUpdateStatefulSetStrategyType.

      • updateStrategy.rollingUpdate.maxUnavailable (IntOrString)

        Максимальное количество Pods, которые могут быть недоступны во время обновления. Значение может быть абсолютным числом (например, 5) или процентом от желаемого количества Pods (например, 10%). Абсолютное число рассчитывается из процента путем округления вверх. Это не может быть 0. По умолчанию 1. Это поле находится на стадии alpha и поддерживается только серверами, которые поддерживают функцию MaxUnavailableStatefulSet. Поле применяется ко всем Pods в диапазоне от 0 до Replicas-1. Это означает, что если в диапазоне от 0 до Replicas-1 есть недоступный Pod, он будет учтен в MaxUnavailable.

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

      • updateStrategy.rollingUpdate.partition (int32)

        Partition указывает порядковый номер, на котором StatefulSet должен быть разделен для обновления. Во время обновления по нарастающей все Pods с порядковым номером от Replicas-1 до Partition обновляются. Все Pods с порядковым номером от Partition-1 до 0 остаются нетронутыми. Это полезно для проведения canary-развертывания. По умолчанию значение 0.

  • podManagementPolicy (строка)

    podManagementPolicy управляет тем, как Pods создаются во время первоначального увеличения масштаба, при замене Pods на узлах или при уменьшении масштаба. Политика по умолчанию — OrderedReady, где Pods создаются в возрастающем порядке (pod-0, затем pod-1 и т. д.), и контроллер будет ждать, пока каждый Pod будет готов, прежде чем продолжить. При уменьшении масштаба Pods удаляются в обратном порядке. Альтернативная политика — Parallel, которая создаст Pods параллельно, чтобы соответствовать желаемому масштабу без ожидания, а при уменьшении масштаба удалит все Pods сразу.

  • revisionHistoryLimit (int32)

    revisionHistoryLimit — максимальное количество ревизий, которые будут сохраняться в истории ревизий StatefulSet. История ревизий состоит из всех ревизий, не представленных текущей применённой версией StatefulSetSpec. Значение по умолчанию 10.

  • volumeClaimTemplates ([]PersistentVolumeClaim)

    volumeClaimTemplates — список требований, которые Pods разрешено ссылаться. Контроллер StatefulSet отвечает за сопоставление сетевых идентификаторов с требованиями таким образом, чтобы сохранялся идентификатор Pod. Каждое требование в этом списке должно иметь как минимум одну соответствующую (по имени) mount-точку тома в одном контейнере в шаблоне. Требование в этом списке имеет приоритет над любыми томами в шаблоне с тем же именем.

  • minReadySeconds (int32)

    Минимальное количество секунд, в течение которого недавно созданный Pod должен быть готов без сбоев контейнеров, чтобы считаться доступным. По умолчанию 0 (Pod будет считаться доступным, как только он будет готов).

  • persistentVolumeClaimRetentionPolicy (StatefulSetPersistentVolumeClaimRetentionPolicy)

    persistentVolumeClaimRetentionPolicy описывает жизненный цикл постоянных хранилищ требований, созданных из volumeClaimTemplates. По умолчанию все постоянные хранилища требований создаются по мере необходимости и сохраняются до их ручного удаления. Эта политика позволяет изменить жизненный цикл, например, удалив постоянные хранилища требований при удалении StatefulSet или при уменьшении масштаба Pod. Для этого требуется включить шлюз StatefulSetAutoDeletePVC, который находится в alpha состоянии. +необязательно

    StatefulSetPersistentVolumeClaimRetentionPolicy описывает политику, используемую для PVC, созданных из StatefulSet VolumeClaimTemplates.

    • persistentVolumeClaimRetentionPolicy.whenDeleted (строка)

      WhenDeleted указывает, что произойдёт с PVC, созданными из StatefulSet VolumeClaimTemplates, при удалении StatefulSet. Политика по умолчанию Retain не влияет на PVC. Политика Delete приводит к удалению этих PVC.

    • persistentVolumeClaimRetentionPolicy.whenScaled (строка)

      WhenScaled указывает, что произойдёт с PVC, созданными из StatefulSet VolumeClaimTemplates, при уменьшении масштаба StatefulSet. По умолчанию Retain не влияет на PVC. Политика Delete приводит к удалению связанных PVC для любых избыточных Pods сверх количества реплик.

StatefulSetStatus

StatefulSetStatus представляет текущее состояние StatefulSet.

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

    replicas — количество Pods, созданных контроллером StatefulSet.

  • readyReplicas (int32)

    readyReplicas — количество Pods, созданных для этого StatefulSet с состоянием Ready.

  • currentReplicas (int32)

    currentReplicas — количество Pods, созданных контроллером StatefulSet из версии StatefulSet, указанной в currentRevision.

  • updatedReplicas (int32)

    updatedReplicas — количество Pods, созданных контроллером StatefulSet из версии StatefulSet, указанной в updateRevision.

  • availableReplicas (int32)

    Общее количество доступных Pods (готовых как минимум на minReadySeconds), нацеленных на этот StatefulSet.

  • collisionCount (int32)

    collisionCount — количество коллизий хэшей для StatefulSet. Контроллер StatefulSet использует это поле как механизм предотвращения коллизий при необходимости создания имени для последнего ControllerRevision.

  • conditions ([]StatefulSetCondition)

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

    Представляет последние доступные наблюдения за текущим состоянием StatefulSet.

    StatefulSetCondition описывает состояние StatefulSet в определенный момент.

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

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

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

      Тип условия StatefulSet.

    • conditions.lastTransitionTime (Time)

      Последнее время перехода условия из одного статуса в другой.

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

    • conditions.message (string)

      Читаемое человеком сообщение, указывающее детали перехода.

    • conditions.reason (string)

      Причина последнего перехода состояния.

  • currentRevision (string)

    currentRevision, если не пусто, указывает версию StatefulSet, используемую для создания Pods в последовательности [0,currentReplicas).

  • updateRevision (string)

    updateRevision, если не пусто, указывает версию StatefulSet, используемую для создания Pods в последовательности [replicas-updatedReplicas,replicas)

  • observedGeneration (int64)

    observedGeneration — самая последняя наблюдаемая генерация для этого StatefulSet. Она соответствует генерации StatefulSet, которая обновляется при изменении API-сервером.

Список StatefulSet

СписокStatefulSet — коллекция StatefulSet.

  • apiVersion: apps/v1

  • kind: СписокStatefulSet

  • metadata (ListMeta)

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

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

    Items — список StatefulSet.

© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-25.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/stateful-set-v1/

Spec-Zone.ru

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