1.2.11.5. 现在支持 Operator API


现在,OpenShift Container Platform 4.5 中作为技术预览的 Operator API 已被支持并默认启用。使用 Operator Lifecycle Manager(OLM)安装 Operator 需要集群管理员了解多个 API 对象,包括 CatalogSourceSubscriptionClusterServiceVersionInstallPlan 资源。这个单一 Operator API 资源是实现更简化的体验发现和管理 OpenShift Container Platform 集群中 Operator 生命周期的第一步。

现在,对于使用 Subscription 资源安装 CSV 的 Operator,新的 Operator API 会自动标记相关资源。集群管理员可以使用 CLI 与单个 API 进行交互。例如:

$ oc get operators
Copy to Clipboard Toggle word wrap
$ oc describe operator <operator_name>
Copy to Clipboard Toggle word wrap

如果您在 OpenShift Container Platform 4.5 中启用了 Operator API 的技术预览版本,则必须在升级到 OpenShift Container Platform 4.6 前禁用它。如果不这样做,则会无法进行集群升级,因为这个功能需要Cluster Version Operator(CVO)覆盖功能。

先决条件

  • 启用了技术预览 Operator API 的 OpenShift Container Platform 4.5 集群

流程

  1. 因为 Operator API 标签自动应用于 OpenShift Container Platform 4.6 中的相关资源,所以您必须删除之前手动应用的所有 operators.coreos.com/<name> 标签。

    1. 您可以通过运行以下命令,检查当前为 Operator 标记了哪些资源,并查看 status.components.refs 部分:

      $ oc describe operator <operator_name>
      Copy to Clipboard Toggle word wrap

      例如:

      $ oc describe operator etcd-test
      Copy to Clipboard Toggle word wrap

      输出示例

      ...
      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
      
      ...
      Copy to Clipboard Toggle word wrap

      1
      资源类型。
      2
      资源名称。
    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-
      Copy to Clipboard Toggle word wrap
  2. 删除 Operator 自定义资源定义(CRD):

    $ oc delete crd operators.operators.coreos.com
    Copy to Clipboard Toggle word wrap
  3. 从 OLM Operator 中删除 OperatorLifecycleManagerV2=true 功能门。

    1. 编辑 OLM Operator 的 Deployment 对象:

      $ oc -n openshift-operator-lifecycle-manager \
          edit deployment olm-operator
      Copy to Clipboard Toggle word wrap
    2. Deployment 对象的 args 部分中删除以下标记:

      ...
          spec:
            containers:
            - args:
      ...
              - --feature-gates 
      1
      
              - OperatorLifecycleManagerV2=true 
      2
      Copy to Clipboard Toggle word wrap
      1 2
      删除这些标记。
    3. 保存您的更改。
  4. 重新启用 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"
                 }
              ]
           }
        }'
    Copy to Clipboard Toggle word wrap
  5. 验证 Operator 资源已不再可用:

    $ oc get operators
    Copy to Clipboard Toggle word wrap

    输出示例

    error: the server doesn't have a resource type "operators"
    Copy to Clipboard Toggle word wrap

现在,升级到 OpenShift Container Platform 4.6 不再会被此功能阻止。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat