第 9 章 DeploymentConfig [apps.openshift.io/v1]
- 描述
Deployment Configs 定义 pod 的模板,并管理新镜像或配置更改。单一部署配置通常与单个微服务类似。可以支持许多不同的部署模式,包括完整重启、可自定义滚动更新和完全自定义行为,以及预部署 hook。每个单独的部署都以复制控制器表示。
当部署配置或更改镜像流中的标签时,部署会被"触发"。可以禁用触发器以允许手动控制部署。"strategy"决定了如何执行部署,可以随时更改。当任何方法触发新部署时,
latestVersion
字段会被更新。兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。弃用:使用部署或其他方法为 pod 进行声明性更新。
- 类型
-
object
- 必填
-
spec
-
9.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 |
| metadata 是标准对象的元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| DeploymentConfigSpec 代表部署的所需状态。 |
|
| DeploymentConfigStatus 代表当前的部署状态。 |
9.1.1. .spec
- 描述
- DeploymentConfigSpec 代表部署的所需状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| MinReadySeconds 是新创建的 pod 应该在其容器崩溃的情况下就绪的最少秒数,以便它被视为可用。默认为 0 (pod 一旦就绪就会被视为可用) |
|
| paused 表示部署配置已暂停,不会出现由其他触发器导致的模板更改或更改。 |
|
| replicas 是所需副本数。 |
|
| RevisionHistoryLimit 是要保留的旧 ReplicationController 的数量,以允许回滚。此字段是一个指针,允许在显式零和未指定的间区分。默认值为 10。(这只适用于通过新组 API 资源创建的 DeploymentConfig,而不是传统资源。) |
|
| selector 是 pod 上的标签查询,它应当与 Replicas 计数匹配。 |
|
| DeploymentStrategy 描述了如何执行部署。 |
| template 是描述在检测到副本不足时将创建的 pod 的对象。 | |
|
| 测试可确保此部署配置具有零个副本,除了部署运行时除外。这允许将部署配置用作持续部署测试 - 在镜像上触发,运行部署,然后成功或失败。后策略 hook 和 after 操作可用于将成功部署与操作集成。 |
|
| 触发器决定对 DeploymentConfig 的更新如何生成新部署。如果没有定义触发器,新的部署只能因为明确的客户端使用新的 LatestVersion 更新到 DeploymentConfig 的结果。如果为 null,则默认为使配置更改触发器。 |
|
| DeploymentTriggerPolicy 描述了生成新部署的单一触发器的策略。 |
9.1.2. .spec.strategy
- 描述
- DeploymentStrategy 描述了如何执行部署。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| activeDeadlineSeconds 是此部署配置的部署器 pod 在系统主动尝试终止它们前可能在节点上处于活跃状态的持续时间(以秒为单位)。 |
|
| annotations 是一组键、值对,添加到自定义部署器和生命周期前/post hook Pod 中。 |
|
| CustomDeploymentStrategyParams 是 Custom 部署策略的输入。 |
|
| 标签是一组键,即添加到自定义部署器和生命周期前/post hook Pod 的值对。 |
|
| RecreateDeploymentStrategyParams 是 Recreate 部署策略的输入。 |
| 资源包含执行部署和任何 hook 的资源要求。 | |
|
| RollingDeploymentStrategyParams 是 Rolling 部署策略的输入。 |
|
| type 是部署策略的名称。 |
9.1.3. .spec.strategy.customParams
- 描述
- CustomDeploymentStrategyParams 是 Custom 部署策略的输入。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命令是可选的,并覆盖容器镜像中的 CMD。 |
| 环境包含将提供给镜像的容器的环境。 | |
|
| image 指定可执行部署的容器镜像。 |
9.1.4. .spec.strategy.recreateParams
- 描述
- RecreateDeploymentStrategyParams 是 Recreate 部署策略的输入。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。 |
|
| LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。 |
|
| LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。 |
|
| timeoutSeconds 是放弃前等待更新的时间。如果值为 nil,则使用默认值。 |
9.1.5. .spec.strategy.recreateParams.mid
- 描述
- LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
- 类型
-
object
- 必填
-
failurePolicy
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。 |
|
| failurePolicy 指定在 hook 失败时要执行的操作。 |
|
| TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。 |
|
| TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。 |
9.1.6. .spec.strategy.recreateParams.mid.execNewPod
- 描述
- ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
- 类型
-
object
- 必填
-
命令
-
containerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| command 是 action 命令及其参数。 |
|
| containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。 |
| env 是一组环境变量,用于提供给 hook pod 的容器。 | |
|
| volumes 是 pod 模板中命名卷的列表,应复制到 hook pod。pod 规格中未找到的卷名称将被忽略。一个空列表表示不会复制卷。 |
9.1.7. .spec.strategy.recreateParams.mid.tagImages
- 描述
- TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。
- 类型
-
数组
9.1.8. .spec.strategy.recreateParams.mid.tagImages[]
- 描述
- TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。
- 类型
-
object
- 必填
-
containerName
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。 |
| to 是将容器镜像设置为的目标 ImageStreamTag。 |
9.1.9. .spec.strategy.recreateParams.post
- 描述
- LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
- 类型
-
object
- 必填
-
failurePolicy
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。 |
|
| failurePolicy 指定在 hook 失败时要执行的操作。 |
|
| TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。 |
|
| TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。 |
9.1.10. .spec.strategy.recreateParams.post.execNewPod
- 描述
- ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
- 类型
-
object
- 必填
-
命令
-
containerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| command 是 action 命令及其参数。 |
|
| containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。 |
| env 是一组环境变量,用于提供给 hook pod 的容器。 | |
|
| volumes 是 pod 模板中命名卷的列表,应复制到 hook pod。pod 规格中未找到的卷名称将被忽略。一个空列表表示不会复制卷。 |
9.1.11. .spec.strategy.recreateParams.post.tagImages
- 描述
- TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。
- 类型
-
数组
9.1.12. .spec.strategy.recreateParams.post.tagImages[]
- 描述
- TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。
- 类型
-
object
- 必填
-
containerName
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。 |
| to 是将容器镜像设置为的目标 ImageStreamTag。 |
9.1.13. .spec.strategy.recreateParams.pre
- 描述
- LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
- 类型
-
object
- 必填
-
failurePolicy
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。 |
|
| failurePolicy 指定在 hook 失败时要执行的操作。 |
|
| TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。 |
|
| TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。 |
9.1.14. .spec.strategy.recreateParams.pre.execNewPod
- 描述
- ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
- 类型
-
object
- 必填
-
命令
-
containerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| command 是 action 命令及其参数。 |
|
| containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。 |
| env 是一组环境变量,用于提供给 hook pod 的容器。 | |
|
| volumes 是 pod 模板中命名卷的列表,应复制到 hook pod。pod 规格中未找到的卷名称将被忽略。一个空列表表示不会复制卷。 |
9.1.15. .spec.strategy.recreateParams.pre.tagImages
- 描述
- TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。
- 类型
-
数组
9.1.16. .spec.strategy.recreateParams.pre.tagImages[]
- 描述
- TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。
- 类型
-
object
- 必填
-
containerName
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。 |
| to 是将容器镜像设置为的目标 ImageStreamTag。 |
9.1.17. .spec.strategy.rollingParams
- 描述
- RollingDeploymentStrategyParams 是 Rolling 部署策略的输入。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| intervalSeconds 是更新后轮询部署状态之间等待的时间。如果值为 nil,则使用默认值。 |
| maxSurge 是可在原始 pod 数量之上调度的最大 pod 数量。值可以是绝对数字(例如 5),也可以是更新开始时 pod 总量的百分比(例如: 10%)。绝对数量从百分比计算。 如果 MaxUnavailable 为 0。默认情况下使用 25%。 示例:当将其设置为 30% 时,当滚动更新启动时,新的 RC 可立即扩展 30%。旧 pod 终止后,可以进一步扩展新的 RC,确保更新期间任何时间运行的 pod 总数最多为原始 pod 的 130%。 | |
| maxUnavailable 是更新期间不可用的 pod 的最大数量。值可以是绝对数字(例如 5),也可以是开始更新时 pod 总量的百分比(例如: 10%)。绝对数量从百分比计算(通过向下舍入)。 如果 MaxSurge 为 0,则这不能为 0。默认情况下使用 25%。 示例:当将其设置为 30% 时,可以在滚动更新启动时立即由 30% 缩减旧 RC。新 pod 就绪后,可以进一步扩展旧的 RC,然后扩展新的 RC,确保更新过程中至少有 70% 的原始 pod 数量。 | |
|
| LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。 |
|
| LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。 |
|
| timeoutSeconds 是放弃前等待更新的时间。如果值为 nil,则使用默认值。 |
|
| updatePeriodSeconds 是各个 pod 更新之间等待的时间。如果值为 nil,则使用默认值。 |
9.1.18. .spec.strategy.rollingParams.post
- 描述
- LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
- 类型
-
object
- 必填
-
failurePolicy
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。 |
|
| failurePolicy 指定在 hook 失败时要执行的操作。 |
|
| TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。 |
|
| TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。 |
9.1.19. .spec.strategy.rollingParams.post.execNewPod
- 描述
- ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
- 类型
-
object
- 必填
-
命令
-
containerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| command 是 action 命令及其参数。 |
|
| containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。 |
| env 是一组环境变量,用于提供给 hook pod 的容器。 | |
|
| volumes 是 pod 模板中命名卷的列表,应复制到 hook pod。pod 规格中未找到的卷名称将被忽略。一个空列表表示不会复制卷。 |
9.1.20. .spec.strategy.rollingParams.post.tagImages
- 描述
- TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。
- 类型
-
数组
9.1.21. .spec.strategy.rollingParams.post.tagImages[]
- 描述
- TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。
- 类型
-
object
- 必填
-
containerName
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。 |
| to 是将容器镜像设置为的目标 ImageStreamTag。 |
9.1.22. .spec.strategy.rollingParams.pre
- 描述
- LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
- 类型
-
object
- 必填
-
failurePolicy
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。 |
|
| failurePolicy 指定在 hook 失败时要执行的操作。 |
|
| TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。 |
|
| TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。 |
9.1.23. .spec.strategy.rollingParams.pre.execNewPod
- 描述
- ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
- 类型
-
object
- 必填
-
命令
-
containerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| command 是 action 命令及其参数。 |
|
| containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。 |
| env 是一组环境变量,用于提供给 hook pod 的容器。 | |
|
| volumes 是 pod 模板中命名卷的列表,应复制到 hook pod。pod 规格中未找到的卷名称将被忽略。一个空列表表示不会复制卷。 |
9.1.24. .spec.strategy.rollingParams.pre.tagImages
- 描述
- TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。
- 类型
-
数组
9.1.25. .spec.strategy.rollingParams.pre.tagImages[]
- 描述
- TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。
- 类型
-
object
- 必填
-
containerName
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。 |
| to 是将容器镜像设置为的目标 ImageStreamTag。 |
9.1.26. .spec.triggers
- 描述
- 触发器决定对 DeploymentConfig 的更新如何生成新部署。如果没有定义触发器,新的部署只能因为明确的客户端使用新的 LatestVersion 更新到 DeploymentConfig 的结果。如果为 null,则默认为使配置更改触发器。
- 类型
-
数组
9.1.27. .spec.triggers[]
- 描述
- DeploymentTriggerPolicy 描述了生成新部署的单一触发器的策略。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| DeploymentTriggerImageChangeParams 代表 ImageChange 触发器的参数。 |
|
| 触发器的类型 |
9.1.28. .spec.triggers[].imageChangeParams
- 描述
- DeploymentTriggerImageChangeParams 代表 ImageChange 触发器的参数。
- 类型
-
object
- 必填
-
from
-
属性 | 类型 | 描述 |
---|---|---|
|
| 自动意味着新标签值的检测应该会导致 pod 模板中的镜像更新。 |
|
| containerNames 用于限制 pod 中指定容器名称集的标签更新。如果多个触发器指向同一容器,则生成的行为未定义。将来的 API 版本会导致这个验证错误。如果 ContainerNames 没有指向有效的容器,则触发器将被忽略。将来的 API 版本会导致这个验证错误。 |
| from 是对镜像流标签的引用,以监视更改。from.Name 是唯一需要的子字段 - 如果 From.Namespace 为空白,则使用当前部署触发器的命名空间。 | |
|
| lastTriggeredImage 是要触发的最后一个镜像。 |
9.1.29. .status
- 描述
- DeploymentConfigStatus 代表当前的部署状态。
- 类型
-
object
- 必填
-
latestVersion
-
observedGeneration
-
replicas
-
updatedReplicas
-
availableReplicas
-
unavailableReplicas
-
属性 | 类型 | 描述 |
---|---|---|
|
| availableReplicas 是此部署配置目标的可用 pod 的总数。 |
|
| 条件代表部署配置当前状态的最新可用影响。 |
|
| DeploymentCondition 描述了部署配置在特定时间点上的状态。 |
|
| DeploymentDetails 捕获有关部署原因的信息。 |
|
| LatestVersion 用于确定与部署配置关联的当前部署是否不同步。 |
|
| observedGeneration 是部署配置控制器观察到的最新生成。 |
|
| 此部署目标就绪 pod 的总数。 |
|
| replicas 是此部署配置目标的 pod 总数。 |
|
| UnavailableReplicas 是此部署配置的目标不可用 pod 的总数。 |
|
| UpdatedReplicas 是此部署配置的目标非确定的 pod 总数,该配置具有所需模板 spec。 |
9.1.30. .status.conditions
- 描述
- 条件代表部署配置当前状态的最新可用影响。
- 类型
-
array
9.1.31. .status.conditions[]
- 描述
- DeploymentCondition 描述了部署配置在特定时间点上的状态。
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| 条件从一个状态转换到另一个状态最后一次的时间。 | |
| 最后一次更新此条件的时间。 | |
|
| 人类可读的消息,指示有关转换的详细信息。 |
|
| 条件最后一次转换的原因。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 部署条件的类型。 |
9.1.32. .status.details
- 描述
- DeploymentDetails 捕获有关部署原因的信息。
- 类型
-
object
- 必填
-
原因
-
属性 | 类型 | 描述 |
---|---|---|
|
| 原因是与创建新部署的所有原因关联的数据 |
|
| DeploymentCause 捕获有关部署特定原因的信息。 |
|
| 如果用户手动触发此部署,则消息是用户指定的更改消息 |
9.1.33. .status.details.causes
- 描述
- 原因是与创建新部署的所有原因关联的数据
- 类型
-
数组
9.1.34. .status.details.causes[]
- 描述
- DeploymentCause 捕获有关部署特定原因的信息。
- 类型
-
object
- 必填
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| DeploymentCauseImageTrigger 代表来自镜像更改触发器的部署原因的详情 |
|
| 导致创建新部署的触发器类型 |
9.1.35. .status.details.causes[].imageTrigger
- 描述
- DeploymentCauseImageTrigger 代表来自镜像更改触发器的部署原因的详情
- 类型
-
object
- 必填
-
from
-
属性 | 类型 | 描述 |
---|---|---|
| from 是触发部署的已更改对象的引用。该字段可能具有 DockerImage、ImageStreamTag 或 ImageStreamImage 类型。 |