5.6. 基于 Java 的 Operator


5.6.1. 基于 Java 的 Operator 的 Operator SDK 入门

重要

基于 Java 的 Operator SDK 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

如需演示使用 Operator SDK 提供的工具和库来设置和运行基于 Java 的 Operator 的基本知识,Operator 开发人员可以为 Memcached 构建基于 Java 的 Operator 示例,一个分布式键值存储,并将它部署到集群中。

5.6.1.1. 先决条件

  • 已安装 operator SDK CLI
  • 已安装 OpenShift CLI (oc) v4.12+
  • Java v11+
  • Maven v3.6.3+
  • 使用具有 cluster-admin 权限的 oc 登录到 OpenShift Container Platform 4.12 集群
  • 要允许集群拉取镜像,推送镜像的存储库必须设置为公共的存储库,或必须配置一个镜像 pull secret

5.6.1.2. 创建并部署基于 Java 的 Operator

您可以使用 Operator SDK 为 Memcached 构建和部署简单的基于 Java 的 Operator。

流程

  1. 创建一个项目。

    1. 创建您的项目目录:

      $ mkdir memcached-operator
    2. 切换到项目所在的目录:

      $ cd memcached-operator
    3. 使用 quarkus 插件运行 operator-sdk init 命令以初始化项目:

      $ operator-sdk init \
          --plugins=quarkus \
          --domain=example.com \
          --project-name=memcached-operator
  2. 创建 API。

    创建简单的 Memcached API:

    $ operator-sdk create api \
        --plugins quarkus \
        --group cache \
        --version v1 \
        --kind Memcached
  3. 构建并推送 Operator 镜像。

    使用默认的 Makefile 目标来构建和推送 Operator。使用镜像的 pull spec 设置 IMG,该 spec 使用您可推送到的 registry:

    $ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
  4. 运行 Operator。

    1. 安装 CRD:

      $ make install
    2. 将项目部署到集群中。将 IMG 设置为您推送的镜像:

      $ make deploy IMG=<registry>/<user>/<image_name>:<tag>
  5. 创建示例自定义资源(CR)。

    1. 创建一个示例 CR:

      $ oc apply -f config/samples/cache_v1_memcached.yaml \
          -n memcached-operator-system
    2. 查看 CR 协调 Operator:

      $ oc logs deployment.apps/memcached-operator-controller-manager \
          -c manager \
          -n memcached-operator-system
  6. 删除 CR

    运行以下命令来删除 CR:

    $ oc delete -f config/samples/cache_v1_memcached.yaml -n memcached-operator-system
  7. 清理。

    运行以下命令清理在此流程中创建的资源:

    $ make undeploy

5.6.1.3. 后续步骤

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部