搜索

1.2.11.5. 现在支持 Operator API

download PDF

现在,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
$ 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 集群

流程

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

    1. 您可以通过运行以下命令,检查当前为 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
      ...

      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-
  2. 删除 Operator 自定义资源定义(CRD):

    $ oc delete crd operators.operators.coreos.com
  3. 从 OLM Operator 中删除 OperatorLifecycleManagerV2=true 功能门。

    1. 编辑 OLM Operator 的 Deployment 对象:

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

      ...
          spec:
            containers:
            - args:
      ...
              - --feature-gates 1
              - OperatorLifecycleManagerV2=true 2
      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"
                 }
              ]
           }
        }'
  5. 验证 Operator 资源已不再可用:

    $ oc get operators

    输出示例

    error: the server doesn't have a resource type "operators"

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.