5.6. 基于 Java 的 Operator
5.6.1. 基于 Java 的 Operator 的 Operator SDK 入门 复制链接链接已复制到粘贴板!
基于 Java 的 Operator SDK 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
如需演示使用 Operator SDK 提供的工具和库来设置和运行基于 Java 的 Operator 的基本知识,Operator 开发人员可以为 Memcached 构建基于 Java 的 Operator 示例,一个分布式键值存储,并将它部署到集群中。
红帽支持的 Operator SDK CLI 工具版本,包括 Operator 项目的相关构建和测试工具已被弃用,计划在以后的 OpenShift Container Platform 发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序错误修复和支持,但此功能将不再获得改进,并将在以后的 OpenShift Container Platform 版本中删除。
对于创建新 Operator 项目,不建议使用红帽支持的 Operator SDK 版本。现有 Operator 项目的 Operator 作者可以使用 OpenShift Container Platform 4.17 发布的 Operator SDK CLI 工具版本来维护其项目,并创建针对较新版本的 OpenShift Container Platform 的 Operator 发行版本。
以下与 Operator 项目相关的基础镜像 没有被弃用。这些基础镜像的运行时功能和配置 API 仍然会有程序错误修复和并提供对相关 CVE 的解决方案。
- 基于 Ansible 的 Operator 项目的基础镜像
- 基于 Helm 的 Operator 项目的基础镜像
有关 OpenShift Container Platform 中已弃用或删除的主要功能的最新列表,请参阅 OpenShift Container Platform 发行注记中已弃用和删除的功能部分。
有关 Operator SDK 不支持的、社区维护版本的信息,请参阅 Operator SDK (Operator Framework)。
5.6.1.1. 先决条件 复制链接链接已复制到粘贴板!
5.6.1.2. 创建并部署基于 Java 的 Operator 复制链接链接已复制到粘贴板!
您可以使用 Operator SDK 为 Memcached 构建和部署简单的基于 Java 的 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。使用镜像的 pull spec 设置IMG,该 spec 使用您可推送到的 registry:$ 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
5.6.1.3. 后续步骤 复制链接链接已复制到粘贴板!
- 如需更深入地了解如何构建基于 Java 的 Operator,请参阅基于 Java 的 Operator SDK 指南。