IBM Cloud Docs
如何删除 Operator Lifecycle Manager 组件?

如何删除 Operator Lifecycle Manager 组件?

未在运行 Kubernetes V 1.23 或更高版本的集群上安装或管理 Operator Lifecycle Manager (OLM)。 但是,从 1.22 升级到 1.23 或更高版本的集群可能仍安装了 OLM 组件。 如果未在集群上使用 OLM 组件,请遵循以下步骤将其移除。

如果要继续在集群中使用 OLM 组件,或者要在运行 V 1.23 或更高版本的集群上安装并运行 OLM,那么必须自行管理更新。 请参阅 开放式源代码 OLM 文档

  1. 确认已安装 OLM 操作程序。

    kubectl get deploy -n ibm-system olm-operator
    

    示例输出

    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    olm-operator                           1/1     1            1           6mo
    
  2. 检查是否正在使用 Istio 附加组件的 1.4 到 1.9 版本。 Istio 版本 1.4 到 1.9 不受支持,请使用 OLM。 如果使用这些版本,请 升级到不使用 OLM 操作程序的受支持版本的 Istio 附加组件。 升级到受支持的 Istio 版本后,可以删除 OLM 操作程序。

    ibmcloud ks cluster addons -c CLUSTER
    

    在此示例输出中,OLM 仍由 Istio 附加组件版本 1.5使用。 升级附加组件,然后继续执行这些步骤。

    NAME            Version     Health State   Health Status
    istio           1.5         normal         Addon Ready
    
  3. 通过列出集群服务版本,检查是否有任何正在使用的操作程序是通过 OLM 部署的。

    kubectl get clusterserviceversions -A
    

    通过 OLM部署的操作程序的示例输出。

    NAMESPACE                              NAME            DISPLAY          VERSION   REPLACES   PHASE
    kubernetes-operator-lifecycle-manager   packageserver   Package Server   0.19.0               Succeeded
    

    如果输出中列出了 clusterserviceversions,那么您仍在使用通过 OLM管理的操作程序。 您可以继续使用 OLM,但负责管理更新。 以下步骤假定您不再使用 OLM 并提供清除指示信息,如果您仍在使用 OLM,请勿继续。

  4. 如果步骤 3 的输出中没有 clusterserviceversions 实例,那么表示您未使用 OLM。 现在,您可以获取由 OLM 创建的资源的列表并将其除去。

  5. 对于以下列表中的每个 CRD,获取所有名称空间中的定制资源 (CR)。

    kubectl get catalogsources.operators.coreos.com -A
    kubectl get clusterserviceversions.operators.coreos.com -A
    kubectl get installplans.operators.coreos.com -A
    kubectl get operatorgroups.operators.coreos.com -A
    kubectl get operators.operators.coreos.com -A
    kubectl get subscriptions.operators.coreos.com -A
    
  6. 如果找到 CR,请确定是否仍需要这些资源。

    • 您可能仍会看到由 OLM部署的 olm-operatorsibm-operators 操作程序组。 这些操作程序组是 OLM安装的一部分。 由于您在先前步骤中没有任何 cluseterserviceversions 实例,因此不再使用这些操作程序组。
    • 如果过去安装了 Istio 附加组件 V 1.4- 1.9,那么您可能仍会在 ibm-operators 名称空间中看到 istio operators.operators.coreos.com 资源。 如果已将 Istio 至少升级到 V 1.10,那么不再需要此资源。
    • 如果找到其他 CR,那么您可能未使用这些 CR,因为在先前步骤中没有任何 clusterserviceversions 实例。 但是,请逐个查看集群管理员的每个 CR,以确定是否仍在使用这些 CR。

    以下步骤假定您已完成复审并指导您删除 OLM。

  7. 如果确定 OLM 未由 Istio 附加组件或任何其他操作程序使用,请单独运行以下命令以删除 OLM 资源。

    kubectl delete clusterrole aggregate-olm-edit
    kubectl delete clusterrole aggregate-olm-view
    kubectl delete deploy -n ibm-system catalog-operator
    kubectl delete deploy -n ibm-system olm-operator
    kubectl delete clusterrole system:controller:operator-lifecycle-manager
    kubectl delete serviceaccount -n ibm-system olm-operator-serviceaccount
    kubectl delete clusterrolebinding olm-operator-binding-ibm-system
    kubectl delete operatorgroup -n ibm-operators  ibm-operators
    kubectl delete operatorgroup -n ibm-system   olm-operators
    kubectl delete service -n ibm-system catalog-operator-metrics
    kubectl delete service -n ibm-system olm-operator-metrics
    
  8. 删除任何未使用的 CR,然后删除由 OLM安装的定制资源定义 (CRD)。

    kubectl delete catalogsources.operators.coreos.com NAME -n NAMESPACE
    
    kubectl delete crd catalogsources.operators.coreos.com
    
  9. 对以下每个 CRD 重复上述步骤。

    • catalogsources.operators.coreos.com
    • clusterserviceversions.operators.coreos.com
    • installplans.operators.coreos.com
    • operatorgroups.operators.coreos.com
    • operators.operators.coreos.com
    • subscriptions.operators.coreos.com