Модуль GKE для другого кластера (внутренний балансировщик нагрузки) связь через TCP

#kubernetes #google-cloud-platform #google-kubernetes-engine

#kubernetes #google-облачная платформа #google-kubernetes-engine

Вопрос:

Здравствуйте, я пытаюсь определить, почему мои модули в другом кластере не могут взаимодействовать через AMQP (TCP) с внутренним модулем GCP loadbalancer, который находится в другом кластере.

Модуль Pod (от кластера к кластеру) работает, и внутренний LB выдает действительный внутренний ip, к которому можно получить доступ через виртуальные машины GCE. Просто борюсь с вышеупомянутой проблемой:

Я приложил диаграмму, чтобы донести свою точку зрения:

Что я пробовал:
Создание моего собственного балансировщика нагрузки L4
с использованием внутреннего входа GKE с NEG для уровня 7 (этот метод работает только для http / https, а не AMQP (TCP)).

Пример развертывания:

 apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    io.kompose.service: rabbitmq
  name: rabbitmq
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: rabbitmq
  strategy: {}
  template:
    metadata:
      labels:
        io.kompose.service: rabbitmq
    spec:
      containers:
      - env:
        - name: RABBITMQ_DEFAULT_PASS
          value: guest
        - name: RABBITMQ_DEFAULT_USER
          value: guest
        image: rabbitmq:3.8-management
        imagePullPolicy: ""
        name: rabbitmq
        resources: {}
      restartPolicy: Always
      serviceAccountName: ""
      volumes: null
status: {}


  

Обслуживание:

 apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/load-balancer-type: Internal
    networking.gke.io/internal-load-balancer-allow-global-access: 'true'
  labels:
    io.kompose.service: rabbitmq
  name: expose-rabbitmq
spec:
  loadBalancerSourceRanges:
    - 10.150.0.0/16
  ports:
  - name: epmd
    port: 4369
    protocol: TCP
    targetPort: epmd
  - name: amqp
    port: 5672
    protocol: TCP
    targetPort: amqp
  - name: dist
    port: 25672
    protocol: TCP
    targetPort: dist
  - name: stats
    port: 15672
    protocol: TCP
    targetPort: stats
  selector:
    io.kompose.service: rabbitmq
  type: LoadBalancer
  

Комментарии:

1. схема найдена здесь: i.imgur.com/nilNBRQ.png

2. находятся ли оба кластера в одном регионе?

3. Есть ли у вас правильные правила брандмауэра для разрешения обмена данными? Кроме того, можете ли вы связаться с каким-либо модулем / сервисом кластера 2 из кластера 1?

4. @TarunKhosla да, оба кластера расположены в одном регионе и в одной сети и подсети vpc

5. @KoopaKiller да, модули из одного кластера могут достигать модулей в другом кластере, установлены правила брандмауэра, позволяющие трафику из диапазона cidr модулей обмениваться данными с подсетью vpc