ContainerCreating state.kubectl describe commands shows FailedMount Events:
kubectl describe pod -n <namespace_name> <pod_name>Warning FailedMount #s (x# over #m) kubelet MountVolume.MountDevice failed for volume "pvc-########-####-####-####-############" : rpc error: code = Internal desc = unable to format and mount device [/dev/sdb] at path [/var/lib/kubelet/plugins/kubernetes.io/csi/named-disk.csi.cloud-director.vmware.com/################################################################/globalmount] with fs [ext4] and flags [[rw]]: [exec: "lsblk": executable file not found in $PATH]vcd-csi-plugin containers on csi-vcd-nodeplugin pods on the Worker Nodes show it is unable to format and mount the device:kubectl logs -n kube-system csi-vcd-nodeplugin-##### -c vcd-csi-plugin<time_stamp> 1 driver.go:215] GRPC error: function [/csi.v1.Node/NodeStageVolume] req [&csi.NodeStageVolumeRequest{VolumeId:"pvc-########-####-####-####-############", PublishContext:map[string]string{"diskID":"pvc-########-####-####-####-############", "diskUUID":"########-####-####-####-############", "filesystem":"ext4", "vmID":"<worker_node_vm_name>"}, StagingTargetPath:"/var/lib/kubelet/plugins/kubernetes.io/csi/named-disk.csi.cloud-director.vmware.com/################################################################/globalmount", VolumeCapability:(*csi.VolumeCapability)(0xc000422f40), Secrets:map[string]string(nil), VolumeContext:map[string]string{"busSubType":"VirtualSCSI", "busType":"SCSI", "diskID":"urn:vcloud:disk:########-####-####-####-############", "filesystem":"ext4", "storage.kubernetes.io/csiProvisionerIdentity":"#############-####-named-disk.csi.cloud-director.vmware.com", "storageProfile":"<storage_policy_name>"}, XXX_NoUnkeyedLiteral:struct {}{}, XXX_unrecognized:[]uint8(nil), XXX_sizecache:0}]: [rpc error: code = Internal desc = unable to format and mount device [/dev/sdb] at path [/var/lib/kubelet/plugins/kubernetes.io/csi/named-disk.csi.cloud-director.vmware.com/################################################################/globalmount] with fs [ext4] and flags [[rw]]: [exec: "lsblk": executable file not found in $PATH]]This issue is caused by a missing command on the vcd-csi-plugin containers on the csi-vcd-nodeplugin pods.
This issue is under review with VMware Engineering. Subscribe to receive an email when the article is updated.
To workaround the issue use the previous 1.6.0 release of the Kubernetes Container Storage Interface Driver for VMware Cloud Director (CSI).
For new clusters, the Container Storage Interface (CSI) Component Version can be changed from 1.6.1 to the previous 1.6.0 release.
This can be done as per the documentation, Configure the VMware Cloud Director Container Service Extension Server Settings.
Example steps would be as follows:
1.6.1.1.6.1 to 1.6.0.
For existing clusters, the Container Storage Interface (CSI) Component Version can be downgraded from 1.6.1 to the previous 1.6.0 release.
This can be done by using the cluster component upgrade script to redeploy the cluster components with the Container Storage Interface (CSI) Component Version set to 1.6.0.
WARNING: This process assumes that all cluster components have already been upgraded to the latest release, ensure this is the case before proceeding.
This process will redeploy all the cluster components and not just CSI.
For more information on the cluster component upgrade script see the documentation, Upgrade Kubernetes Components in VMware Cloud Director Container Service Extension Clusters.
Example steps would be as follows:
$HOME directory:export HOME=<directory of choice>$HOME directory is set correctly, use the following command to print the $HOME directory:echo $HOMEmkdir -p $HOME/cluster-upgrade-scriptcluster-upgrade-script image from http://projects.packages.broadcom.com:cd $HOME/cluster-upgrade-scriptdocker pull projects.packages.broadcom.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.6docker container create --name "temp_container" projects.packages.broadcom.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.6docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2docker container rm "temp_container"cd $HOME/cluster-upgrade-scriptchmod +x upgrade_cluster_components.sh1.6.1 to 1.6.0:vi upgrade_cluster_components.sh# Set the versions of the target components and change the csi_version from 1.6.1 to 1.6.0:csi_version="1.6.1"csi_version="1.6.0"upgrade_cluster_components.sh script.$HOME/cluster-upgrade-script folder using the kubeconfig file of the cluster where we wish to downgrade the Container Storage Interface (CSI) Component Version to 1.6.0 and the Broadcom image registry:./upgrade_cluster_components.sh <kubeconfig_file_path> projects.packages.broadcom.comRunning state.