×

Operator Framework是一个开源工具包,用于以有效、自动化和可扩展的方式管理 Kubernetes 原生应用程序(称为Operators)。Operators 利用 Kubernetes 的可扩展性来提供云服务的自动化优势,例如配置、缩放和备份与恢复,同时能够在 Kubernetes 可运行的任何地方运行。

Operators 使管理 Kubernetes 之上的复杂有状态应用程序变得容易。但是,如今编写 Operator 可能很困难,因为存在诸如使用低级 API、编写样板代码以及缺乏模块化(导致重复)等挑战。

Operator SDK 是 Operator Framework 的一个组件,它提供了一个命令行界面 (CLI) 工具,Operator 开发人员可以使用它来构建、测试和部署 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。

  • 基于 Ansible 的 Operator 项目的基本镜像

  • 基于 Helm 的 Operator 项目的基本镜像

有关 OpenShift Container Platform 中已弃用或删除的主要功能的最新列表,请参阅 OpenShift Container Platform 发行说明中的“已弃用和删除的功能”部分。

有关不受支持的社区维护的 Operator SDK 版本的信息,请参阅Operator SDK (Operator Framework)

为什么要使用 Operator SDK?

Operator SDK 简化了构建 Kubernetes 原生应用程序的过程,这可能需要深入的、特定于应用程序的操作知识。Operator SDK 不仅降低了这一门槛,而且还有助于减少许多常见管理功能(例如计量或监控)所需的样板代码量。

Operator SDK 是一个使用controller-runtime库的框架,通过提供以下功能使编写 Operators 更容易

  • 高级 API 和抽象,可以更直观地编写操作逻辑

  • 用于脚手架和代码生成的工具,可以快速引导新项目

  • 与 Operator Lifecycle Manager (OLM) 集成,以简化在集群上打包、安装和运行 Operators

  • 扩展以涵盖常见的 Operator 用例

  • 在部署了 Prometheus Operator 的集群上自动设置任何生成的基于 Go 的 Operator 中的指标

拥有 Kubernetes 基于集群(例如 OpenShift Container Platform)的集群管理员访问权限的 Operator 作者可以使用 Operator SDK CLI 开发他们自己基于 Go、Ansible、Java 或 Helm 的 Operators。Kubebuilder作为基于 Go 的 Operators 的脚手架解决方案嵌入到 Operator SDK 中,这意味着现有 Kubebuilder 项目可以使用 Operator SDK 原样使用并继续工作。

OpenShift Container Platform 4.17 支持 Operator SDK 1.36.1。

什么是 Operators?

有关基本 Operator 概念和术语的概述,请参阅了解 Operators

开发工作流程

Operator SDK 提供以下工作流程来开发新的 Operator

  1. 使用 Operator SDK 命令行界面 (CLI) 创建 Operator 项目。

  2. 通过添加自定义资源定义 (CRD) 来定义新的资源 API。

  3. 使用 Operator SDK API 指定要监视的资源。

  4. 在指定的处理程序中定义 Operator 调和逻辑,并使用 Operator SDK API 与资源交互。

  5. 使用 Operator SDK CLI 构建和生成 Operator 部署清单。

osdk workflow
图 1. Operator SDK 工作流程

在较高的层次上,使用 Operator SDK 的 Operator 处理 Operator 作者定义的处理程序中受监视资源的事件,并采取措施来协调应用程序的状态。