6.4.4. Custom 策略
自定义(Custom)策略允许您提供自己的部署行为。
Custom 策略定义示例
kind: DeploymentConfig
apiVersion: apps.openshift.io/v1
metadata:
name: example-dc
# ...
spec:
# ...
strategy:
type: Custom
customParams:
image: organization/strategy
command: [ "command", "arg1" ]
environment:
- name: ENV_1
value: VALUE_1
在上例中,organization/strategy 容器镜像提供部署行为。可选的 command 数组覆盖镜像的 Dockerfile 中指定的任何 CMD 指令。提供的可选环境变量添加到策略过程的执行环境中。
另外,Red Hat OpenShift Service on AWS 为部署过程提供以下环境变量:
| 环境变量 | 描述 |
|---|---|
|
| 新部署的名称,即复制控制器。 |
|
| 新部署的命名空间。 |
新部署的副本数最初为零。该策略负责使新部署积极使用最能满足用户需求的逻辑。
另外,也可使用 customParams 对象将自定义部署逻辑注入现有的部署策略中。提供自定义 shell 脚本逻辑并调用 openshift-deploy 二进制文件。用户不必提供自定义的部署器容器镜像;默认的 Red Hat OpenShift Service on AWS deployer 镜像会被使用:
kind: DeploymentConfig
apiVersion: apps.openshift.io/v1
metadata:
name: example-dc
# ...
spec:
# ...
strategy:
type: Rolling
customParams:
command:
- /bin/sh
- -c
- |
set -e
openshift-deploy --until=50%
echo Halfway there
openshift-deploy
echo Complete
这会产生以下部署:
Started deployment #2
--> Scaling up custom-deployment-2 from 0 to 2, scaling down custom-deployment-1 from 2 to 0 (keep 2 pods available, don't exceed 3 pods)
Scaling custom-deployment-2 up to 1
--> Reached 50% (currently 50%)
Halfway there
--> Scaling up custom-deployment-2 from 1 to 2, scaling down custom-deployment-1 from 2 to 0 (keep 2 pods available, don't exceed 3 pods)
Scaling custom-deployment-1 down to 1
Scaling custom-deployment-2 up to 2
Scaling custom-deployment-1 down to 0
--> Success
Complete
如果自定义部署策略过程需要访问 Red Hat OpenShift Service on AWS API 或 Kubernetes API,执行该策略的容器可以使用容器中的服务帐户令牌进行身份验证。
6.4.4.1. 使用 Developer 视角编辑部署 复制链接链接已复制到粘贴板!
您可以使用 Developer 视角编辑部署的部署策略、镜像设置、环境变量和高级选项。
先决条件
- 处于 web 控制台的 Developer 视角。
- 您已创建了应用程序。
流程
- 导航到 Topology 视图。
- 点您的应用程序查看 Details 面板。
- 在 Actions 下拉菜单中,选择 Edit Deployment 以查看 Edit Deployment 页面。
您可以为部署编辑以下高级选项 :
可选:您可以通过点 Pause rollouts 暂停推出部署,然后选择 Pause rollouts for this deployment 复选框。
通过暂停推出部署,您可以在不触发推出部署的情况下对应用程序进行更改。您可以随时恢复推出部署。
- 可选:通过修改 Replicas 的数量,点 Scaling 以更改您的镜像实例数量。
- 点击 Save。