#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