9.3.5. 生命周期 Hook
Recreate 和 Rolling 策略支持生命周期 hook,它允许在策略的预定义点将行为注入到部署过程中:
以下是 pre
生命周期 hook 示例:
pre: failurePolicy: Abort execNewPod: {}
pre:
failurePolicy: Abort
execNewPod: {}
- 1
execNewPod
是基于 pod 的生命周期 hook。
每个 hook 都有 failurePolicy
,定义在遇到 hook 失败时策略应执行的操作:
| 如果 hook 失败,部署过程将被视为失败。 |
| 应重试 hook 执行过程,直到成功为止。 |
| 所有 hook 失败都应忽略,部署应继续进行。 |
Hook 具有特定类型的字段,用于描述如何执行 Hook。目前,pod-based hooks 是唯一受支持的 hook 类型,通过 execNewPod
字段指定。
9.3.5.1. 基于 Pod 的生命周期 Hook 复制链接链接已复制到粘贴板!
基于 Pod 的生命周期 hook 在从部署配置中模板派生的新 pod 中执行 hook 代码。
以下简化的部署配置示例使用了 Rolling 策略。为简明起见,省略了触发器和其他一些次要的细节:
在本例中,将使用 helloworld 容器中的 openshift/origin-ruby-sample 镜像在新 pod 中执行 pre
hook。hook pod 将具有以下属性:
-
hook 命令将是
/usr/bin/command arg1 arg2
。 -
hook 容器将具有
CUSTOM_VAR1=custom_value1
环境变量。 -
hook 失败策略是
Abort
,这意味着如果 hook 失败,部署过程将失败。 -
hook pod 将从部署配置 pod 中继承
data
卷。