1.2. 卸载 Kubernetes NMState Operator
您可以使用 Operator Lifecycle Manager (OLM)卸载 Kubernetes NMState Operator,但设计 OLM 不会删除任何关联的自定义资源定义(CRD)、自定义资源(CR)或 API Services。
在从 OLM 使用的 Subcription 资源卸载 Kubernetes NMState Operator 前,请确定要删除的 Kubernetes NMState Operator 资源。此标识可确保您可以在不影响正在运行的集群的情况下删除资源。
如果您需要重新安装 Kubernetes NMState Operator,请参阅"使用 CLI 安装 Kubernetes NMState Operator"或"使用 web 控制台安装 Kubernetes NMState Operator"。
先决条件
-
已安装 OpenShift CLI(
oc)。 -
已安装
jqCLI 工具。 -
您以具有
cluster-admin权限的用户身份登录。
流程
运行以下命令,从
Subcription资源取消订阅 Kubernetes NMState Operator:$ oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator查找与 Kubernetes NMState Operator 关联的
ClusterServiceVersion(CSV) 资源:$ oc get --namespace openshift-nmstate clusterserviceversion列出 CSV 资源的输出示例
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.19.0 Kubernetes NMState Operator 4.19.0 Succeeded删除 CSV 资源。删除文件后,OLM 会删除其为 Operator 创建的某些资源,如
RBAC。$ oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.19.0运行以下命令来删除
nmstateCR 和任何关联的Deployment资源:$ oc -n openshift-nmstate delete nmstate nmstate$ oc delete --all deployments --namespace=openshift-nmstate删除
nmstateCR 后,从console.operator.openshift.io/clusterCR 中删除nmstate-console-plugin控制台插件名称。运行以下命令,存储在启用插件列表中存在
nmstate-console-plugin条目的位置。以下命令使用jqCLI 工具将条目的索引存储在名为INDEX的环境变量中:INDEX=$(oc get console.operator.openshift.io cluster -o json | jq -r '.spec.plugins | to_entries[] | select(.value == "nmstate-console-plugin") | .key')运行以下 patch 命令,从
console.operator.openshift.io/clusterCR 中删除nmstate-console-plugin条目:$ oc patch console.operator.openshift.io cluster --type=json -p "[{\"op\": \"remove\", \"path\": \"/spec/plugins/$INDEX\"}]"1 - 1
INDEX是辅助变量。您可以为此变量指定不同的名称。
运行以下命令删除所有自定义资源定义 (CRD),如
nmstates.nmstate.io:$ oc delete crd nmstates.nmstate.io$ oc delete crd nodenetworkconfigurationenactments.nmstate.io$ oc delete crd nodenetworkstates.nmstate.io$ oc delete crd nodenetworkconfigurationpolicies.nmstate.io删除命名空间:
$ oc delete namespace openshift-nmstate