GKE负载平衡器连接被拒绝

时间:2019-11-05 00:21:09

标签: networking kubernetes google-cloud-platform load-balancing google-kubernetes-engine

我正在尝试在GKE上设置我的应用,并使用内部负载平衡器进行公共访问。我能够部署群集/负载平衡器服务而没有任何问题,但是当我尝试访问负载平衡器的外部ip地址时,我得到了Connection Refused,而且我不确定什么是错误的/如何调试它。

这些是我执行的步骤:

我通过yaml应用了部署kubectl apply -f file.yaml文件,然后,我对yaml应用了负载均衡器服务kubectl apply -f service.yaml文件。部署完两者后,我做了kubectl get service从负载均衡器中获取外部IP地址。

这是我的deployment.yaml文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app-api
          image: gcr.io/...
          ports:
            - containerPort: 8000
          resources:
            requests:
              memory: "250M"
              cpu: "250m"
            limits:
              memory: "1G"
              cpu: "500m"
        - name: my-app
          image: gcr.io/...
          ports:
            - containerPort: 3000
          resources:
            requests:
              memory: "250M"
              cpu: "250m"
            limits:
              memory: "1G"
              cpu: "500m"

这是我的service.yaml文件:

apiVersion: v1
kind: Service
metadata:
  name: my-app-ilb
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
  labels:
    app: my-app-ilb
spec:
  type: LoadBalancer
  selector:
    app: my-app
  ports:
  - port: 3000
    targetPort: 3000
    protocol: TCP

我的部署文件有两个容器;后端api和前端。我想发生的是,我应该能够继续[external ip address]:3000并查看我的网络应用。

我希望这是足够的信息;请让我知道是否还有其他我想念的东西/可以补充。

谢谢大家!

1 个答案:

答案 0 :(得分:2)

您需要通过创建防火墙规则来允许流量流入群集。

gcloud compute firewall-rules create my-rule --allow=tcp:3000

删除此注释:

  annotations:
    cloud.google.com/load-balancer-type: "Internal"

您需要外部负载均衡器。