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. 基于 Helm 的 Operator
5.5.1. 开始使用基于 Helm 的 Operator 的 Operator SDK 复制链接链接已复制到粘贴板!
Operator SDK 包括生成一个 Operator 项目的选项,它利用现有 Helm chart 将 Kubernetes 资源部署为统一应用程序,而无需编写任何 Go 代码。
如需演示使用 Operator SDK 提供的工具和库来设置并运行基于 Helm 的 Operator 的基本知识,Operator 开发人员可以为 Nginx 构建一个基于 Helm 的 Operator 示例,并将它部署到集群中。
5.5.1.1. 先决条件 复制链接链接已复制到粘贴板!
- 已安装 operator SDK CLI
-
已安装 OpenShift CLI(
oc
)v4.7+ -
使用具有
cluster-admin
权限的oc
登录到 OpenShift Container Platform 4.7 集群 - 要允许集群拉取镜像,推送镜像的存储库必须设置为公共的存储库,或必须配置一个镜像 pull secret。
5.5.1.2. 创建并部署基于 Helm 的 Operator 复制链接链接已复制到粘贴板!
您可以使用 Operator SDK 为 Nginx 构建和部署简单基于 Helm 的 Operator。
流程
创建一个项目。
创建您的项目目录:
mkdir nginx-operator
$ mkdir nginx-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到项目所在的目录:
cd nginx-operator
$ cd nginx-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
helm
插件运行operator-sdk init
命令以初始化项目:operator-sdk init \ --plugins=helm
$ operator-sdk init \ --plugins=helm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 API。
创建简单的 Nginx API:
operator-sdk create api \ --group demo \ --version v1 \ --kind Nginx
$ operator-sdk create api \ --group demo \ --version v1 \ --kind Nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此 API 使用
helm create
命令的内置 Helm Chart 网卡。构建并推送 Operator 镜像。
使用默认的
Makefile
目标来构建和推送 Operator。使用镜像的 pull spec 设置IMG
,该 spec 使用您可推送到的 registry:make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 Operator。
安装 CRD:
make install
$ make install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将项目部署到集群中。将
IMG
设置为您推送的镜像:make deploy IMG=<registry>/<user>/<image_name>:<tag>
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
添加安全性上下文约束(SCC)。
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)。
创建一个示例 CR:
oc apply -f config/samples/demo_v1_nginx.yaml \ -n nginx-operator-system
$ oc apply -f config/samples/demo_v1_nginx.yaml \ -n nginx-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 CR 协调 Operator:
oc logs deployment.apps/nginx-operator-controller-manager \ -c manager \ -n nginx-operator-system
$ oc logs deployment.apps/nginx-operator-controller-manager \ -c manager \ -n nginx-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
清理。
运行以下命令清理在此流程中创建的资源:
make undeploy
$ make undeploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.1.3. 后续步骤 复制链接链接已复制到粘贴板!
- 如需更深入地了解如何构建基于 Helm 的 Operator,请参阅基于 Helm 的 Operator SDK 指南。