Available as of v2.5+
Kubernetes is moving away from maintaining cloud providers in-tree. vSphere has an out-of-tree cloud provider that can be used by installing the vSphere cloud provider and cloud storage plugins.
This page covers how to install the Cloud Provider Interface (CPI) and Cloud Storage Interface (CSI) plugins after bringing up a cluster.
The vSphere versions supported:
- 7.0u1 or higher.
The Kubernetes version must be 1.19 or higher.
Using the vSphere out-of-tree cloud provider requires Linux nodes and is not supported on Windows.
The Cloud Provider Interface (CPI) should be installed first before installing the Cloud Storage Interface (CSI).
1. Create a vSphere cluster
- On the Clusters page, click on Add Cluster and select the vSphere option or Existing Nodes option.
- Under Cluster Options in the Cloud Provider section, select External (Out-of-tree). This sets the cloud provider option on the Kubernetes cluster to
externalwhich sets your Kubernetes cluster up to be configured with an out-of-tree cloud provider.
- Finish creating your cluster.
2. Install the CPI plugin
From the Cluster Explorer view, go to the top left dropdown menu and click Apps & Marketplace.
Select the vSphere CPI chart. Fill out the required vCenter details.
vSphere CPI initializes all nodes with ProviderID which is needed by the vSphere CSI driver. Check if all nodes are initialized with the ProviderID before installing CSI driver with the following command:
kubectl describe nodes | grep "ProviderID"
3. Installing the CSI plugin
- From the Cluster Explorer view, go to the top left dropdown menu and click Apps & Marketplace.
- Select the vSphere CSI chart. Fill out the required vCenter details.
- Set Enable CSI Migration to false.
- This chart creates a StorageClass with the
csi.vsphere.vmware.comas the provisioner. Fill out the details for the StorageClass and launch the chart.
Using the CSI driver for provisioning volumes
The CSI chart by default creates a storageClass.
If that option was not selected while launching the chart, create a storageClass with the
csi.vsphere.vmware.com as the provisioner.
All volumes provisioned using this StorageClass will get provisioned by the CSI driver.