Развертывание
apiVersion: apps/v1
import "k8s.io/api/apps/v1"
Развертывание
Развертывание позволяет выполнять декларативные обновления для Pods и ReplicaSets.
apiVersion: apps/v1
kind: Deployment
-
metadata (ObjectMeta)
Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
-
spec (DeploymentSpec)
Описание желаемого поведения развертывания.
-
status (DeploymentStatus)
Наиболее недавнее состояние развертывания.
Спецификация развертывания
DeploymentSpec — это спецификация желаемого поведения развертывания.
-
selector (LabelSelector), обязательно
Селектор меток для pods. Существующие ReplicaSets, чьи pods соответствуют этому селектору, будут затронуты этим развертыванием. Он должен соответствовать меткам шаблона pods.
-
template (PodTemplateSpec), обязательно
Шаблон описывает pods, которые будут созданы. Единственное допустимое значение template.spec.restartPolicy — "Always".
-
replicas (int32)
Количество желаемых pods. Это указатель для различения явного нуля и отсутствия значения. По умолчанию равно 1.
-
minReadySeconds (int32)
Минимальное количество секунд, в течение которого новый pod должен быть готов без сбоев контейнера, чтобы считаться доступным. По умолчанию 0 (pod будет считаться доступным, как только он станет готовым).
-
strategy (DeploymentStrategy)
Стратегия патча: retainKeys
Стратегия развертывания для замены существующих pods новыми.
DeploymentStrategy описывает, как заменить существующие pods новыми.
-
strategy.type (string)
Тип развертывания. Может быть "Recreate" или "RollingUpdate". По умолчанию RollingUpdate.
-
strategy.rollingUpdate (RollingUpdateDeployment)
Параметры настройки для rolling update. Присутствуют только если DeploymentStrategyType = RollingUpdate.
Спецификация для управления желаемым поведением rolling update.
-
strategy.rollingUpdate.maxSurge (IntOrString)
Максимальное количество pods, которое может быть запланировано сверх желаемого количества pods. Значение может быть абсолютным числом (например, 5) или процентной частью желаемого количества pods (например, 10%). Это не может быть 0, если MaxUnavailable равен 0. Абсолютное число рассчитывается из процента путем округления вверх. По умолчанию 25%. Пример: когда это установлено на 30%, новый ReplicaSet может быть сразу увеличен, когда начинается rolling update, так что общее количество старых и новых pods не превысит 130% от желаемого количества pods. После завершения удаления старых pods, новый ReplicaSet может быть дальше увеличен, гарантируя, что общее количество pods, работающих в любой момент во время обновления, не превышает 130% от желаемого количества pods.
IntOrString — тип, который может хранить int32 или строку. При использовании в JSON или YAML маршалинге и унмаршалинге он производит или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или число.
-
strategy.rollingUpdate.maxUnavailable (IntOrString)
Максимальное количество недоступных pods во время обновления. Значение может быть абсолютным числом (например, 5) или процентной частью желаемого количества pods (например, 10%). Абсолютное число рассчитывается из процента путем округления вниз. Это не может быть 0, если MaxSurge равен 0. По умолчанию 25%. Пример: когда это установлено на 30%, старый ReplicaSet может быть уменьшен до 70% от желаемого количества pods сразу при запуске rolling update. После того, как новые pods будут готовы, старый ReplicaSet может быть уменьшен дальше, за которым следует увеличение нового ReplicaSet, гарантируя, что общее количество доступных pods в любой момент во время обновления составляет не менее 70% от желаемого количества pods.
IntOrString — тип, который может хранить int32 или строку. При использовании в JSON или YAML маршалинге и унмаршалинге он производит или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или число.
-
-
-
revisionHistoryLimit (int32)
Количество старых ReplicaSets, которые нужно сохранить для возможности отката. Это указатель для различения явного нуля и отсутствия значения. По умолчанию 10.
-
progressDeadlineSeconds (int32)
Максимальное время в секундах для прогресса развертывания перед тем, как оно будет считаться неисправным. Контроллер развертывания будет продолжать обрабатывать неисправные развертывания, и условие с причиной ProgressDeadlineExceeded будет отображено в состоянии развертывания. Обратите внимание, что прогресс не будет оцениваться во время паузы развертывания. По умолчанию 600s.
-
paused (boolean)
Указывает, что развертывание приостановлено.
Состояние развертывания
DeploymentStatus — это наиболее недавнее состояние развертывания.
-
replicas (int32)
Общее количество pods, не завершенных, на которые направлено это развертывание (их метки соответствуют селектору).
-
availableReplicas (int32)
Общее количество доступных pods (готовых как минимум minReadySeconds), на которые направлено это развертывание.
-
readyReplicas (int32)
readyReplicas — это количество pods, на которые направлено это развертывание, с условием Ready.
-
unavailableReplicas (int32)
Общее количество недоступных pods, на которые направлено это развертывание. Это общее количество pods, которые все еще необходимы для того, чтобы развертывание имело 100% доступной емкости. Они могут быть pods, которые работают, но еще не доступны, или pods, которые еще не были созданы.
-
updatedReplicas (int32)
Общее количество pods, не завершенных, на которые направлено это развертывание, имеющие желаемый шаблон спецификации.
-
collisionCount (int32)
Количество коллизий хешей для развертывания. Контроллер развертывания использует это поле как механизм предотвращения коллизий при необходимости создания имени для самого нового ReplicaSet.
-
conditions ([]DeploymentCondition)
Стратегия патча: merge на ключе
typeКарта: уникальные значения на ключе type будут сохранены во время слияния
Представляет последние доступные наблюдения текущего состояния развертывания.
DeploymentCondition описывает состояние развертывания в определенный момент.
-
conditions.status (string), обязательно
Состояние условия, одно из True, False, Unknown.
-
conditions.type (string), обязательно
Тип условия развертывания.
-
conditions.lastTransitionTime (Time)
Последнее время, когда условие перешло из одного состояния в другое.
Time — оболочка вокруг time.Time, которая поддерживает правильную маршализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
conditions.lastUpdateTime (Time)
Последнее время обновления этого условия.
Time — оболочка вокруг time.Time, которая поддерживает правильную маршализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
conditions.message (string)
Человекопонятное сообщение, показывающее детали перехода.
-
conditions.reason (string)
Причина последнего перехода состояния условия.
-
-
observedGeneration (int64)
Поколение, наблюдаемое контроллером развертывания.
Список развертываний
DeploymentList — это список развертываний.
apiVersion: apps/v1
kind: DeploymentList
-
metadata (ListMeta)
Стандартные метаданные списка.
-
items ([]Deployment), обязательно
Items — это список развертываний.
© 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2024 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/