$ mkdir memcached-operator
为了演示使用Operator SDK提供的工具和库设置和运行基于Go的Operator的基础知识,Operator开发者可以为Memcached(一个分布式键值存储)构建一个基于Go的Operator示例,并将其部署到集群。
Red Hat支持的Operator SDK CLI工具版本(包括与Operator项目相关的脚手架和测试工具)已弃用,并计划在未来版本的OpenShift Container Platform中删除。Red Hat将在当前发布生命周期内为此功能提供错误修复和支持,但此功能将不再接收增强功能,并将从未来的OpenShift Container Platform版本中删除。 不建议使用Red Hat支持的Operator SDK版本创建新的Operator项目。拥有现有Operator项目的Operator作者可以使用OpenShift Container Platform 4.17发布的Operator SDK CLI工具版本来维护其项目并创建针对更新版本的OpenShift Container Platform的Operator版本。 以下与Operator项目相关的基础镜像 *未* 弃用。这些基础镜像的运行时功能和配置API仍然支持错误修复和解决CVE。
有关OpenShift Container Platform中已弃用或删除的主要功能的最新列表,请参阅OpenShift Container Platform发行说明中的 *已弃用和删除的功能* 部分。 有关不受支持的社区维护版本的Operator SDK的信息,请参阅 Operator SDK (Operator Framework)。 |
已安装Operator SDK CLI
已安装OpenShift CLI (oc
) 4.17+
Go 1.21+
使用具有cluster-admin
权限的帐户使用oc
登录到OpenShift Container Platform 4.17集群
为了允许集群拉取镜像,您推送镜像的仓库必须设置为公共仓库,或者您必须配置镜像拉取密钥
您可以使用Operator SDK构建和部署一个简单的基于Go的Memcached Operator。
创建一个项目。
创建您的项目目录
$ mkdir memcached-operator
切换到项目目录
$ cd memcached-operator
运行operator-sdk init
命令初始化项目
$ operator-sdk init \
--domain=example.com \
--repo=github.com/example-inc/memcached-operator
该命令默认使用Go插件。
创建一个API。
创建一个简单的Memcached API
$ operator-sdk create api \
--resource=true \
--controller=true \
--group cache \
--version v1 \
--kind Memcached
构建并推送Operator镜像。
使用默认的Makefile
目标构建和推送您的Operator。使用您可以推送到的注册表设置包含拉取规范的IMG
镜像。
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
运行Operator。
安装CRD
$ make install
将项目部署到集群。将IMG
设置为您推送的镜像
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
创建示例自定义资源 (CR)。
创建一个示例 CR
$ oc apply -f config/samples/cache_v1_memcached.yaml \
-n memcached-operator-system
观察 CR 如何协调 Operator
$ oc logs deployment.apps/memcached-operator-controller-manager \
-c manager \
-n memcached-operator-system
删除 CR。
运行以下命令删除 CR
$ oc delete -f config/samples/cache_v1_memcached.yaml -n memcached-operator-system
清理。
运行以下命令清理在此过程中创建的资源
$ make undeploy
查看 基于 Go 的 Operator 的 Operator SDK 教程,以获取有关构建基于 Go 的 Operator 的更深入演练。