Introduction
Stateful Kubernetes workloads need storage that survives Pod replacement and follows defined availability and performance policies. In VMware vSphere Kubernetes Service (VKS), Kubernetes storage objects connect to vSphere policy-based storage through the vSphere Container Storage Interface (CSI) Driver. VMware vSAN is a common backing platform, but the governing abstraction presented to consumers is the vSphere Storage Policy.
Architecture Overview
Storage consumption begins with a policy assigned to a vSphere Namespace. The integration makes eligible policies available to a VKS cluster as Kubernetes storage classes. An application submits a PersistentVolumeClaim, and the CSI workflow requests a volume that satisfies the selected class.
This separates application intent from datastore implementation. Kubernetes users request capacity and an approved service class; vSphere administrators define which underlying storage can satisfy that class.
Core Components
Component Explanation
- vSphere Storage Policy: Describes eligible storage capabilities and placement rules.
- StorageClass: Presents a Kubernetes provisioning option associated with the infrastructure storage policy.
- PersistentVolumeClaim (PVC): Expresses a workload's request for persistent storage.
- PersistentVolume (PV): Represents the volume bound to a claim.
- vSphere CSI Driver: Implements Kubernetes volume provisioning and lifecycle operations against vSphere storage.
- VMware vSAN or VMFS-backed storage: Provides capacity according to supported configuration and assigned policy.
- Volume snapshot objects: Coordinate supported point-in-time volume snapshot operations; they are not a complete application backup by themselves.
How Components Work Together
For dynamic provisioning, a PVC references an eligible StorageClass. Kubernetes and the vSphere CSI Driver coordinate creation of a backing volume, then bind it to a PV and attach or mount it for an eligible Pod. Static provisioning instead exposes a pre-created volume through Kubernetes objects and requires careful ownership handling.
Expansion and snapshots depend on driver, storage, and policy support. Applications must also be designed to handle filesystem or database consistency. A crash-consistent storage snapshot cannot automatically capture every Kubernetes object or external dependency needed for recovery.
Topology adds another constraint. A Pod can use a volume only where compute placement and storage accessibility are compatible. Zone-aware designs must keep storage policy, node placement, and workload scheduling aligned.
Design Considerations
Define storage classes around meaningful service levels rather than datastore names. Consider availability, performance, capacity growth, encryption, snapshot behavior, reclaim policy, access mode, and recovery requirements.
The namespace should expose only policies the tenant is authorized to consume. Capacity planning must account for replicas, snapshots, growth, rebuild overhead, and failure scenarios at the underlying storage layer.
Best Practices
- Validate CSI and storage-feature compatibility for the deployed VCF and VKS versions.
- Use descriptive StorageClass names tied to documented service objectives.
- Test volume provisioning, attachment, expansion, snapshot, and restore before production use.
- Monitor PVC status, CSI events, vSphere tasks, datastore capacity, and policy compliance together.
- Align node topology with storage accessibility.
- Protect Kubernetes objects and application data as separate but coordinated recovery concerns.
Common Mistakes
- Treating a PVC as the physical storage implementation
- Exposing every storage policy to every namespace
- Assuming volume snapshots are equivalent to application-consistent backups
- Ignoring reclaim behavior when deleting claims
- Expanding a volume without validating filesystem and workload support
- Troubleshooting only Kubernetes events while ignoring vSphere policy compliance and datastore health
Certification Relevance
For 3V0-24.25, practitioners should understand the path from vSphere Storage Policy to StorageClass, PVC, PV, and backing volume. Hands-on preparation should include reading events, identifying the responsible layer, and explaining how topology and namespace policy affect provisioning.
Conclusion
VKS storage architecture translates Kubernetes requests into policy-controlled vSphere volumes. Reliable designs depend on clear service classes, appropriate namespace exposure, CSI compatibility, sufficient capacity, and tested recovery behavior. Storage must be designed before clusters and stateful workloads are deployed, not added as an afterthought.

