apiVersion: apache.org/v1alpha1
kind: Tomcat
metadata:
name: example-app
spec:
replicaCount: 2
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。
有关不受支持的社区维护的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实例并将CR与自定义资源定义(CRD)注册即可。因为它遵守RBAC,所以您可以更轻松地防止生产更改。