One Kubernetes Ingress to front multiple clusters? Scope issues

4/11/2019

So I have two clusters at the moment (soon to be a few more, once I get this working), ClusterA and ClusterB.

Is it possible for one ingress to interface with services from both clusters?

ClusterA hosts the front end and the ingress, while ClusterB hosts the back end.

The excerpted ingress is below. Everything bar the back end works.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:{...}  
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/test-frontend-ingress
  uid: //
  spec:
  backend:
    serviceName: idu-frontend-XYZ
    servicePort: 80
  rules:
  - http:
      paths:
      - backend:
          serviceName: test-backend-app-service
          servicePort: 8080
        path: /api/v2/
      - backend:
          serviceName: idu-frontend-XYZ
          servicePort: 80
        path: /
  tls:
  - secretName: tls-cert-name
status:
  loadBalancer:
    ingress:
    - ip: 123.456.789.012

Back end service URL:
https://console.cloud.google.com/kubernetes/service/asia-southeast1-b/test-backend/default/test-backend-app-service...

URL the ingress tries to point to:
https://console.cloud.google.com/kubernetes/service/asia-southeast1-b/standard-cluster-1/default/test-backend-app-service...

So what I've gathered is the ingress can only interface with things in the same cluster as them? test-backend and standard-cluster-1 are the cluster names, and they are both on the default namespace. Isn't that kind of pointless, as you can only deploy one thing to each cluster? Unless your images contain multiple apps, in which case it isn't really microservices anymore.

-- sk0g
google-cloud-platform
google-kubernetes-engine
kubernetes
kubernetes-ingress
load-balancing

1 Answer

4/11/2019

Connecting two clusters with Kubernetes is hard I guess.

Instead you can deploy both the services on the same cluster. You can create two deployments and expose them as services. And then ingress can redirect traffic between them.

Why do you need a cluster per service though ?

If there is no other alternative you will have to do something like this: https://appscode.com/products/voyager/7.1.1/guides/ingress/http/external-svc/

-- Ankit Deshpande
Source: StackOverflow