From dcb576eee5c3d77b35891a7dc76226a97307b88e Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 9 Jul 2022 14:10:36 +0800 Subject: [PATCH] [zh-cn] resync workload-resources/deployment-v1.md --- .../workload-resources/deployment-v1.md | 1107 +++++++++++++++++ 1 file changed, 1107 insertions(+) create mode 100644 content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md diff --git a/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md new file mode 100644 index 0000000000000..d978d13034322 --- /dev/null +++ b/content/zh-cn/docs/reference/kubernetes-api/workload-resources/deployment-v1.md @@ -0,0 +1,1107 @@ +--- +api_metadata: + apiVersion: "apps/v1" + import: "k8s.io/api/apps/v1" + kind: "Deployment" +content_type: "api_reference" +description: "Deployment 使得 Pod 和 ReplicaSet 能够进行声明式更新。" +title: "Deployment" +weight: 5 +--- + + +`apiVersion: apps/v1` + +`import "k8s.io/api/apps/v1"` + +## Deployment {#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} + + +DeploymentSpec 定义 Deployment 预期行为的规约。 + +
+ + +- **selector** (}}">LabelSelector),必需 + + 供 Pod 所用的标签选择算符。现有 ReplicaSet 的 Pod 通过此字段进行选择, + 这些 ReplicaSet 将受到这个部署的影响。它必须与 Pod 模板的标签匹配。 + +- **template** (}}">PodTemplateSpec),必需 + + template 描述将要创建的 Pod。 + + +- **replicas** (int32) + + 预期 Pod 的数量。这是一个指针,用于辨别显式零和未指定的值。默认为 1。 + +- **minReadySeconds** (int32) + + 新建的 Pod 在没有任何容器崩溃的情况下就绪并被系统视为可用的最短秒数。 + 默认为 0(Pod 就绪后即被视为可用)。 + + +- **strategy** (DeploymentStrategy) + + **补丁策略:retainKeys** + + 将现有 Pod 替换为新 Pod 时所用的部署策略。 + + + **DeploymentStrategy 描述如何将现有 Pod 替换为新 Pod。** + + + + - **strategy.type** (string) + + 部署的类型。取值可以是 “Recreate” 或 “RollingUpdate”。默认为 RollingUpdate。 + + - **strategy.rollingUpdate** (RollingUpdateDeployment) + + 滚动更新这些配置参数。仅当 DeploymentStrategyType = RollingUpdate 时才出现。 + + + **控制滚动更新预期行为的规约。** + + + + - **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) + + 部署在被视为失败之前取得进展的最大秒数。部署控制器将继续处理失败的部署, + 且原因为 ProgressDeadlineExceeded 的状况将显示在部署状态中。 + 请注意,在部署暂停期间将不会估算进度。默认为 600s。 + +- **paused** (boolean) + + 指示部署被暂停。 + +## DeploymentStatus {#DeploymentStatus} + + +DeploymentStatus 是最近观测到的 Deployment 状态。 + +
+ + +- **replicas** (int32) + + 此部署所针对的未终止 Pod 的总数(其标签与选择算符匹配)。 + +- **availableReplicas** (int32) + + 此部署针对的可用(至少 minReadySeconds 才能就绪)的 Pod 总数。 + +- **readyReplicas** (int32) + + readyReplicas 是此 Deployment 在就绪状况下处理的目标 Pod 数量。 + + +- **unavailableReplicas** (int32) + + 此部署针对的不可用 Pod 总数。这是部署具有 100% 可用容量时仍然必需的 Pod 总数。 + 它们可能是正在运行但还不可用的 Pod,也可能是尚未创建的 Pod。 + + +- **updatedReplicas** (int32) + + 此部署所针对的未终止 Pod 的总数,这些 Pod 采用了预期的模板规约。 + +- **collisionCount** (int32) + + 供 Deployment 所用的哈希冲突计数。 + Deployment 控制器在需要为最新的 ReplicaSet 创建名称时将此字段用作冲突预防机制。 + + +- **conditions** ([]DeploymentCondition) + + **补丁策略:按照键 `type` 合并** + + 表示部署当前状态的最新可用观测值。 + + + **DeploymentCondition 描述某个点的部署状态。** + + + + - **conditions.status** (string),必需 + + 状况的状态,取值为 True、False 或 Unknown 之一。 + + - **conditions.type** (string),必需 + + 部署状况的类型。 + + + + - **conditions.lastTransitionTime** (Time) + + 状况上次从一个状态转换为另一个状态的时间。 + + + **Time 是对 time.Time 的封装。Time 支持对 YAML 和 JSON 进行正确封包。 + 为 time 包的许多函数方法提供了封装器。** + + + + - **conditions.lastUpdateTime** (Time) + + 上次更新此状况的时间。 + + + **Time 是对 time.Time 的封装。Time 支持对 YAML 和 JSON 进行正确封包。 + 为 time 包的许多函数方法提供了封装器。** + + + + - **conditions.message** (string) + + 这是一条人类可读的消息,指示有关上次转换的详细信息。 + + - **conditions.reason** (string) + + 状况上次转换的原因。 + + +- **observedGeneration** (int64) + + 部署控制器观测到的生成情况。 + +## DeploymentList {#DeploymentList} + + +DeploymentList 是 Deployment 的列表。 + +
+ +- **apiVersion**: apps/v1 + +- **kind**: DeploymentList + + +- **metadata** (}}">ListMeta) + + 标准的列表元数据。 + +- **items** ([]}}">Deployment),必需 + + items 是 Deployment 的列表。 + + +## 操作 {#Operations} + +
+ +### `get` 读取指定的 Deployment + +#### HTTP 请求 + +GET /apis/apps/v1/namespaces/{namespace}/deployments/{name} + + +#### 参数 + +- **name** (**路径参数**): string,必需 + + Deployment 的名称 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">Deployment): OK + +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): OK + +401: Unauthorized + + +### `list` 列出或监视 Deployment 类别的对象 + +#### HTTP 请求 + +GET /apis/apps/v1/namespaces/{namespace}/deployments + + +#### 参数 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + +- **continue** (**查询参数**): string + + }}">continue + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">DeploymentList): OK + +401: Unauthorized + + +### `list` 列出或监视 Deployment 类别的对象 + +#### HTTP 请求 + +GET /apis/apps/v1/deployments + + +#### 参数 + +- **allowWatchBookmarks** (**查询参数**): boolean + + }}">allowWatchBookmarks + +- **continue** (**查询参数**): string + + }}">continue + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + +- **watch** (**查询参数**): boolean + + }}">watch + + +#### 响应 + +200 (}}">DeploymentList): OK + +401: Unauthorized + + +### `create` 创建 Deployment + +#### HTTP 请求 + +POST /apis/apps/v1/namespaces/{namespace}/deployments + + +#### 参数 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">Deployment,必需 + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldManager** (**查询参数**): string + + }}">fieldManager + +- **fieldValidation** (**查询参数**): string + + }}">fieldValidation + +- **pretty** (**查询参数**): string + + }}">pretty + + +#### 响应 + +200 (}}">Deployment): OK + +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): OK + +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): OK + +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): OK + +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): OK + +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): OK + +202 (}}">Status): Accepted + +401: Unauthorized + + +### `deletecollection` 删除 Deployment 的集合 + +#### HTTP 请求 + +DELETE /apis/apps/v1/namespaces/{namespace}/deployments + + +#### 参数 + +- **namespace** (**路径参数**): string,必需 + + }}">namespace + +- **body**: }}">DeleteOptions + +- **continue** (**查询参数**): string + + }}">continue + +- **dryRun** (**查询参数**): string + + }}">dryRun + +- **fieldSelector** (**查询参数**): string + + }}">fieldSelector + +- **gracePeriodSeconds** (**查询参数**): integer + + }}">gracePeriodSeconds + +- **labelSelector** (**查询参数**): string + + }}">labelSelector + +- **limit** (**查询参数**): integer + + }}">limit + +- **pretty** (**查询参数**): string + + }}">pretty + +- **propagationPolicy** (**查询参数**): string + + }}">propagationPolicy + +- **resourceVersion** (**查询参数**): string + + }}">resourceVersion + +- **resourceVersionMatch** (**查询参数**): string + + }}">resourceVersionMatch + +- **timeoutSeconds** (**查询参数**): integer + + }}">timeoutSeconds + + +#### 响应 + +200 (}}">Status): OK + +401: Unauthorized