apiVersion: apache.org/v1alpha1
kind: Tomcat
metadata:
name: example-app
spec:
replicaCount: 2
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 生成 Operator 项目的选项之一包括利用现有的 Helm 图表将 Kubernetes 资源部署为统一的应用程序,而无需编写任何 Go 代码。此类基于 Helm 的 Operator 旨在擅长于需要很少逻辑即可部署的无状态应用程序,因为应将更改应用于作为图表一部分生成的 Kubernetes 对象。这听起来可能有限制,但正如 Kubernetes 社区构建的 Helm 图表激增所显示的那样,对于令人惊讶的大量用例来说已经足够了。
Operator 的主要功能是从表示应用程序实例的自定义对象中读取,并使其所需状态与正在运行的状态匹配。对于基于 Helm 的 Operator,对象的 spec
字段是配置选项的列表,这些选项通常在 Helm values.yaml
文件中描述。您可以通过自定义资源 (CR) 来表达这些值,而不是使用 Helm CLI(例如,helm install -f values.yaml
)使用标志来设置这些值。作为本机 Kubernetes 对象,CR 使得可以对其应用 RBAC 的好处以及审计跟踪。
名为 Tomcat
的简单 CR 示例
apiVersion: apache.org/v1alpha1
kind: Tomcat
metadata:
name: example-app
spec:
replicaCount: 2
在这种情况下,replicaCount
值为 2
,它被传播到图表模板中,其中使用了以下内容
{{ .Values.replicaCount }}
构建和部署 Operator 后,您可以通过创建 CR 的新实例来部署应用程序的新实例,或者使用oc
命令列出所有环境中运行的不同实例。
$ oc get Tomcats --all-namespaces
无需使用 Helm CLI 或安装 Tiller;基于 Helm 的 Operator 从 Helm 项目导入代码。您只需运行 Operator 实例并使用自定义资源定义 (CRD) 注册 CR 即可。因为它遵循 RBAC,所以您可以更轻松地防止生产环境发生更改。