GKE pod通过TCP与另一个群集(内部负载平衡器)通信

时间:2020-08-12 21:23:04

标签: kubernetes google-cloud-platform google-kubernetes-engine

您好,我试图确定为什么另一个群集中的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

0 个答案:

没有答案