apiVersion: apps/v1
import "k8s.io/api/apps/v1"
Deployment робить можливими декларативні оновлення для Podʼів та ReplicaSet.
apiVersion: apps/v1
kind: Deployment
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (DeploymentSpec)
Специфікація бажаної поведінки Deployment.
status (DeploymentStatus)
Найбільш останній спостережуваний статус Deployment.
DeploymentSpec є специфікацією бажаної поведінки Deployment.
selector (LabelSelector), обовʼязково
Селектор міток для Podʼів. Наявні ReplicaSets, чиї Podʼи вибрані за допомогою цього селектора, будуть ті, які будуть змінені цим Deployment. Він повинен відповідати міткам шаблону Podʼа.
template (PodTemplateSpec), обовʼязково
Шаблон описує Podʼи, які будуть створені. Єдине допустиме значення для template.spec.restartPolicy — "Always".
replicas (int32)
Кількість бажаних Podʼів. Це вказівник для розрізнення між явним нулем і не вказаним значенням. Стандартне значення — 1.
minReadySeconds (int32)
Мінімальна кількість секунд, протягом яких новий створений Pod повинен бути готовим без збоїв жодного з його контейнерів, щоб його вважати доступним. Стандартне значення — 0 (Pod буде вважатися доступним, як тільки він буде готовий)
strategy (DeploymentStrategy)
Patch strategy: retainKeys
Стратегія розгортання, яку слід використовувати для заміни наявних Podʼів на нові.
DeploymentStrategy описує, як замінити наявні Podʼи новими.
strategy.type (string)
Тип розгортання. Може бути "Recreate" або "RollingUpdate". Стандартне значення — RollingUpdate.
Можливі значення переліку (enum):
"Recreate" Видаляє всі наявні Podʼи перед створенням нових Podʼів."RollingUpdate" Замінює старі ReplicaSets новими за допомогою послідовного оновлення, тобто поступово зменшуючи старі ReplicaSets і збільшуючи нові.strategy.rollingUpdate (RollingUpdateDeployment)
Параметри конфігурації постійного оновлення. Присутні лише, якщо DeploymentStrategyType = RollingUpdate.
Spec для управління бажаною поведінкою постійного оновлення.
strategy.rollingUpdate.maxSurge (IntOrString)
Максимальна кількість Podʼів, які можуть бути заплановані понад бажану кількість Podʼів. Значення може бути абсолютним числом (наприклад, 5) або відсотком від кількості бажаних Podʼів (наприклад, 10%). Це не може бути 0, якщо MaxUnavailable дорівнює 0. Абсолютне число обчислюється з відсотком, округленим вверх. Стандартне значення — 25%. Наприклад: якщо встановлено 30%, новий ReplicaSet може бути масштабований вгору відразу після початку постійного оновлення, так що загальна кількість старих і нових Podʼів не перевищує 130% від бажаних Podʼів. Після примусового завершення роботи старих Podʼів, новий ReplicaSet можна додатково масштабувати, гарантуючи, що загальна кількість Podʼів, запущених в будь-який момент під час оновлення, становить не більше 130% від бажаної кількості Podʼів
IntOrString — це тип, який може містити int32 або рядок. При використанні перетворення з/в JSON або YAML він виробляє або споживає внутрішній тип. Це дозволяє вам мати, наприклад, поле JSON, яке може приймати імʼя або число.
strategy.rollingUpdate.maxUnavailable (IntOrString)
Максимальна кількість Podʼів, які можуть бути недоступні під час оновлення. Значення може бути абсолютним числом (наприклад, 5) або відсотком від бажаних Podʼів (наприклад, 10%). Абсолютне число обчислюється з відсотком шляхом округлення у меншу сторону. Це не може бути 0, якщо MaxSurge дорівнює 0. Стандартне значення — 25%. Наприклад: коли це встановлено на 30%, старий ReplicaSet може бути масштабований вниз до 70% від бажаних Podʼів відразу після початку постійного оновлення. Як тільки нові Podʼи готові, старий ReplicaSet може бути додатково масштабований вниз, разом з масштабованням вгору нового ReplicaSet, забезпечуючи, що загальна кількість Podʼів, доступних у будь-який час під час оновлення, становить принаймні 70% від кількості бажаних Podʼів.
IntOrString — це тип, який може містити int32 або рядок. При використанні перетворення з/в JSON або YAML він виробляє або споживає внутрішній тип. Це дозволяє вам мати, наприклад, поле JSON, яке може приймати імʼя або число.
revisionHistoryLimit (int32)
Кількість старих ReplicaSets, які слід зберігати для можливості відкату. Це вказівник для розрізнення між явним нулем і не вказаним значенням. Стандартне значення — 10.
progressDeadlineSeconds (int32)
Максимальний час у секундах для Deployment для досягнення прогресу, перш ніж вважати його невдалим. Контролер розгортання буде продовжувати обробляти невдалі Deployment, і у статусі Deployment буде сповіщено причину ProgressDeadlineExceeded. Зверніть увагу, що прогрес не буде оцінюватися під час паузи Deployment. Стандартне значення — 600 с.
paused (boolean)
Показує, що Deployment призупинено.
DeploymentStatus — це найостанніший спостережуваний статус Deployment.
replicas (int32)
Загальна кількість Podʼів, що не завершили роботу, які є ціллю цього Deployment (їх мітки відповідають селектору).
availableReplicas (int32)
Загальна кількість доступних, що не завершили роботу, Podʼів (готових принаймні minReadySeconds), які є ціллю цього Deployment.
readyReplicas (int32)
Загальна еількість Podʼів, що не завершили роботу, які є ціллю цього Deployment в стані Ready.
unavailableReplicas (int32)
Загальна кількість недоступних Podʼів, які є ціллю цього Deployment. Це загальна кількість Podʼів, які все ще необхідні для того, щоб Deployment мав 100% доступну потужність. Вони можуть бути Podʼами, які працюють, але ще не доступні, або Podʼами, які ще не були створені.
updatedReplicas (int32)
Загальна кількість podʼів, що не завершили роботу, які є ціллю цього Deployment та мають бажаний шаблон специфікацій.
terminatingReplicas (int32)
Загальна кількість podʼів, що завершають роботу, кі є ціллю цього Deployment. Podʼи, що завершують роботу, мають ненульову позначку часу .metadata.deletionTimestamp і ще не досягли фази .status.phase Failed або Succeeded.
Це бета-поле, яке вимагає увімкнення функції DeploymentReplicaSetTerminatingReplicas (стандартно увімкнена).
collisionCount (int32)
Кількість колізій хешів для Deployment. Контролер Deployment використовує це поле як механізм уникнення колізій, коли йому потрібно створити імʼя для нового ReplicaSet.
conditions ([]DeploymentCondition)
Patch strategy: обʼєднання за ключем type
Map: унікальні значення ключа type будуть збережені під час злиття
Представляє останні доступні спостереження про поточний стан Deployment.
DeploymentCondition описує стан Deployment в певний момент.
conditions.status (string), обовʼязково
Статус стану, одне з True, False, Unknown.
conditions.type (string), обовʼязково
Тип стану Deployment.
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)
Генерація, що спостерігається контролером Deployment.
DeploymentList - це список обʼєктів Deployment.
apiVersion: apps/v1
kind: DeploymentList
metadata (ListMeta)
Стандартні метадані списку.
items ([]Deployment), обовʼязково
Items — це список обʼєктів Deployment.
get отримати вказаний DeploymentGET /apis/apps/v1/namespaces/{namespace}/deployments/{name}
name (в шляху): string, обовʼязково
назва Deployment
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
200 (Deployment): ОК
401: Unauthorized
get отримати статус вказаного DeploymentGET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
name (в шляху): string, обовʼязково
назва Deployment
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
200 (Deployment): ОК
401: Unauthorized
list перелік або перегляд обʼєктів типу DeploymentGET /apis/apps/v1/namespaces/{namespace}/deployments
namespace (у шляху): string, обовʼязково
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
200 (DeploymentList): ОК
401: Unauthorized
list перелік або перегляд обʼєктів типу DeploymentGET /apis/apps/v1/deployments
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
200 (DeploymentList): ОК
401: Unauthorized
create створення DeploymentPOST /apis/apps/v1/namespaces/{namespace}/deployments
namespace (у шляху): string, обовʼязково
body: Deployment, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
200 (Deployment): ОК
201 (Deployment): Created
202 (Deployment): Accepted
401: Unauthorized
update заміна вказаного DeploymentPUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}
name (у шляху): string, обовʼязково
імʼя Deployment
namespace (у шляху): string, обовʼязково
body: Deployment, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
200 (Deployment): ОК
201 (Deployment): Created
401: Unauthorized
update заміна статусу вказаного DeploymentPUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
name (у шляху): string, обовʼязково
імʼя Deployment
namespace (у шляху): string, обовʼязково
body: Deployment, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
200 (Deployment): ОК
201 (Deployment): Created
401: Unauthorized
patch часткове оновлення вказаного DeploymentPATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}
name (у шляху): string, обовʼязково
імʼя Deployment
namespace (у шляху): string, обовʼязково
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
200 (Deployment): ОК
201 (Deployment): Created
401: Unauthorized
patch часткове оновлення статусу вказаного DeploymentPATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
name (у шляху): string, обовʼязково
імʼя Deployment
namespace (у шляху): string, обовʼязково
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
200 (Deployment): ОК
201 (Deployment): Created
401: Unauthorized
delete видалення DeploymentDELETE /apis/apps/v1/namespaces/{namespace}/deployments/{name}
name (у шляху): string, обовʼязково
імʼя Deployment
namespace (у шляху): string, обовʼязково
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
ignoreStoreReadErrorWithClusterBreakingPotential (в запиті): boolean
pretty (в запиті): string
propagationPolicy (в запиті): string
200 (Status): ОК
202 (Status): Accepted
401: Unauthorized
deletecollection видалення колекції DeploymentDELETE /apis/apps/v1/namespaces/{namespace}/deployments
namespace (у шляху): string, обовʼязково
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
ignoreStoreReadErrorWithClusterBreakingPotential (в запиті): boolean
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
200 (Status): ОК
401: Unauthorized