Deployment

Deployment 使得 Pod 和 ReplicaSet 可以进行声明式更新。

apiVersion: apps/v1

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

Deployment

Deployment 使得 Pod 和 ReplicaSet 可以进行声明式更新。


DeploymentSpec

DeploymentSpec 是 Deployment 的预期行为规范。


  • selector (LabelSelector), 必需

    Pod 的标签选择器。现有 ReplicaSet 中被此选择器选中的 Pod 将受此 Deployment 影响。它必须与 Pod 模板的标签匹配。

  • template (PodTemplateSpec), 必需

    模板描述将要创建的 Pod。唯一允许的 template.spec.restartPolicy 值是 "Always"。

  • replicas (int32)

    期望的 Pod 数量。这是一个指针,用于区分显式的零和未指定。默认为 1。

  • minReadySeconds (int32)

    新创建的 Pod 在被认为可用之前,应该处于就绪状态且没有任何容器崩溃的最短秒数。默认为 0(Pod 在就绪后立即被认为可用)。

  • strategy (DeploymentStrategy)

    补丁策略:retainKeys

    用于将现有 Pod 替换为新 Pod 的 Deployment 策略。

    DeploymentStrategy 描述如何将现有 Pod 替换为新 Pod。

    • strategy.type (string)

      Deployment 类型。可以是 "Recreate" 或 "RollingUpdate"。默认值为 RollingUpdate。

    • strategy.rollingUpdate (RollingUpdateDeployment)

      滚动更新配置参数。仅当 DeploymentStrategyType = RollingUpdate 时存在。

      Spec 用于控制滚动更新的预期行为。

      • strategy.rollingUpdate.maxSurge (IntOrString)

        可以调度超出期望 Pod 数量的最大 Pod 数量。值可以是绝对数字(例如:5)或期望 Pod 的百分比(例如:10%)。如果 MaxUnavailable 为 0,则此值不能为 0。绝对数字通过向上取整从百分比计算得出。默认为 25%。示例:当此值设置为 30% 时,滚动更新开始时可以立即扩展新的 ReplicaSet,以使新旧 Pod 的总数不超过期望 Pod 的 130%。一旦旧 Pod 被杀死,新的 ReplicaSet 可以进一步扩展,确保在更新期间任何时候运行的 Pod 总数最多为期望 Pod 的 130%。

        IntOrString 是一种可以容纳 int32 或字符串的类型。当在 JSON 或 YAML 中编组和解组时,它会生成或使用内部类型。这允许您拥有一个可以接受名称或数字的 JSON 字段。

      • strategy.rollingUpdate.maxUnavailable (IntOrString)

        在更新期间可能不可用的最大 Pod 数量。值可以是绝对数字(例如:5)或期望 Pod 的百分比(例如:10%)。绝对数字通过向下取整从百分比计算得出。如果 MaxSurge 为 0,则此值不能为 0。默认为 25%。示例:当此值设置为 30% 时,滚动更新开始时可以立即将旧 ReplicaSet 缩减为期望 Pod 的 70%。一旦新的 Pod 就绪,旧的 ReplicaSet 可以进一步缩减,然后扩展新的 ReplicaSet,确保在更新期间始终可用的 Pod 总数至少为期望 Pod 的 70%。

        IntOrString 是一种可以容纳 int32 或字符串的类型。当在 JSON 或 YAML 中编组和解组时,它会生成或使用内部类型。这允许您拥有一个可以接受名称或数字的 JSON 字段。

  • revisionHistoryLimit (int32)

    要保留以允许回滚的旧 ReplicaSet 的数量。这是一个指针,用于区分显式的零和未指定。默认为 10。

  • progressDeadlineSeconds (int32)

    在 Deployment 被认为失败之前,允许其取得进展的最长时间(以秒为单位)。Deployment 控制器将继续处理失败的 Deployment,并且将在 Deployment 状态中显示具有 ProgressDeadlineExceeded 原因的条件。请注意,在 Deployment 暂停期间不会估计进度。默认为 600 秒。

  • paused (boolean)

    指示 Deployment 已暂停。

DeploymentStatus

DeploymentStatus 是 Deployment 最近观察到的状态。


  • replicas (int32)

    此 Deployment 目标(其标签与选择器匹配)的未终止 Pod 总数。

  • availableReplicas (int32)

    此 Deployment 目标的可用的 Pod 总数(至少就绪 minReadySeconds)。

  • readyReplicas (int32)

    readyReplicas 是此 Deployment 目标且具有就绪条件的 Pod 数量。

  • unavailableReplicas (int32)

    此 Deployment 目标不可用的 Pod 总数。这是 Deployment 要具有 100% 可用容量仍然需要的 Pod 总数。它们可能是正在运行但尚未可用的 Pod,也可能是尚未创建的 Pod。

  • updatedReplicas (int32)

    此 Deployment 目标且具有期望模板规范的未终止 Pod 总数。

  • collisionCount (int32)

    Deployment 的哈希冲突计数。当 Deployment 控制器需要为最新的 ReplicaSet 创建名称时,它将使用此字段作为冲突避免机制。

  • conditions ([]DeploymentCondition)

    补丁策略:合并时使用键 type

    映射:在合并期间将保留键 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 控制器观察到的 Generation。

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

    pretty

响应

200 (Deployment): OK

401: 未授权

get 读取指定的 Deployment 的状态

HTTP 请求

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

参数

  • name (在路径中): string, 必需

    Deployment 的名称

  • namespace (在路径中): string, 必需

    命名空间

  • pretty (在查询中): string

    pretty

响应

200 (Deployment): OK

401: 未授权

list 列出或监视 Deployment 类型的对象

HTTP 请求

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

参数

响应

200 (DeploymentList): OK

401: 未授权

list 列出或监视 Deployment 类型的对象

HTTP 请求

GET /apis/apps/v1/deployments

参数

响应

200 (DeploymentList): OK

401: 未授权

create 创建 Deployment

HTTP 请求

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

参数

响应

200 (Deployment): OK

201 (Deployment): 已创建

202 (Deployment): 已接受

401: 未授权

update 替换指定的 Deployment

HTTP 请求

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

参数

响应

200 (Deployment): OK

201 (Deployment): 已创建

401: 未授权

update 替换指定 Deployment 的状态

HTTP 请求

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

参数

响应

200 (Deployment): OK

201 (Deployment): 已创建

401: 未授权

patch 部分更新指定的 Deployment

HTTP 请求

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

参数

  • name (在路径中): string, 必需

    Deployment 的名称

  • namespace (在路径中): string, 必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): 布尔值

    强制

  • pretty (在查询中): string

    pretty

响应

200 (Deployment): OK

201 (Deployment): 已创建

401: 未授权

patch 部分更新指定 Deployment 的状态

HTTP 请求

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

参数

  • name (在路径中): string, 必需

    Deployment 的名称

  • namespace (在路径中): string, 必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): 布尔值

    强制

  • pretty (在查询中): string

    pretty

响应

200 (Deployment): OK

201 (Deployment): 已创建

401: 未授权

delete 删除一个 Deployment

HTTP 请求

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

参数

响应

200 (Status): 成功

202 (Status): 已接受

401: 未授权

deletecollection 删除 Deployment 集合

HTTP 请求

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

参数

响应

200 (Status): 成功

401: 未授权

此页面为自动生成。

如果您计划报告此页面的问题,请在您的问题描述中注明该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间为 2024 年 8 月 28 日下午 6:01 PST: 更新 v1.31 的自动生成的 API 参考 (8ba98c79c1)