您好,我试图确定为什么另一个群集中的pod无法通过AMQP(TCP)与位于另一个群集中的内部GCP负载平衡器进行通信。
Pod到Pod(从群集到群集)有效,并且内部LB提取可通过GCE VM访问的有效内部ip。只是在解决上述问题:
我已附上图表以阐明我的观点:
我尝试过的事情:
创建我自己的L4负载均衡器
将GKE的内部Ingress与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