Multi Cluster network connectivity

Hello Guys,

I am planning to establish the connectivity between Kubernetes Cluster. We have use-case for sending the data from one cluster to other cluster.

To give you brief, we have setup the two K8 clusters. Cluster A and Cluster B. Cluster A has service called prod-apps and there are some back-end pods. Those back-end pods will send the processed data to the pods running on the cluster B.

With my understanding, I am planning to solve this problem using the ingress ngnix controller. ( But let me know if there are other effective solution for this )

I have deployed both of the Clusters on the on-prem environment with the same subnet (without overlapping of the IP address) Additionally, I have configured the ingress nginx controller on the cluster B. But unfortunately it is pending with the External IP. I am trying to resolve this issue.

bash-3.2$ kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   172.19.159.38    <pending>     80:30774/TCP,443:31551/TCP   34m
ingress-nginx-controller-admission   ClusterIP      172.19.136.185   <none>        443/TCP                      34m
bash-3.2$ kubectl patch svc ingress-nginx-controller -n ingress-nginx -p '{"spec": {"loadBalancerIP": "10.214.142.120"}}'
service/ingress-nginx-controller patched (no change)
Error from server (NotFound): services "{"loadBalancerIP":" not found
Error from server (NotFound): services ""10.214.142.120"}}'" not found 

I wanted to check, if there are any other best practices to setup the multi-cluster environment

Hi @goreankush1

Yes, you do need an ingress on cluster B. The reason it is pending is because it does not know how to provision a load balancer to service the ingress controller. Load balancer provisioning requires 3rd party operators that understand the network you are running in.

If your on-prem network is running VMware and your clusters are deployed within VMware, then search google for vmware kubernetes load balancer for some options.

Alternatively you may be able to run MetalLB.