The following figure depicts the high-level architecture for our Kubernetes cluster:
Figure 18. High-level architecture of our Kubernetes cluster
The Kubernetes cluster has the following components:
- Load balancer—One NGINX load balancer runs on a dedicated Red Hat Enterprise Linux VM (along with a Docker registry), with VMware Fault Tolerance (VMware FT) enabled for the VM.
- Local Docker registry—One Docker registry container is also deployed on the load balancer VM for simplicity. For better control and security, deploy the local Docker registry on its own dedicated VM or VMs with HA configured.
- Kubernetes master nodes—Three dedicated Red Hat Enterprise Linux VMs provide HA for Kubernetes master nodes in case of a failure. The etcd is also deployed on these three master nodes. You can also deploy separate etcd cluster nodes in their own dedicated VM.
- Kubernetes worker nodes—Nine dedicated Red Hat Enterprise Linux VMs work as workload driver nodes. We put the SQL Server Big Data Cluster pods on these VMs.
The following table shows the VM placement across the four-node VxFlex cluster:
Table 5. VM placement on VxFlex cluster nodes