Deployment
apiVersion: apps/v1
import "k8s.io/api/apps/v1"
Deployment
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
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.
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
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 та мають бажаний шаблон специфікацій.
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
DeploymentList - це список обʼєктів Deployment.
apiVersion: apps/v1
kind: DeploymentList
metadata (ListMeta)
Стандартні метадані списку.
items ([]Deployment), обовʼязково
Items — це список обʼєктів Deployment.
Операції
get
отримати вказаний Deployment
HTTP Запит
GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}
Параметри
name (в шляху): string, обовʼязково
назва Deployment
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (Deployment): ОК
401: Unauthorized
get
отримати статус вказаного Deployment
HTTP Запит
GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва Deployment
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (Deployment): ОК
401: Unauthorized
list
перелік або перегляд обʼєктів типу Deployment
HTTP Запит
GET /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
перелік або перегляд обʼєктів типу Deployment
HTTP Запит
GET /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
створення Deployment
HTTP Запит
POST /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
заміна вказаного Deployment
HTTP Запит
PUT /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
заміна статусу вказаного Deployment
HTTP Запит
PUT /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
часткове оновлення вказаного Deployment
HTTP Запит
PATCH /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
часткове оновлення статусу вказаного Deployment
HTTP Запит
PATCH /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
видалення Deployment
HTTP Запит
DELETE /apis/apps/v1/namespaces/{namespace}/deployments/{name}
Параметри
name (у шляху): string, обовʼязково
імʼя Deployment
namespace (у шляху): string, обовʼязково
body: DeleteOptions
dryRun (у запиті): string
gracePeriodSeconds (у запиті): integer
pretty (у запиті): string
propagationPolicy (у запиті): string
Відповідь
200 (Status): ОК
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції Deployment
HTTP Запит
DELETE /apis/apps/v1/namespaces/{namespace}/deployments
Параметри
namespace (у шляху): string, обовʼязково
body: DeleteOptions
continue (у запиті): string
dryRun (у запиті): string
fieldSelector (у запиті): string
gracePeriodSeconds (у запиті): integer
labelSelector (у запиті): string
limit (у запиті): integer
pretty (у запиті): string
propagationPolicy (у запиті): string
resourceVersion (у запиті): string
resourceVersionMatch (у запиті): string
sendInitialEvents (у запиті): boolean
timeoutSeconds (у запиті): integer
Відповідь
200 (Status): ОК
401: Unauthorized