第 8 章 Deployment [apps/v1]
- 描述
- Deployment 为 Pod 和 ReplicaSet 启用声明性更新。
- 类型
- 
						对象
8.1. 规格
| 属性 | 类型 | 描述 | 
|---|---|---|
| 
								 | 
								 | APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | 
| 
								 | 
								 | kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | 
| 
								 | 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
| 
								 | 
								 | DeploymentSpec 是 Deployment 所需的行为的规格。 | 
| 
								 | 
								 | DeploymentStatus 是部署最近观察到的状态。 | 
8.1.1. .spec
- 描述
- DeploymentSpec 是 Deployment 所需的行为的规格。
- 类型
- 
								object
- 必填
- 
										selector
- 
										模板
 
- 
										
| 属性 | 类型 | 描述 | 
|---|---|---|
| 
									 | 
									 | 新创建的 pod 应该在没有其任何容器崩溃的情况下就绪的最少秒数,以便它被视为可用。默认为 0 (pod 一旦就绪就会被视为可用) | 
| 
									 | 
									 | 表示部署已暂停。 | 
| 
									 | 
									 | 部署在被视为失败前进行进度的最长时间(以秒为单位)。部署控制器将继续处理失败的部署,以及具有 ProgressDeadlineExceed 原因的条件将处于部署状态。请注意,在部署暂停期间不会估算进度。默认值为 600s。 | 
| 
									 | 
									 | 所需的 pod 数量。这是一个指针,用于区分显式零和未指定的。默认为 1。 | 
| 
									 | 
									 | 要保留的旧 ReplicaSet 数量,以允许回滚。这是一个指针,用于区分显式零和未指定的。默认值为 10。 | 
| 
									 | pod 的标签选择器。其 pod 被选择的现有 ReplicaSet 将会受到此部署的影响。它必须与 pod 模板的标签匹配。 | |
| 
									 | 
									 | DeploymentStrategy 描述了如何将现有 pod 替换为新的 pod。 | 
| 
									 | Template 描述了要创建的 pod。唯一允许的 template.spec.restartPolicy 值是 "Always"。 | 
8.1.2. .spec.strategy
- 描述
- DeploymentStrategy 描述了如何将现有 pod 替换为新的 pod。
- 类型
- 
								object
| 属性 | 类型 | 描述 | 
|---|---|---|
| 
									 | 
									 | spec 控制滚动更新所需的行为。 | 
| 
									 | 
									 | 部署类型。可以是 "Recreate" 或 "RollingUpdate"。默认为 RollingUpdate。 
									可能枚举值:-  | 
8.1.3. .spec.strategy.rollingUpdate
- 描述
- spec 控制滚动更新所需的行为。
- 类型
- 
								object
| 属性 | 类型 | 描述 | 
|---|---|---|
| 
									 | 可以在所需 pod 数量之上调度的最大 pod 数量。值可以是绝对数字(例如 5)或所需 pod 的百分比(例如 10%)。如果 MaxUnavailable 为 0,则不能是 0。绝对数量从百分比计算。默认值为 25%。示例:当将其设置为 30% 时,在滚动更新启动时可以立即扩展新的 ReplicaSet,以便旧 pod 的总数不会超过 130%。旧 pod 终止后,可以进一步扩展新的 ReplicaSet,确保更新期间任何时间运行的 pod 总数最多为 130%。 | |
| 
									 | 更新期间不可用的 pod 的最大数量。值可以是绝对数字(例如 5)或所需 pod 的百分比(例如 10%)。绝对数量从百分比计算(通过向下舍入)。如果 MaxSurge 为 0,则这不能是 0。默认值为 25%。示例:当将其设置为 30% 时,在滚动更新启动时,可以立即将旧 ReplicaSet 缩减到 70% 的 pod。新 pod 就绪后,可以进一步扩展旧的 ReplicaSet,然后扩展新的 ReplicaSet,确保更新期间可用的 pod 总数至少 70%。 | 
8.1.4. .status
- 描述
- DeploymentStatus 是部署最近观察到的状态。
- 类型
- 
								object
| 属性 | 类型 | 描述 | 
|---|---|---|
| 
									 | 
									 | 此部署的目标可用 pod 的总数(至少为 minReadySeconds)。 | 
| 
									 | 
									 | Deployment 的哈希冲突计数。当需要为最新的 ReplicaSet 创建名称时,Deployment 控制器使用此字段作为冲突机制。 | 
| 
									 | 
									 | 代表部署当前状态的最新可用影响。 | 
| 
									 | 
									 | DeploymentCondition 描述了部署在特定时间点上的状态。 | 
| 
									 | 
									 | 部署控制器观察到的生成。 | 
| 
									 | 
									 | readyReplicas 是此 Deployment 目标的 pod 数量,带有 Ready Condition。 | 
| 
									 | 
									 | 此部署目标的非确定 pod 的总数(标签与选择器匹配)。 | 
| 
									 | 
									 | 此部署目标不可用 pod 的总数。这是部署需要有 100% 可用容量的 pod 总数。它们可能是正在运行但尚未可用或尚未创建的 pod。 | 
| 
									 | 
									 | 此部署目标为具有所需模板 spec 的非确定 pod 的总数。 | 
8.1.5. .status.conditions
- 描述
- 代表部署当前状态的最新可用影响。
- 类型
- 
								array
8.1.6. .status.conditions[]
- 描述
- DeploymentCondition 描述了部署在特定时间点上的状态。
- 类型
- 
								object
- 必填
- 
										type
- 
										status
 
-