CSI组件包括csi-plugin和csi-provisioner两个组件,以实现数据卷的创建、挂载和卸载。
前提条件
已创建ACK集群且集群版本为v1.14之后,且存储插件类型为CSI。具体操作,请参见创建Kubernetes托管版集群。
已通过kubectl连接Kubernetes集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
CSI组件介绍
CSI组件包括csi-plugin和csi-provisioner两个组件,已在集群中默认部署。有关CSI的更多信息,请参见alibaba-cloud-csi-driver;关于CSI组件的基本信息与变更记录,请参见csi-plugin、csi-provisioner。
csi-plugin组件:实现数据卷的挂载、卸载功能。ACK默认提供云盘、NAS、OSS三种存储卷的挂载能力。
csi-provisioner组件:实现数据卷的自动创建能力,目前支持云盘、NAS两种存储卷的创建能力。
ACK托管集群和ACK专有集群中CSI的部署架构图如下表。
ACK托管集群 | ACK专有集群 |
ACK托管集群中,CSI组件csi-provisioner和csi-plugin都运行在Worker节点中。 | ACK专有集群中,csi-provisioner部署在Master节点上;csi-plugin以DaemonSet负载方式自动部署在Master、Worker节点中。 |
验证CSI组件是否安装成功
ACK托管集群、ACK专有集群的存储插件类型为CSI,控制台将默认安装csi-plugin和csi-provisioner组件。
请勿删除默认安装的csi-plugin和csi-provisioner组件,避免云盘、OSS、NAS存储卷挂载失败。
您可以通过以下步骤,验证csi-plugin和csi-provisioner组件是否成功部署。
执行以下命令,查看csi-plugin组件是否成功部署。
kubectl get pod -n kube-system | grep csi-plugin
执行以下命令,查看csi-provisioner组件是否成功部署。
kubectl get pod -n kube-system | grep csi-provisioner
升级csi-plugin和csi-provisioner
您可以在控制台查看csi-plugin和csi-provisioner组件版本并升级组件。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
单击存储页签,在csi-plugin及csi-provisioner组件区域,查看当前版本是否需要升级,并升级组件。
升级失败常见问题
如果集群通过csi-compatible-controller组件迁移Flexvolume至CSI,且该流程未完成时,无法自动升级csi-plugin和csi-provisioner组件,建议您先完成迁移后再升级组件,或者在迁移过程中手动升级CSI组件。具体操作,请参见升级组件。
若控制台升级失败或前置检查失败,可以按照以下步骤自行排查。
csi-plugin组件前置检查失败
若您的集群没有使用云盘、NAS或OSS类型数据卷,请手动升级csi-plugin组件。
若您的集群使用了云盘、NAS或OSS类型数据卷,且集群为测试环境,需要选择手动升级。
若您的集群使用了云盘、NAS或OSS类型数据卷,且包含关键业务数据,请提交工单申请手动升级保障。
csi-plugin组件前置检查通过,但升级失败
检查集群中节点是否都是Ready状态。如果存储在NotReady节点,需要先解决节点问题。
若无法找到具体原因,请提交工单申请手动升级保障。
控制台有csi-plugin组件,但没有csi-provisioner组件
因为使用了早期的csi-provisioner的StatefulSet部署模式,请提交工单申请手动升级保障。
csi-provisioner组件前置检查失败
若您的集群没有使用通过StorageClass创建的云盘或NAS类型的动态数据卷,请手动升级csi-provisioner组件。
若您的集群使用通过StorageClass创建的云盘或NAS类型的动态数据卷,且集群为测试环境,需要选择手动升级。
若您的集群使用通过StorageClass创建的云盘或NAS类型的动态数据卷,且包含关键业务数据,请提交工单申请手动升级保障。
csi-provisioner组件前置检查通过,但是升级失败
请提交工单申请手动升级保障。
相关文档
关于CSI组件的基本信息与变更记录,请参见csi-plugin、csi-provisioner。