第 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
-
属性 | 类型 | 描述 |
---|---|---|
| 条件从一个状态转换到另一个状态最后一次的时间。 | |
| 最后一次更新此条件的时间。 | |
|
| 人类可读的消息,指示有关转换的详细信息。 |
|
| 条件最后一次转换的原因。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 部署条件的类型。 |