In the case of the RAN environment we have to design stretched cluster for the DU workloads.
From TCP RA 3.1 guide, stretched cluster is defined as below
If you create a Tanzu Kubernetes cluster where node pools are deployed to different target endpoints (within a single vCenter), it is called a Stretched Cluster. In this scenario, multiple vSphere endpoints are used as target endpoints for different node pools within a single cluster.
There are some conditions that needs to be met while configuring such a topology i.e.
When using stretched cluster designs, storage zoning is required if the datastores on each vSphere cluster are unique (as with a vSAN design). This ensures that node pools within a resource pool on a vSphere Cluster or standalone host can consume the appropriate storage for any persistent volume claims the cluster might need.
Without this configuration the DU instantiation will fail.
While enabling multi-zone, we have to ensure that
For region: vSphere data center has tags attached for the selected category.
For zone: vSphere Cluster or hosts under the vSphere cluster has tags attached for the selected category.
Ensure that vSphere Cluster and hosts under vSphere cluster does not share the same tags.
The topology for the same can be drawn like below
Categories can be defined in vSphere Client > ‘Tags & Custom Attributes’ > Categories tab
e.g. k8s-zone for clusters & individual hosts, k8s-region for datacenter
Tags can be defined in vSphere Client > ‘Tags & Custom Attributes’ > Tags tab
e.g. Tag region-dc can be defined for vcenter_datacenter & assigned Category k8s-region
Tag zone-cls can be defined for vcenter_cluster_vsan_configured & assigned Category k8s-zone
Tag zone-host4 can be defined for Host4_local_datastore & assigned Category k8s-zone
Tag zone-host5 can be defined for Host5_local_datastore & assigned Category k8s-zone
i.e.
In the workload cluster, define the zone & region categories in the vSphere-CSI add-on configuration.
This configuration is important before deploying workloads, as in absence of it PV creation will fail and pods will fail to deploy (Error: failed to get shared datastore for topology).
Hoping above pointers will help in your lab activities. Cheers 🙂