Spec-Zone.ru › Kubernetes 1.24

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.

  • 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 должен быть разделен для обновлений. Во время обновления по схеме rolling все под от порядкового номера 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 (под будет считаться доступной, как только она будет готова). Это поле alpha и требует включения функции StatefulSetMinReadySeconds.

  • persistentVolumeClaimRetentionPolicy (StatefulSetPersistentVolumeClaimRetentionPolicy)

    persistentVolumeClaimRetentionPolicy описывает жизненный цикл объёмов persistent volume claims, созданных из volumeClaimTemplates. По умолчанию все persistent volume claims создаются по мере необходимости и хранятся до их ручного удаления. Эта политика позволяет изменить жизненный цикл, например, удаляя persistent volume claims при удалении StatefulSet или при уменьшении масштаба под. Требует включения функции StatefulSetAutoDeletePVC, которая находится на стадии альфа-тестирования. +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 для любых под, превышающих количество реплик.

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. Это поле является бета-версией и включено/выключено с помощью функции StatefulSetMinReadySeconds.

  • 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

StatefulSetList — это коллекция StatefulSets.

  • apiVersion: apps/v1

  • kind: СписокStatefulSet

  • metadata (ListMeta)

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

  • items ([]StatefulSet), обязательный

    Items — список stateful sets.

© 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/workload-resources/stateful-set-v1/

Spec-Zone.ru

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