A three-zone Supervisor in vSphere IaaS control plane supports zonal storage, where a datastore is shared across all hosts in a single zone.
- Storage in all three zones does not need to be of the same type. However, having uniform storage in all three clusters provides a consistent performance.
- For the namespace on the three-zone Supervisor, use a storage policy that is compliant with the shared storage in each of the clusters. The storage policy must be topology aware.
- Do not remove topology constraints from the storage policy after assigning it to the namespace.
- Do not mount zonal datastores on other zones.
- A three-zone Supervisor does not support the following items:
- Cross-zonal volumes
- vSAN File volumes (ReadWriteMany Volumes)
- Static volume provisioning using Register Volume API
- Workloads that use vSAN Data Persistence platform
- vSphere Pod
- vSAN Stretched Clusters
- VMs with vGPU and instance storage
Create Storage Policy for a Three-Zone Supervisor
To be able to use persistent storage, workloads that run on the three-zone Supervisor must have access to storage classes with zonal topology. To make these storage classes available, the vSphere administrator creates topology aware storage policies and assigns them to the namespace.
The namespace in the three-zone Supervisor prevents you from assigning storage policies that are not topology aware.
For information about enabling the three-zone Supervisor, see Enable a Three-Zone Supervisor.
Procedure
Create PVC in a Three-Zone Supervisor
When you create a dynamic PVC in a three-zone Supervisor, you can specify on which zones the volume should be provisioned.
Procedure
- ♦ To control the PVC zone placement, use the Kubernetes csi.vsphere.volume-requested-topology annotation in your PVC YAML file.
Caution: This parameter is necessary when you create the PVC directly on the Supervisor. However, do not include zone annotations in the PVC you create for a TKG cluster. If you do, the PVC fails to work.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: svcpvc4 annotations: csi.vsphere.volume-requested-topology: '[{"topology.kubernetes.io/zone":"zone-1"},{"topology.kubernetes.io/zone":"zone-2"},{"topology.kubernetes.io/zone":"zone-3"}]' spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Mi storageClassName: zonal2
When you specify all three zones, the volume is created in either zone-1, zone-2, or zone-3.