如何删除 Operator Lifecycle Manager 组件?
未在运行 Kubernetes V 1.23 或更高版本的集群上安装或管理 Operator Lifecycle Manager (OLM)。 但是,从 1.22 升级到 1.23 或更高版本的集群可能仍安装了 OLM 组件。 如果未在集群上使用 OLM 组件,请遵循以下步骤将其移除。
如果要继续在集群中使用 OLM 组件,或者要在运行 V 1.23 或更高版本的集群上安装并运行 OLM,那么必须自行管理更新。 请参阅 开放式源代码 OLM 文档。
-
确认已安装 OLM 操作程序。
kubectl get deploy -n ibm-system olm-operator
示例输出
NAME READY UP-TO-DATE AVAILABLE AGE olm-operator 1/1 1 1 6mo
-
检查是否正在使用 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
-
通过列出集群服务版本,检查是否有任何正在使用的操作程序是通过 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,请勿继续。 -
如果步骤 3 的输出中没有
clusterserviceversions
实例,那么表示您未使用 OLM。 现在,您可以获取由 OLM 创建的资源的列表并将其除去。 -
对于以下列表中的每个 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
-
如果找到 CR,请确定是否仍需要这些资源。
- 您可能仍会看到由 OLM部署的
olm-operators
和ibm-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。
- 您可能仍会看到由 OLM部署的
-
如果确定 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
-
删除任何未使用的 CR,然后删除由 OLM安装的定制资源定义 (CRD)。
kubectl delete catalogsources.operators.coreos.com NAME -n NAMESPACE
kubectl delete crd catalogsources.operators.coreos.com
-
对以下每个 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