本章节介绍如何卸载华为CSI。根据您安装时的方式,请使用不同的方式进行卸载。
如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。
本章节介绍如何卸载华为CSI。根据您安装时的方式,请使用不同的方式进行卸载。
如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。
本章节介绍如何在Kubernetes、OpenShift、Tanzu平台卸载华为CSI。
卸载huawei-csi-host-info对象使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令卸载华为CSI,helm-huawei-csi 是自定义的Helm Chart名称,huawei-csi 是该Helm Chart所在的命名空间。该卸载命令将会卸载华为CSI的huawei-csi-controller、huawei-csi-node和RBAC资源。
helm uninstall helm-huawei-csi -n huawei-csi
卸载命令执行后,还需要检查卸载是否成功。其中,huawei-csi 为chart所在的命名空间。
helm list -n huawei-csi
命令结果示例如下,如果回显为空,则表示服务卸载成功。
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
卸载huawei-csi-host-info对象,请参考卸载huawei-csi-host-info对象进行操作。
卸载webhook资源,请参考卸载Webhook资源进行操作。
(可选)卸载快照依赖组件服务,请参考卸载Snapshot依赖组件服务进行操作。
(可选)卸载Lease资源,请参考卸载Lease资源进行操作。
本章节介绍如何在CCE / CCE Agile平台卸载华为CSI,以CCE Agile v22.3.2为例。
登录CCE Agile平台。
在主页单击“模板市场> 模板实例 ”,进入模板实例页面。
选择华为CSI模板实例,单击“卸载”,在弹出的提示框中单击“确定”。
卸载huawei-csi-host-info对象,请参考卸载huawei-csi-host-info对象进行操作。
卸载webhook资源,请参考卸载Webhook资源进行操作。
(可选)卸载快照依赖组件服务,请参考卸载Snapshot依赖组件服务进行操作。
本章节介绍如何卸载CSI依赖组件服务。
名称为huawei-csi-host-info的Secret对象中保存着集群中各个节点的启动器信息,例如iSCSI启动器。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤:
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令卸载Secret对象,其中huawei-csi-host-info是Secret对象的名称,huawei-csi是Secret对象所在的命名空间。
kubectl delete secret huawei-csi-host-info -n huawei-csi
执行以下命令检查Secret对象是否卸载成功。
kubectl get secret huawei-csi-host-info -n huawei-csi
命令结果示例如下,如果命令回显提示“NotFound”表示huawei-csi-host-info对象已成功卸载。
Error from server (NotFound): secrets "huawei-csi-host-info" not found
名称为storage-backend-controller.xuanwu.huawei.io的webhook资源用于校验Backend的秘钥信息和与存储的连通性,使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤:
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令,查询webhook依赖组件服务。
kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io
命令结果如下。
NAME WEBHOOKS AGE
storage-backend-controller.xuanwu.huawei.io 1 12d
执行以下命令,卸载webhook依赖组件服务。
kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io
执行以下命令,检查服务是否已成功卸载。如果结果为空,表示已成功卸载。
kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io
- 请勿在存在快照时卸载Snapshot依赖组件服务,否则Kubernetes会自动删除所有的用户快照且无法恢复,请谨慎操作。详细说明请参见删除 CustomResourceDefinition。
- 请勿在CSI升级时卸载Snapshot依赖组件服务。
场景说明
操作步骤
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令,卸载Snapshot依赖组件服务。
kubectl delete crd volumesnapshotclasses.snapshot.storage.k8s.io volumesnapshotcontents.snapshot.storage.k8s.io volumesnapshots.snapshot.storage.k8s.io
执行以下命令,检查服务是否已成功卸载。如果结果为空,表示已成功卸载。
kubectl get crd | grep snapshot.storage.k8s.io
values.yaml文件中controller.controllerCount配置项的值大于1时,huawei-csi-controller将使用多副本部署,huawei-csi-controller服务的多副本使用Kubernetes的LeaderElection机制实现,该机制会创建Lease对象用于保存当前Holder信息。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤,若controller.controllerCount配置项的值等于1是时,可跳过本步骤。配置项描述可参考表 controller配置项说明。
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令,查询Lease信息。
kubectl get lease -n huawei-csi
命令结果示例如下。
NAME HOLDER AGE
csi-huawei-com node-1 24d
external-attacher-leader-csi-huawei-com node-1 24d
external-resizer-csi-huawei-com node-1 24d
external-snapshotter-leader-csi-huawei-com node-1 24d
snapshot-controller-leader node-1 24d
storage-backend-controller node-1 24d
huawei-csi-extender node-1 24d
执行以下命令,卸载Lease资源。
kubectl delete lease -n huawei-csi csi-huawei-com external-attacher-leader-csi-huawei-com external-resizer-csi-huawei-com external-snapshotter-leader-csi-
执行以下命令,检查是否已成功卸载。
kubectl get lease -n huawei-csi
命令结果示例如下,如果结果为空,表示已成功卸载。
No resources found in huawei-csi namespace.
本章节介绍如何手动卸载华为CSI。
如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令卸载 huawei-csi-node 服务,huawei-csi 替换为华为CSI所在的命名空间。
kubectl delete daemonset huawei-csi-node -n huawei-csi
执行以下命令检查服务是否已成功卸载(如果提示NotFound错误,表示已成功卸载)。
kubectl get daemonset huawei-csi-node -n huawei-csi
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令卸载 huawei-csi-controller 服务,huawei-csi 替换为华为CSI所在的命名空间。
kubectl delete deployment huawei-csi-controller -n huawei-csi
执行以下命令检查服务是否已成功卸载(如果提示NotFound错误,表示已成功卸载)。
kubectl get deployment huawei-csi-controller -n huawei-csi
如果安装时未使用CSIDriver特性,可跳过本步骤。
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令卸载csidriver对象。
kubectl delete csidriver csi.huawei.com
执行以下命令检查服务是否已成功卸载(如果提示NotFound错误,表示已成功卸载)。
kubectl get csidriver csi.huawei.com
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
删除RBAC权限。
kubectl -n huawei-csi -l provisioner=csi.huawei.com delete ServiceAccount,Service,role,rolebinding,ClusterRole,ClusterRoleBinding