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.4. 基于 Ansible 的 Operator
5.4.1. 基于 Ansible 的 Operator 的 Operator SDK 入门 复制链接链接已复制到粘贴板!
Operator SDK 包括生成 Operator 项目的选项,它利用现有 Ansible playbook 和模块将 Kubernetes 资源部署为统一应用程序,而无需编写任何 Go 代码。
如需演示使用 Operator SDK 提供的工具和库设置并运行基于 Ansible 的 Operator 的基本知识,Operator 开发人员可以为 Memcached、分布式键值存储构建基于 Ansible 的 Operator 示例,并将它部署到集群中。
5.4.1.1. 先决条件 复制链接链接已复制到粘贴板!
- 已安装 operator SDK CLI
-
已安装 OpenShift CLI(
oc
)v4.7+ - Ansible 版本 v2.9.0
- Ansible Runner 版本 v1.1.0+
- Ansible Runner HTTP Event Emitter plug-in 版本 v1.0.0+
- OpenShift Python client 版本 v0.11.2+
-
使用具有
cluster-admin
权限的oc
登录到 OpenShift Container Platform 4.7 集群 - 要允许集群拉取镜像,推送镜像的存储库必须设置为公共的存储库,或必须配置一个镜像 pull secret。
5.4.1.2. 创建并部署基于 Ansible 的 Operator 复制链接链接已复制到粘贴板!
您可以使用 Operator SDK 为 Memcached 构建和部署简单的基于 Ansible 的 Operator。
流程
创建一个项目。
创建您的项目目录:
mkdir memcached-operator
$ mkdir memcached-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到项目所在的目录:
cd memcached-operator
$ cd memcached-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ansible
插件运行operator-sdk init
命令以初始化项目:operator-sdk init \ --plugins=ansible \ --domain=example.com
$ operator-sdk init \ --plugins=ansible \ --domain=example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 API。
创建简单的 Memcached API:
operator-sdk create api \ --group cache \ --version v1 \ --kind Memcached \ --generate-role
$ operator-sdk create api \ --group cache \ --version v1 \ --kind Memcached \ --generate-role
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 为 API 生成 Ansible 角色。
构建并推送 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
创建示例自定义资源(CR)。
创建一个示例 CR:
oc apply -f config/samples/cache_v1_memcached.yaml \ -n memcached-operator-system
$ oc apply -f config/samples/cache_v1_memcached.yaml \ -n memcached-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 CR 协调 Operator:
oc logs deployment.apps/memcached-operator-controller-manager \ -c manager \ -n memcached-operator-system
$ oc logs deployment.apps/memcached-operator-controller-manager \ -c manager \ -n memcached-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
清理。
运行以下命令清理在此流程中创建的资源:
make undeploy
$ make undeploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.1.3. 后续步骤 复制链接链接已复制到粘贴板!
- 如需更深入地了解如何构建基于 Ansible 的 Operator,请参阅基于 Ansible 的 Operator SDK 指南。