$ mkdir memcached-operator
基于 Java 的 Operator SDK 仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让客户提前体验即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
为了演示使用 Operator SDK 提供的工具和库设置和运行基于 Java 的 Operator 的基础知识,Operator 开发人员可以为 Memcached(一个分布式键值存储)构建一个基于 Java 的 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 构建和部署一个简单的基于 Java 的 Memcached Operator。
创建一个项目。
创建您的项目目录
$ mkdir memcached-operator
切换到项目目录
$ cd memcached-operator
使用 quarkus
插件运行 operator-sdk init
命令来初始化项目
$ operator-sdk init \
--plugins=quarkus \
--domain=example.com \
--project-name=memcached-operator
创建一个 API。
创建一个简单的 Memcached API
$ operator-sdk create api \
--plugins quarkus \
--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
请参阅 基于 Java 的 Operators 的 Operator SDK 教程,以了解有关构建基于 Java 的 Operator 的更深入的演练。