Deployment

Deployment робить можливими декларативні оновлення для Podʼів та and ReplicaSet.

apiVersion: apps/v1

import "k8s.io/api/apps/v1"

Deployment

Deployment робить можливими декларативні оновлення для Podʼів та ReplicaSet.


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, обовʼязково

    namespace

  • pretty (в запиті): string

    pretty

Відповідь

200 (Deployment): ОК

401: Unauthorized

get отримати статус вказаного Deployment

HTTP Запит

GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    назва Deployment

  • namespace (в шляху): string, обовʼязково

    namespace

  • pretty (в запиті): string

    pretty

Відповідь

200 (Deployment): ОК

401: Unauthorized

list перелік або перегляд обʼєктів типу Deployment

HTTP Запит

GET /apis/apps/v1/namespaces/{namespace}/deployments

Параметри

Відповідь

200 (DeploymentList): ОК

401: Unauthorized

list перелік або перегляд обʼєктів типу Deployment

HTTP Запит

GET /apis/apps/v1/deployments

Параметри

Відповідь

200 (DeploymentList): ОК

401: Unauthorized

create створення Deployment

HTTP Запит

POST /apis/apps/v1/namespaces/{namespace}/deployments

Параметри

Відповідь

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, обовʼязково

    namespace

  • body: Deployment, обовʼязково

  • dryRun (у запиті): string

    dryRun

  • fieldManager (у запиті): string

    fieldManager

  • fieldValidation (у запиті): string

    fieldValidation

  • pretty (у запиті): string

    pretty

Відповідь

200 (Deployment): ОК

201 (Deployment): Created

401: Unauthorized

update заміна статусу вказаного Deployment

HTTP Запит

PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status

Параметри

  • name (у шляху): string, обовʼязково

    імʼя Deployment

  • namespace (у шляху): string, обовʼязково

    namespace

  • body: Deployment, обовʼязково

  • dryRun (у запиті): string

    dryRun

  • fieldManager (у запиті): string

    fieldManager

  • fieldValidation (у запиті): string

    fieldValidation

  • pretty (у запиті): string

    pretty

Відповідь

200 (Deployment): ОК

201 (Deployment): Created

401: Unauthorized

patch часткове оновлення вказаного Deployment

HTTP Запит

PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}

Параметри

  • name (у шляху): string, обовʼязково

    імʼя Deployment

  • namespace (у шляху): string, обовʼязково

    namespace

  • body: Patch, обовʼязково

  • dryRun (у запиті): string

    dryRun

  • fieldManager (у запиті): string

    fieldManager

  • fieldValidation (у запиті): string

    fieldValidation

  • force (у запиті): boolean

    force

  • pretty (у запиті): string

    pretty

Відповідь

200 (Deployment): ОК

201 (Deployment): Created

401: Unauthorized

patch часткове оновлення статусу вказаного Deployment

HTTP Запит

PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status

Параметри

  • name (у шляху): string, обовʼязково

    імʼя Deployment

  • namespace (у шляху): string, обовʼязково

    namespace

  • body: Patch, обовʼязково

  • dryRun (у запиті): string

    dryRun

  • fieldManager (у запиті): string

    fieldManager

  • fieldValidation (у запиті): string

    fieldValidation

  • force (у запиті): boolean

    force

  • pretty (у запиті): string

    pretty

Відповідь

200 (Deployment): ОК

201 (Deployment): Created

401: Unauthorized

delete видалення Deployment

HTTP Запит

DELETE /apis/apps/v1/namespaces/{namespace}/deployments/{name}

Параметри

  • name (у шляху): string, обовʼязково

    імʼя Deployment

  • namespace (у шляху): string, обовʼязково

    namespace

  • body: DeleteOptions

  • dryRun (у запиті): string

    dryRun

  • gracePeriodSeconds (у запиті): integer

    gracePeriodSeconds

  • pretty (у запиті): string

    pretty

  • propagationPolicy (у запиті): string

    propagationPolicy

Відповідь

200 (Status): ОК

202 (Status): Accepted

401: Unauthorized

deletecollection видалення колекції Deployment

HTTP Запит

DELETE /apis/apps/v1/namespaces/{namespace}/deployments

Параметри

Відповідь

200 (Status): ОК

401: Unauthorized

Змінено September 06, 2024 at 4:29 PM PST: upstream sync (b8cab2cff8)