This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.5.2.5. 创建自定义资源
安装 Operator 后,您可以通过创建一个由 Operator 在集群中提供的自定义资源(CR)来测试它。
先决条件
-
Nginx Operator 示例,它提供了
Nginx
CR,在集群中安装
流程
切换到安装 Operator 的命名空间。例如,如果使用
make deploy
命令部署 Operator:oc project nginx-operator-system
$ oc project nginx-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
config/samples/demo_v1_nginx.yaml
中的Nginx
CR 清单示例,使其包含以下规格:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nginx 服务帐户需要特权访问权限才能在 OpenShift Container Platform 中运行。将以下安全性上下文约束 (SCC) 添加到
nginx-sample
pod 的服务帐户中:oc adm policy add-scc-to-user \ anyuid system:serviceaccount:nginx-operator-system:nginx-sample
$ oc adm policy add-scc-to-user \ anyuid system:serviceaccount:nginx-operator-system:nginx-sample
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 CR:
oc apply -f config/samples/demo_v1_nginx.yaml
$ oc apply -f config/samples/demo_v1_nginx.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保
Nginx
Operator 为示例 CR 创建部署,其大小正确:oc get deployments
$ oc get deployments
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE nginx-operator-controller-manager 1/1 1 1 8m nginx-sample 3/3 3 3 1m
NAME READY UP-TO-DATE AVAILABLE AGE nginx-operator-controller-manager 1/1 1 1 8m nginx-sample 3/3 3 3 1m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 pod 和 CR 状态,以确认其状态是否使用 Nginx pod 名称更新。
检查 pod:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE nginx-sample-6fd7c98d8-7dqdr 1/1 Running 0 1m nginx-sample-6fd7c98d8-g5k7v 1/1 Running 0 1m nginx-sample-6fd7c98d8-m7vn7 1/1 Running 0 1m
NAME READY STATUS RESTARTS AGE nginx-sample-6fd7c98d8-7dqdr 1/1 Running 0 1m nginx-sample-6fd7c98d8-g5k7v 1/1 Running 0 1m nginx-sample-6fd7c98d8-m7vn7 1/1 Running 0 1m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 CR 状态:
oc get nginx/nginx-sample -o yaml
$ oc get nginx/nginx-sample -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更新部署大小。
更新
config/samples/demo_v1_nginx.yaml
文件,将Nginx
CR 中的spec.size
字段从3
改为5
:oc patch nginx nginx-sample \ -p '{"spec":{"replicaCount": 5}}' \ --type=merge
$ oc patch nginx nginx-sample \ -p '{"spec":{"replicaCount": 5}}' \ --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认 Operator 已更改部署大小:
oc get deployments
$ oc get deployments
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE nginx-operator-controller-manager 1/1 1 1 10m nginx-sample 5/5 5 5 3m
NAME READY UP-TO-DATE AVAILABLE AGE nginx-operator-controller-manager 1/1 1 1 10m nginx-sample 5/5 5 5 3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
清理本教程中创建的资源。
如果使用
make deploy
命令来测试 Operator,请运行以下命令:make undeploy
$ make undeploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用
operator-sdk run bundle
命令来测试 Operator,请运行以下命令:operator-sdk cleanup <project_name>
$ operator-sdk cleanup <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow