ContainerCreating state. This deployment failure is caused by an inability to attach the required Persistent Volume Claim (PVC) to the scheduled worker node. The underlying issue stems from a deadlock within the vCenter Cloud Native Storage (CNS) subsystem, which prevents the release of previous volume attachments.kubectl describe pod): Warning FailedAttachVolume AttachVolume.Attach failed for volume "pvc-######" : volume attachment is being deleted
kubectl get volumeattachment reveals older attachments stuck in a false attached state with pending finalizers./var/log/vmware/vsan-health/vsanvcmgmtd logs demonstrate a massive, unchanging backlog of conflicting CNS tasks (often hundreds of tasks deep):info vsanvcmgmtd [...] Update volume task conflicting with resource ########. 497 tasks are already in queue info vsanvcmgmtd [...] Detach volume task conflicting with resource ########. 519 tasks are already in queueAttachVolume, DetachVolume, and UpdateVolumeMetadata tasks.VolumeAttachment objects, leaving the storage volume permanently locked.To safely clear the CNS task deadlock without impacting other workloads, you must restart the vsan-health service on the vCenter Server, which hosts the CNS component.
Open an SSH session to the vCenter Server Appliance (vCSA) and log in as root.
Execute the following command to force a restart of the service: vmon-cli -r vsan-health
Observe the Kubernetes cluster; the vSphere CSI controller will immediately drop the stuck queues, delete the stale VolumeAttachment objects, and successfully bind the volume to the new pod.