Межкластерный обмен данными между модулями GKE - PullRequest
0 голосов
/ 25 мая 2020

Упрощенная схема проекта: Simplified project diagram:

Моя цель - разрешить подключение из eu-cluster-b pod micro-service-pod-a отправка и получение http-вызовы в eu-cluster-a pod micro-service-pod-b. Я читал о соединениях (подсетях) VP C, но я не совсем уверен, что делать в этой ситуации, и я бы не хотел испортить всю сеть.

1 Ответ

1 голос

Вы можете использовать istio для Multi Cloud Burst (https://codelabs.developers.google.com/codelabs/istio-multi-burst/#0)

Также, если они находятся в одном проекте, вам нужно будет убедиться, что у них разные диапазоны IP-адресов и что диапазон одной подсети маршрутизируемый для другой подсети, тогда используйте что-то вроде https://github.com/kubernetes-sigs/external-dns,

Это позволит вам вызвать внутренние балансировщики нагрузки, которые создаст службы type: Load Balancer, но не publi c, с которым вы, вероятно, знакомы, а внутреннюю (с учетом квот типа backend-services), я буду использовать службу mongodb в качестве примера, это будет выглядеть что-то вроде этого.

kind: Service
metadata:
  name: "mongodb"
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
    external-dns.alpha.kubernetes.io/hostname: "db.mongodb.myinternaldns.test"
    external-dns.alpha.kubernetes.io/ttl: "10"
  labels:
    app: mongodb
spec:
  ports:
    - name: tcp-mongodb
      port: 27017
      protocol: TCP
      targetPort: 27017
  clusterIP: None
  selector:
    app: mongodb


В аннотациях вы указываете, какой DNS-адрес вы хотите, чтобы эта служба имела, и это DNS-адрес, который будет доступен из обоих кластеров, он создаст A и TXT-записи в Cloud-DNS с IP-адресом внутреннего балансировщика нагрузки, если вы убедитесь, что у вас есть правильные настройки маршрута, трафик c будет передаваться между кластерами. Надеюсь, это поможет!

...