All Products
Search
Document Center

Container Service for Kubernetes:Manage the csi-plugin and csi-provisioner components

Last Updated:Nov 20, 2024

The Container Storage Interface (CSI) plug-in consists of csi-plugin and csi-provisioner. You can use these components to automatically create volumes, and to mount and uninstall them.

Prerequisites

A Container Service for Kubernetes (ACK) cluster that runs Kubernetes version 1.14 or later is created, and the CSI plug-in is specified as the volume plug-in of the cluster. For more information, see Create a cluster.

Introduction

The CSI plug-in consists of csi-plugin and csi-provisioner, which are deployed in ACK clusters by default. For more information about CSI, see alibaba-cloud-csi-driver. For more information about the basic information and release notes of CSI, see csi-plugin and csi-provisioner.

  • csi-plugin: used to mount and unmount volumes. By default, ACK allows you to mount the following types of volumes by using csi-plugin: disk volumes, File Storage NAS (NAS) volumes, and Object Storage Service (OSS) volumes.

  • csi-provisioner: used to automatically create volumes. Disk volumes and NAS volumes are supported.

The following figure shows the deployment architectures of the CSI plug-in in an ACK managed cluster and an ACK dedicated cluster.

ACK managed cluster

ACK dedicated cluster

csi managed

In an ACK managed cluster, both csi-provisioner and csi-plugin run on worker nodes.

flexvolume

In an ACK dedicated cluster, csi-provisioner is deployed on master nodes. csi-plugin is automatically deployed on the master and worker nodes as a DaemonSet.

Verify that the CSI plug-in is successfully installed

If you specify the CSI plug-in as the volume plug-in when you create an ACK managed cluster or an ACK dedicated cluster, the system installs csi-plugin and csi-provisioner by default.

Important

Do not uninstall csi-plugin and csi-provisioner that are installed by the system. Otherwise, you fail to mount Alibaba Cloud disks, OSS buckets, or NAS file systems.

You can perform the following steps to verify that the csi-plugin and csi-provisioner components are successfully deployed.

  • Run the following command to check whether csi-plugin is installed in the cluster:

    kubectl get pod -n kube-system | grep csi-plugin
  • Run the following command to check whether csi-provisioner is installed in the cluster:

    kubectl get pod -n kube-system | grep csi-provisioner

Update csi-plugin and csi-provisioner

You can check and update csi-plugin and csi-provisioner in the ACK console.

  1. Log on to the ACK console. In the left-side navigation pane, click Clusters.

  2. On the Clusters page, find the cluster that you want to manage and click its name. In the left-side navigation pane, choose Operations > Add-ons.

  3. Click the Storage tab, find csi-plugin and csi-provisioner, and check whether the components can be updated. Update the components if Upgrade is displayed.

FAQ about update failures

Important

If you migrate the cluster from FlexVolume to CSI by using the csi-compatible-controller component and the migration is still in progress, the csi-plugin and csi-provisioner components cannot be updated automatically. We recommended that you complete the migration before updating the components or manually update the CSI components during the migration process. For more information, see Update components.

If the components fail to be updated in the console or the components fail to pass the precheck, you can perform the following operations to troubleshoot:

csi-plugin fails to pass the precheck

  • If volumes that use disks, NAS file systems, or OSS buckets are not provisioned in the cluster, you must manually update csi-plugin.

  • If volumes that use disks, NAS file systems, or OSS buckets are provisioned in the cluster, and the cluster is created in a staging environment, you must manually update csi-plugin.

  • If volumes that use disks, NAS file systems, or OSS buckets are provisioned in the cluster, and business-critical data is stored in the volumes, submit a ticket to request technical support.

csi-plugin passes the precheck but fails to be updated

Check whether the nodes in the cluster are in the Ready state. If csi-plugin is installed on a node that is in the NotReady state, you must fix the state of the node.

If the issue persists, submit a ticket to apply for a manual update.

csi-plugin is displayed in the console but csi-provisioner is not displayed

csi-provisioner is deployed as a StatefulSet. In this case, submit a ticket to apply for a manual update.

csi-provisioner fails to pass the precheck

  • If no volumes that use disks or NAS file systems are dynamically provisioned by using StorageClasses in the cluster, you must manually update csi-provisioner.

  • If volumes that use disks or NAS file systems are dynamically provisioned by using StorageClasses in the cluster, and the cluster is created in a staging environment, you must manually update CSI-Provisioner.

  • If volumes that use disks or NAS file systems are dynamically provisioned by using StorageClasses in the cluster and business-critical data is stored in the volumes, submit a ticket to apply for a manual update.

csi-provisioner passes the precheck but fails to be updated

submit a ticket to apply for a manual update.

References

For more information about the basic information and release notes of the CSI components, see csi-plugin and csi-provisioner.