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/