第 9 章 DeploymentConfig [apps.openshift.io/v1]


描述

Deployment Configs 定义 pod 的模板,并管理新镜像或配置更改。单一部署配置通常与单个微服务类似。可以支持许多不同的部署模式,包括完整重启、可自定义滚动更新和完全自定义行为,以及预部署 hook。每个单独的部署都以复制控制器表示。

当部署配置或更改镜像流中的标签时,部署会被"触发"。可以禁用触发器以允许手动控制部署。"strategy"决定了如何执行部署,可以随时更改。当任何方法触发新部署时,latestVersion 字段会被更新。

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

类型
object
必填
  • spec

9.1. 规格

属性类型描述

apiVersion

字符串

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

 

spec

object

DeploymentConfigSpec 代表部署的所需状态。

status

object

DeploymentConfigStatus 代表当前的部署状态。

9.1.1. .spec

描述
DeploymentConfigSpec 代表部署的所需状态。
类型
object
属性类型描述

minReadySeconds

整数

MinReadySeconds 是新创建的 pod 应该在其容器崩溃的情况下就绪的最少秒数,以便它被视为可用。默认为 0 (pod 一旦就绪就会被视为可用)

paused

布尔值

paused 表示部署配置已暂停,不会出现由其他触发器导致的模板更改或更改。

replicas

整数

replicas 是所需副本数。

revisionHistoryLimit

整数

RevisionHistoryLimit 是要保留的旧 ReplicationController 的数量,以允许回滚。此字段是一个指针,允许在显式零和未指定的间区分。默认值为 10。(这只适用于通过新组 API 资源创建的 DeploymentConfig,而不是传统资源。)

selector

对象(字符串)

selector 是 pod 上的标签查询,它应当与 Replicas 计数匹配。

策略

object

DeploymentStrategy 描述了如何执行部署。

模板

PodTemplateSpec

template 是描述在检测到副本不足时将创建的 pod 的对象。

test

布尔值

测试可确保此部署配置具有零个副本,除了部署运行时除外。这允许将部署配置用作持续部署测试 - 在镜像上触发,运行部署,然后成功或失败。后策略 hook 和 after 操作可用于将成功部署与操作集成。

触发器

数组

触发器决定对 DeploymentConfig 的更新如何生成新部署。如果没有定义触发器,新的部署只能因为明确的客户端使用新的 LatestVersion 更新到 DeploymentConfig 的结果。如果为 null,则默认为使配置更改触发器。

triggers[]

object

DeploymentTriggerPolicy 描述了生成新部署的单一触发器的策略。

9.1.2. .spec.strategy

描述
DeploymentStrategy 描述了如何执行部署。
类型
object
属性类型描述

activeDeadlineSeconds

整数

activeDeadlineSeconds 是此部署配置的部署器 pod 在系统主动尝试终止它们前可能在节点上处于活跃状态的持续时间(以秒为单位)。

annotations

对象(字符串)

annotations 是一组键、值对,添加到自定义部署器和生命周期前/post hook Pod 中。

customParams

object

CustomDeploymentStrategyParams 是 Custom 部署策略的输入。

labels

对象(字符串)

标签是一组键,即添加到自定义部署器和生命周期前/post hook Pod 的值对。

recreateParams

object

RecreateDeploymentStrategyParams 是 Recreate 部署策略的输入。

resources

ResourceRequirements

资源包含执行部署和任何 hook 的资源要求。

rollingParams

object

RollingDeploymentStrategyParams 是 Rolling 部署策略的输入。

type

string

type 是部署策略的名称。

9.1.3. .spec.strategy.customParams

描述
CustomDeploymentStrategyParams 是 Custom 部署策略的输入。
类型
object
属性类型描述

命令

数组(字符串)

命令是可选的,并覆盖容器镜像中的 CMD。

environment

数组(EnvVar)

环境包含将提供给镜像的容器的环境。

image

string

image 指定可执行部署的容器镜像。

9.1.4. .spec.strategy.recreateParams

描述
RecreateDeploymentStrategyParams 是 Recreate 部署策略的输入。
类型
object
属性类型描述

mid

object

LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。

POST

object

LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。

pre

object

LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。

timeoutSeconds

整数

timeoutSeconds 是放弃前等待更新的时间。如果值为 nil,则使用默认值。

9.1.5. .spec.strategy.recreateParams.mid

描述
LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
类型
object
必填
  • failurePolicy
属性类型描述

execNewPod

object

ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。

failurePolicy

string

failurePolicy 指定在 hook 失败时要执行的操作。

tagImages

数组

TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。

tagImages[]

object

TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。

9.1.6. .spec.strategy.recreateParams.mid.execNewPod

描述
ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
类型
object
必填
  • 命令
  • containerName
属性类型描述

命令

数组(字符串)

command 是 action 命令及其参数。

containerName

string

containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。

env

数组(EnvVar)

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

string

containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。

ObjectReference

to 是将容器镜像设置为的目标 ImageStreamTag。

9.1.9. .spec.strategy.recreateParams.post

描述
LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
类型
object
必填
  • failurePolicy
属性类型描述

execNewPod

object

ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。

failurePolicy

string

failurePolicy 指定在 hook 失败时要执行的操作。

tagImages

数组

TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。

tagImages[]

object

TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。

9.1.10. .spec.strategy.recreateParams.post.execNewPod

描述
ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
类型
object
必填
  • 命令
  • containerName
属性类型描述

命令

数组(字符串)

command 是 action 命令及其参数。

containerName

string

containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。

env

数组(EnvVar)

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

string

containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。

ObjectReference

to 是将容器镜像设置为的目标 ImageStreamTag。

9.1.13. .spec.strategy.recreateParams.pre

描述
LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
类型
object
必填
  • failurePolicy
属性类型描述

execNewPod

object

ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。

failurePolicy

string

failurePolicy 指定在 hook 失败时要执行的操作。

tagImages

数组

TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。

tagImages[]

object

TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。

9.1.14. .spec.strategy.recreateParams.pre.execNewPod

描述
ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
类型
object
必填
  • 命令
  • containerName
属性类型描述

命令

数组(字符串)

command 是 action 命令及其参数。

containerName

string

containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。

env

数组(EnvVar)

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

string

containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。

ObjectReference

to 是将容器镜像设置为的目标 ImageStreamTag。

9.1.17. .spec.strategy.rollingParams

描述
RollingDeploymentStrategyParams 是 Rolling 部署策略的输入。
类型
object
属性类型描述

intervalSeconds

整数

intervalSeconds 是更新后轮询部署状态之间等待的时间。如果值为 nil,则使用默认值。

maxSurge

IntOrString

maxSurge 是可在原始 pod 数量之上调度的最大 pod 数量。值可以是绝对数字(例如 5),也可以是更新开始时 pod 总量的百分比(例如: 10%)。绝对数量从百分比计算。

如果 MaxUnavailable 为 0。默认情况下使用 25%。

示例:当将其设置为 30% 时,当滚动更新启动时,新的 RC 可立即扩展 30%。旧 pod 终止后,可以进一步扩展新的 RC,确保更新期间任何时间运行的 pod 总数最多为原始 pod 的 130%。

maxUnavailable

IntOrString

maxUnavailable 是更新期间不可用的 pod 的最大数量。值可以是绝对数字(例如 5),也可以是开始更新时 pod 总量的百分比(例如: 10%)。绝对数量从百分比计算(通过向下舍入)。

如果 MaxSurge 为 0,则这不能为 0。默认情况下使用 25%。

示例:当将其设置为 30% 时,可以在滚动更新启动时立即由 30% 缩减旧 RC。新 pod 就绪后,可以进一步扩展旧的 RC,然后扩展新的 RC,确保更新过程中至少有 70% 的原始 pod 数量。

POST

object

LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。

pre

object

LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。

timeoutSeconds

整数

timeoutSeconds 是放弃前等待更新的时间。如果值为 nil,则使用默认值。

updatePeriodSeconds

整数

updatePeriodSeconds 是各个 pod 更新之间等待的时间。如果值为 nil,则使用默认值。

9.1.18. .spec.strategy.rollingParams.post

描述
LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
类型
object
必填
  • failurePolicy
属性类型描述

execNewPod

object

ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。

failurePolicy

string

failurePolicy 指定在 hook 失败时要执行的操作。

tagImages

数组

TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。

tagImages[]

object

TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。

9.1.19. .spec.strategy.rollingParams.post.execNewPod

描述
ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
类型
object
必填
  • 命令
  • containerName
属性类型描述

命令

数组(字符串)

command 是 action 命令及其参数。

containerName

string

containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。

env

数组(EnvVar)

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

string

containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。

ObjectReference

to 是将容器镜像设置为的目标 ImageStreamTag。

9.1.22. .spec.strategy.rollingParams.pre

描述
LifecycleHook 定义特定的部署生命周期操作。可以随时指定一种类型的操作。
类型
object
必填
  • failurePolicy
属性类型描述

execNewPod

object

ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。

failurePolicy

string

failurePolicy 指定在 hook 失败时要执行的操作。

tagImages

数组

TagImages 指示部署器将容器中引用的当前镜像标记为镜像流标签。

tagImages[]

object

TagImageHook 是一个将特定容器中的镜像标记到 ImageStreamTag 的请求。

9.1.23. .spec.strategy.rollingParams.pre.execNewPod

描述
ExecNewPodHook 是一个 hook 实现,它基于指定的容器在新 pod 中运行命令,它被认为是部署模板的一部分。
类型
object
必填
  • 命令
  • containerName
属性类型描述

命令

数组(字符串)

command 是 action 命令及其参数。

containerName

string

containerName 是部署 pod 模板中的容器名称,其容器镜像将用于 hook pod 的容器。

env

数组(EnvVar)

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

string

containerName 是部署配置中的容器的名称,其镜像值将用作标签的来源。如果只有一个容器,这个值将默认为该容器的名称。

ObjectReference

to 是将容器镜像设置为的目标 ImageStreamTag。

9.1.26. .spec.triggers

描述
触发器决定对 DeploymentConfig 的更新如何生成新部署。如果没有定义触发器,新的部署只能因为明确的客户端使用新的 LatestVersion 更新到 DeploymentConfig 的结果。如果为 null,则默认为使配置更改触发器。
类型
数组

9.1.27. .spec.triggers[]

描述
DeploymentTriggerPolicy 描述了生成新部署的单一触发器的策略。
类型
object
属性类型描述

imageChangeParams

object

DeploymentTriggerImageChangeParams 代表 ImageChange 触发器的参数。

type

string

触发器的类型

9.1.28. .spec.triggers[].imageChangeParams

描述
DeploymentTriggerImageChangeParams 代表 ImageChange 触发器的参数。
类型
object
必填
  • from
属性类型描述

自动

布尔值

自动意味着新标签值的检测应该会导致 pod 模板中的镜像更新。

containerNames

数组(字符串)

containerNames 用于限制 pod 中指定容器名称集的标签更新。如果多个触发器指向同一容器,则生成的行为未定义。将来的 API 版本会导致这个验证错误。如果 ContainerNames 没有指向有效的容器,则触发器将被忽略。将来的 API 版本会导致这个验证错误。

from

ObjectReference

from 是对镜像流标签的引用,以监视更改。from.Name 是唯一需要的子字段 - 如果 From.Namespace 为空白,则使用当前部署触发器的命名空间。

lastTriggeredImage

string

lastTriggeredImage 是要触发的最后一个镜像。

9.1.29. .status

描述
DeploymentConfigStatus 代表当前的部署状态。
类型
object
必填
  • latestVersion
  • observedGeneration
  • replicas
  • updatedReplicas
  • availableReplicas
  • unavailableReplicas
属性类型描述

availableReplicas

整数

availableReplicas 是此部署配置目标的可用 pod 的总数。

conditions

数组

条件代表部署配置当前状态的最新可用影响。

conditions[]

object

DeploymentCondition 描述了部署配置在特定时间点上的状态。

详情

object

DeploymentDetails 捕获有关部署原因的信息。

latestVersion

整数

LatestVersion 用于确定与部署配置关联的当前部署是否不同步。

observedGeneration

整数

observedGeneration 是部署配置控制器观察到的最新生成。

readyReplicas

整数

此部署目标就绪 pod 的总数。

replicas

整数

replicas 是此部署配置目标的 pod 总数。

unavailableReplicas

整数

UnavailableReplicas 是此部署配置的目标不可用 pod 的总数。

updatedReplicas

整数

UpdatedReplicas 是此部署配置的目标非确定的 pod 总数,该配置具有所需模板 spec。

9.1.30. .status.conditions

描述
条件代表部署配置当前状态的最新可用影响。
类型
array

9.1.31. .status.conditions[]

描述
DeploymentCondition 描述了部署配置在特定时间点上的状态。
类型
object
必填
  • type
  • status
属性类型描述

lastTransitionTime

时间

条件从一个状态转换到另一个状态最后一次的时间。

lastUpdateTime

时间

最后一次更新此条件的时间。

message

字符串

人类可读的消息,指示有关转换的详细信息。

reason

字符串

条件最后一次转换的原因。

status

字符串

条件的状态,True, False, Unknown 之一。

type

string

部署条件的类型。

9.1.32. .status.details

描述
DeploymentDetails 捕获有关部署原因的信息。
类型
object
必填
  • 原因
属性类型描述

原因

数组

原因是与创建新部署的所有原因关联的数据

causes[]

object

DeploymentCause 捕获有关部署特定原因的信息。

message

string

如果用户手动触发此部署,则消息是用户指定的更改消息

9.1.33. .status.details.causes

描述
原因是与创建新部署的所有原因关联的数据
类型
数组

9.1.34. .status.details.causes[]

描述
DeploymentCause 捕获有关部署特定原因的信息。
类型
object
必填
  • type
属性类型描述

imageTrigger

object

DeploymentCauseImageTrigger 代表来自镜像更改触发器的部署原因的详情

type

string

导致创建新部署的触发器类型

9.1.35. .status.details.causes[].imageTrigger

描述
DeploymentCauseImageTrigger 代表来自镜像更改触发器的部署原因的详情
类型
object
必填
  • from
属性类型描述

from

ObjectReference

from 是触发部署的已更改对象的引用。该字段可能具有 DockerImage、ImageStreamTag 或 ImageStreamImage 类型。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.