1.2.11.5. 现在支持 Operator API
现在,OpenShift Container Platform 4.5 中作为技术预览的 Operator API 已被支持并默认启用。使用 Operator Lifecycle Manager(OLM)安装 Operator 需要集群管理员了解多个 API 对象,包括 CatalogSource
、Subscription
、ClusterServiceVersion
和 InstallPlan
资源。这个单一 Operator API 资源是实现更简化的体验发现和管理 OpenShift Container Platform 集群中 Operator 生命周期的第一步。
现在,对于使用 Subscription
资源安装 CSV 的 Operator,新的 Operator API 会自动标记相关资源。集群管理员可以使用 CLI 与单个 API 进行交互。例如:
$ oc get operators
$ oc describe operator <operator_name>
1.2.11.5.1. 在集群进行升级前,会删除 Operator API 的技术预览版本
如果您在 OpenShift Container Platform 4.5 中启用了 Operator API 的技术预览版本,则必须在升级到 OpenShift Container Platform 4.6 前禁用它。如果不这样做,则会无法进行集群升级,因为这个功能需要Cluster Version Operator(CVO)覆盖功能。
先决条件
- 启用了技术预览 Operator API 的 OpenShift Container Platform 4.5 集群
流程
因为 Operator API 标签自动应用于 OpenShift Container Platform 4.6 中的相关资源,所以您必须删除之前手动应用的所有
operators.coreos.com/<name>
标签。您可以通过运行以下命令,检查当前为 Operator 标记了哪些资源,并查看
status.components.refs
部分:$ oc describe operator <operator_name>
例如:
$ oc describe operator etcd-test
输出示例
... Status: Components: Label Selector: Match Expressions: Key: operators.coreos.com/etcd-test Operator: Exists Refs: API Version: apiextensions.k8s.io/v1 Conditions: Last Transition Time: 2020-07-02T05:50:40Z Message: no conflicts found Reason: NoConflicts Status: True Type: NamesAccepted Last Transition Time: 2020-07-02T05:50:41Z Message: the initial names have been accepted Reason: InitialNamesAccepted Status: True Type: Established Kind: CustomResourceDefinition 1 Name: etcdclusters.etcd.database.coreos.com 2 ...
从所有相关资源中删除标签。例如:
$ oc label sub etcd operators.coreos.com/etcd-test- -n test-project $ oc label ip install-6c5mr operators.coreos.com/etcd-test- -n test-project $ oc label csv etcdoperator.v0.9.4 operators.coreos.com/etcd-test- -n test-project $ oc label crd etcdclusters.etcd.database.coreos.com operators.coreos.com/etcd-test- $ oc label crd etcdbackups.etcd.database.coreos.com operators.coreos.com/etcd-test- $ oc label crd etcdrestores.etcd.database.coreos.com operators.coreos.com/etcd-test-
删除 Operator 自定义资源定义(CRD):
$ oc delete crd operators.operators.coreos.com
从 OLM Operator 中删除
OperatorLifecycleManagerV2=true
功能门。重新启用 OLM 的 CVO 管理:
$ oc patch clusterversion version \ --type=merge -p \ '{ "spec":{ "overrides":[ { "kind":"Deployment", "name":"olm-operator", "namespace":"openshift-operator-lifecycle-manager", "unmanaged":false, "group":"apps/v1" } ] } }'
验证 Operator 资源已不再可用:
$ oc get operators
输出示例
error: the server doesn't have a resource type "operators"
现在,升级到 OpenShift Container Platform 4.6 不再会被此功能阻止。