1 - Kubernetes、OpenShift、Tanzu卸载华为CSI

本章节介绍如何在Kubernetes、OpenShift、Tanzu平台卸载华为CSI。

操作步骤

  1. 卸载huawei-csi-host-info对象使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 执行以下命令卸载华为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
    
  3. 卸载huawei-csi-host-info对象,请参考卸载huawei-csi-host-info对象进行操作。

  4. 卸载webhook资源,请参考卸载Webhook资源进行操作。

  5. (可选)卸载快照依赖组件服务,请参考卸载Snapshot依赖组件服务进行操作。

  6. (可选)卸载Lease资源,请参考卸载Lease资源进行操作。

2 - CCE和CCE Agile卸载华为CSI

本章节介绍如何在CCE / CCE Agile平台卸载华为CSI,以CCE Agile v22.3.2为例。

操作步骤

  1. 登录CCE Agile平台。

  2. 在主页单击“模板市场> 模板实例 ”,进入模板实例页面。

  3. 选择华为CSI模板实例,单击“卸载”,在弹出的提示框中单击“确定”。

  4. 卸载huawei-csi-host-info对象,请参考卸载huawei-csi-host-info对象进行操作。

  5. 卸载webhook资源,请参考卸载Webhook资源进行操作。

  6. (可选)卸载快照依赖组件服务,请参考卸载Snapshot依赖组件服务进行操作。

3 - 卸载CSI依赖组件服务

本章节介绍如何卸载CSI依赖组件服务。

卸载huawei-csi-host-info对象

名称为huawei-csi-host-info的Secret对象中保存着集群中各个节点的启动器信息,例如iSCSI启动器。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤:

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 执行以下命令卸载Secret对象,其中huawei-csi-host-info是Secret对象的名称,huawei-csi是Secret对象所在的命名空间。

    kubectl delete secret huawei-csi-host-info -n huawei-csi
    
  3. 执行以下命令检查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命令时不会卸载该资源,若需卸载该资源,请参考以下步骤:

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 执行以下命令,查询webhook依赖组件服务。

    kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io
    

    命令结果如下。

    NAME                                          WEBHOOKS   AGE
    storage-backend-controller.xuanwu.huawei.io   1          12d
    
  3. 执行以下命令,卸载webhook依赖组件服务。

    kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io
    
  4. 执行以下命令,检查服务是否已成功卸载。如果结果为空,表示已成功卸载。

    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资源。

操作步骤

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 执行以下命令,卸载Snapshot依赖组件服务。

    kubectl delete crd volumesnapshotclasses.snapshot.storage.k8s.io volumesnapshotcontents.snapshot.storage.k8s.io volumesnapshots.snapshot.storage.k8s.io
    
  3. 执行以下命令,检查服务是否已成功卸载。如果结果为空,表示已成功卸载。

    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配置项说明

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 执行以下命令,查询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
    
  3. 执行以下命令,卸载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-
    
  4. 执行以下命令,检查是否已成功卸载。

    kubectl get lease -n huawei-csi
    

    命令结果示例如下,如果结果为空,表示已成功卸载。

    No resources found in huawei-csi namespace.