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
)。 -
已安装
jq
CLI 工具。 -
您以具有
cluster-admin
权限的用户身份登录。
流程
运行以下命令,从
Subcription
资源取消订阅 Kubernetes NMState Operator:oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator
$ oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查找与 Kubernetes NMState Operator 关联的
ClusterServiceVersion
(CSV) 资源:oc get --namespace openshift-nmstate clusterserviceversion
$ oc get --namespace openshift-nmstate clusterserviceversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出 CSV 资源的输出示例
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.18.0 Kubernetes NMState Operator 4.18.0 Succeeded
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.18.0 Kubernetes NMState Operator 4.18.0 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 CSV 资源。删除文件后,OLM 会删除其为 Operator 创建的某些资源,如
RBAC
。oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.18.0
$ oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.18.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除
nmstate
CR 和任何关联的Deployment
资源:oc -n openshift-nmstate delete nmstate nmstate
$ oc -n openshift-nmstate delete nmstate nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete --all deployments --namespace=openshift-nmstate
$ oc delete --all deployments --namespace=openshift-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
nmstate
CR 后,从console.operator.openshift.io/cluster
CR 中删除nmstate-console-plugin
控制台插件名称。运行以下命令,存储在启用插件列表中存在
nmstate-console-plugin
条目的位置。以下命令使用jq
CLI 工具将条目的索引存储在名为INDEX
的环境变量中:INDEX=$(oc get console.operator.openshift.io cluster -o json | jq -r '.spec.plugins | to_entries[] | select(.value == "nmstate-console-plugin") | .key')
INDEX=$(oc get console.operator.openshift.io cluster -o json | jq -r '.spec.plugins | to_entries[] | select(.value == "nmstate-console-plugin") | .key')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下 patch 命令,从
console.operator.openshift.io/cluster
CR 中删除nmstate-console-plugin
条目:oc patch console.operator.openshift.io cluster --type=json -p "[{\"op\": \"remove\", \"path\": \"/spec/plugins/$INDEX\"}]"
$ oc patch console.operator.openshift.io cluster --type=json -p "[{\"op\": \"remove\", \"path\": \"/spec/plugins/$INDEX\"}]"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
INDEX
是辅助变量。您可以为此变量指定不同的名称。
运行以下命令删除所有自定义资源定义 (CRD),如
nmstates.nmstate.io
:oc delete crd nmstates.nmstate.io
$ oc delete crd nmstates.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkconfigurationenactments.nmstate.io
$ oc delete crd nodenetworkconfigurationenactments.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkstates.nmstate.io
$ oc delete crd nodenetworkstates.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkconfigurationpolicies.nmstate.io
$ oc delete crd nodenetworkconfigurationpolicies.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除命名空间:
oc delete namespace kubernetes-nmstate
$ oc delete namespace kubernetes-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow