With vSphere 7 and VCF 4.0 we announced vSphere with Kubernetes, an combination of a new control plane for vSphere operations through a K8s-like declarative control plane and the ability to deploy vanilla K8s clusters through Tanzu Kubernetes Grid. TKG and vSphere with Kubernetes offer a slightly different architecture than most K8s distributions in order to provide the quota systems, RBAC, management and control that the vSphere administrator requires, while providing the self-service that the developer needs.
Because if this architecture, there is also a custom vSphere CSI driver for TKG when used in combination with vSphere with Kubernetes. The below diagram shows this architecture when fleshed out a little.
You can see that each TKG cluster, when provisioned through vSphere with Kubernetes, proxies its storage requests through the vSphere Pod Service Cluster (this is that K8s-like bit I mentioned before). This is where the intelligent RBAC and quota systems live in vSphere with Kubernetes - as such, all storage calls must pass through it, as exhibited above.
Additionally, the custom CSI driver also supports vSphere Native Pods in addition to workloads deployed on TKG clusters, this means storage provisioning is automated wherever you choose to deploy your applications.
Because of the new architecture and the custom CSI driver, we have implemented a feature set for the CSI that is equivalent to the features available in the vSphere CSI v1 - so automated block (ReadWriteOnce) volume support, with ReadWriteMany support coming later.