To provide higher availability, performance, and scalability, vSphere Container Storage Plug-in supports deployments with multiple vCenter Server instances.
In a Kubernetes cluster based on a single vCenter Server system, vSphere Container Storage Plug-in is as highly available as vCenter Server. If vCenter Server fails, vSphere Container Storage Plug-in stops volume operations. In addition, the performance and throughput of volume life cycle operations and the scale of volumes are limited to what a single vCenter Server instance supports.
With the multi-instance vCenter Server functionality, you can stretch the Kubernetes cluster across multiple vCenter Server instances. This allows you to achieve higher availability, performance, and scale of persistent volumes. Also, in a multi-zone infrastructure topology, you can deploy one instance of vCenter Server per availability zone, or fault domain. You can then stretch the Kubernetes cluster across the availability zones for higher availability, performance, and scale of persistent volumes.
Advantages of Deployment with Multiple vCenter Server Instances
- Improved availability. In a multi-zone deployment topology, if an availability zone fails, the failure affects volume life cycle operations in only that particular availability zone. The life cycle operations in other availability zones continue.
- Improved performance. In a Kubernetes deployment stretched across multiple vCenter Server instances, vSphere Container Storage Plug-in has more vCenter Server systems available for performing volume operations. As a result, the volume operation throughput increases.
- Improved scale. A single vCenter Server instance supports a maximum of 10k CNS block volumes. In a Kubernetes deployment stretched across multiple vCenter Server instances, vSphere Container Storage Plug-in is able to support 10k CNS block volumes per vCenter Server.
Guidelines for Deployment with Multiple vCenter Server Instances
When you deploy vSphere Container Storage Plug-in in an environment with multiple vCenter Server instances, follow these guidelines and best practices.
- The deployment supports only native Kubernetes clusters. The deployment does not support Tanzu Kubernetes Grid clusters.
- The deployment supports only block volume provisioning. File volume provisioning is not supported.
- Your deployment must be topology-aware. If you haven't used the topology functionality, you must recreate the entire cluster to be topology-aware. During volume provisioning, the topology mechanism helps identify and specify nodes for selecting vSphere storage resources spread across multiple vCenter Server systems.
- Follow all guidelines for deploying vSphere Container Storage Plug-in with topology. For information, see Deploying vSphere Container Storage Plug-in with Topology.
- Every node VM on each vCenter Server must have a tag. The value of the tag yields a unique combination of values across all categories mentioned in the
topology-categories
parameter. Thetopology-categories
parameter is specified in vSphere configuration secret on associated vCenter Server.Node registration fails if the node does not belong to every category under the
topology-categories
parameter. Or if the tag values do not generate unique combination across the different tag categories in associated vCenter Server. - vSphere Container Storage Plug-in version 3.0 does not support datastores shared across multiple vCenter Server instances.
- To provision storage based on any specific storage policy, configure the storage policy for each individual vCenter Server, so that vCenter Server can follow the policy-based provisioning requirements. Make sure to use the same policy name and the same policy parameters on all participatingvCenter Server systems.
- Specify configuration details of all configured vCenter Server instances under a separate VirtualCenter section in the vSphere configuration file.
Example of Topology with Multiple vCenter Server Instances
In the following example, three vCenter Server instances belong to three zones.
vCenter Server | Cluster | Node VM |
---|---|---|
vCenter Server - 1
|
vSphere Cluster |
ControlPlaneVM1 WorkerNodeVM1 WorkerNodeVM2 |
vCenter Server - 2
|
vSphere Cluster |
ControlPlaneVM2 WorkerNodeVM3 WorkerNodeVM4 |
vCenter Server - 3
|
vSphere Cluster |
ControlPlaneVM3 WorkerNodeVM5 WorkerNodeVM6 |
Install vSphere Cloud Provider Interface in an Environment with Multiple vCenter Server Instances
Follow these steps to install the vSphere Cloud Provider Interface in an environment with multiple vCenter Server instances.
Procedure
Deploy vSphere Container Storage Plug-in with Multiple vCenter Server Instances
To deploy vSphere Container Storage Plug-in in an environment with multiple vCenter Server instances, follow this procedure.
Prerequisites
Make sure that vSphere Container Storage Plug-in is of version 3.0 or later.