Kubernetes clusters that is Master Nodes and Worker Nodes were designed to work in a Local Area Network(LAN) environment. They are not recommended to be distributed across multiple Data Centers.
2 Data Centers Active Active Design
If you have 2 Data Centers, I would recommend the following design for Active Active setup.
- Dedicated Kubernetes Clusters for each DC
- Applications would be deployed twice, once in each DC
- Use of a Global Site Load Balancer (GSLB) such as F5 GTM, AVI Networks, A10 to direct Ingress traffic to each Kubernetes Clusters
- Have security controls such as software based network firewalls to be able to support Kubernetes Network Policy. This will helps to have consistent security policies being applied to the applications deployed twice at both sites.
- Likewise for Ingress Controllers, have a software based Load Balancer to be to dynamically add/remove node members in the server pool. This will facilitate the scaling in and scaling out of the Pods as desired.
More details follow such as
- Why vSAN Stretched Cluster across sites might not be recommended for Kubernetes environment
- High Availability / Resiliency requirements between Applications layer and Infrastructure layer