Spec-Zone.ru › Kubernetes 1.26

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".

  • 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. Это поле находится на стадии alpha и учитывается только серверами, которые включают функцию 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 остаются нетронутыми. Это полезно для возможности выполнения развертывания canary. По умолчанию значение равно 0.

  • podManagementPolicy (строка)

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

  • revisionHistoryLimit (int32)

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

  • volumeClaimTemplates ([]PersistentVolumeClaim)

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

  • minReadySeconds (int32)

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

  • persistentVolumeClaimRetentionPolicy (StatefulSetPersistentVolumeClaimRetentionPolicy)

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

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

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

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

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

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

  • ordinals (StatefulSetOrdinals)

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

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

Spec-Zone.ru

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