卸载CSI依赖组件服务
本章节介绍如何卸载CSI依赖组件服务。
卸载huawei-csi-host-info对象
名称为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
卸载Webhook资源
名称为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依赖组件服务
- 请勿在存在快照时卸载Snapshot依赖组件服务,否则Kubernetes会自动删除所有的用户快照且无法恢复,请谨慎操作。详细说明请参见删除 CustomResourceDefinition。
- 请勿在CSI升级时卸载Snapshot依赖组件服务。
场景说明
- 当前华为CSI使用了快照特性。
- 当前Kubernetes集群仅存在华为CSI,且不再使用华为CSI。
- 在卸载前请确保在Kubernetes集群中已经没有华为CSI管理的VolumeSnapshot资源。
操作步骤
使用远程访问工具(以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
卸载Lease资源
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.