A three-zone Supervisor in vSphere IaaS control plane supports zonal storage, where a datastore is shared across all hosts in a single zone.

All hosts in a single zone share one datastore.

When you prepare storage resources for the three-zone Supervisor, keep in mind the following considerations:
  • 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

  1. In the vSphere Client, open the Create VM Storage Policy wizard.
    1. In the Home menu, click Policies and Profiles.
    2. Under Policies and Profiles, click VM Storage Policies.
    3. Click Create.
  2. Enter the policy name and description.
    Option Action
    vCenter Server Select the vCenter Server instance.
    Name Enter the name of the storage policy.
    Description Enter the description of the storage policy.
  3. Follow the prompts to the Policy structure page.
  4. Under Storage topology, select Enable consumption domain and follow prompts to the Consumption domain page.
    Policy structure page with Enable consumption domain check box selected
  5. On the Consumption domain page, specify the storage topology type.
    Option Description
    Zonal Datastore is shared across all hosts in a single zone.

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.

What to do next

For information on deploying stateful applications in TKG clusters, see Deploy StatefulSet Application Across vSphere Zones with Late Binding Volume Attachment.