×

Red Hat支持的Operator SDK CLI工具版本(包括相关的脚手架和Operator项目的测试工具)已弃用,并计划在未来版本的Red Hat OpenShift Service on AWS中移除。Red Hat将在当前发布生命周期内为此功能提供错误修复和支持,但此功能将不再接收增强功能,并将从未来的Red Hat OpenShift Service on AWS版本中移除。

不建议使用Red Hat支持的Operator SDK版本创建新的Operator项目。拥有现有Operator项目的Operator作者可以使用Red Hat OpenShift Service on AWS发布的Operator SDK CLI工具版本来维护其项目并创建针对更新版本的Red Hat OpenShift Service on AWS的Operator发行版。

以下与Operator项目相关的基础镜像被弃用。这些基础镜像的运行时功能和配置API仍然支持错误修复和解决CVE。

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

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

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

Helm图表

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实例并将CR与自定义资源定义(CRD)注册即可。因为它遵守RBAC,所以您可以更轻松地防止生产更改。