Spec-Zone.ru › Kubernetes 1.28

StatefulSet

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

apiVersion: apps/v1

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

StatefulSet

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

  • Сеть: Единый стабильный 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 определяет желаемые идентификаторы под в этом наборе.

  • status (StatefulSetStatus)

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

StatefulSetSpec

StatefulSetSpec — это описание StatefulSet.

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

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

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

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

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

    template — объект, описывающий под, который будет создан, если обнаружено недостаточное количество реплик. Каждая под, созданная StatefulSet, выполняет этот шаблон, но имеет уникальный идентификатор от остальной части StatefulSet. Каждая под будет именоваться в формате <имя-statefulset>-<номер-под>. Например, под в StatefulSet с именем «web» и номером «3» будет иметь имя «web-3». Единственное допустимое значение template.spec.restartPolicy — «Always».

  • replicas (int32)

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

  • updateStrategy (StatefulSetUpdateStrategy)

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

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

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

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

    • updateStrategy.rollingUpdate (RollingUpdateStatefulSetStrategy)

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

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

      • updateStrategy.rollingUpdate.maxUnavailable (IntOrString)

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

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

      • updateStrategy.rollingUpdate.partition (int32)

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

  • podManagementPolicy (строка)

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

  • revisionHistoryLimit (int32)

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

  • volumeClaimTemplates ([]PersistentVolumeClaim)

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

  • minReadySeconds (int32)

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

  • persistentVolumeClaimRetentionPolicy (StatefulSetPersistentVolumeClaimRetentionPolicy)

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

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

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

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

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

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

  • ordinals (StatefulSetOrdinals)

    ordinals управляет нумерацией индексов реплик в StatefulSet. Поведение ordinals по умолчанию назначает индекс «0» первой реплике и увеличивает индекс на единицу для каждой дополнительной запрошенной реплики. Использование поля ordinals требует, чтобы функция StatefulSetStartOrdinal была включена, которая находится в стадии бета-тестирования.

    StatefulSetOrdinals описывает политику, используемую для назначения порядковых номеров реплик в этом StatefulSet.

    • ordinals.start (int32)

      start — число, представляющее индекс первой реплики. Он может быть использован для нумерации реплик с альтернативного индекса (например, 1-индексный) по сравнению с индексом по умолчанию (0-индексный) или для организации поэтапного перемещения реплик из одного StatefulSet в другой. Если задано, индексы реплик будут в диапазоне: [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas). Если не задано, по умолчанию равно 0. Индексы реплик будут в диапазоне: [0, .spec.replicas).

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-28.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/stateful-set-v1/

Spec-Zone.ru

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