如何从通过 k8s 中的服务部署的外部负载均衡器修复 'Failed to Connect'?

How do I fix 'Failed to Connect' from an external load balancer deployed via a service in k8s?

我已经在 AKS 中部署了一个 pod,我正在尝试通过外部负载均衡器连接到它。

我为故障排除所做的项目是:

我用来部署的.yaml文件是:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: qubo
  namespace: qubo-gpu
spec:
  replicas: 1
  selector:
    matchLabels:
      app: qubo
  template:
    metadata:
      labels:
        app: qubo
    spec:
      containers:
        - name: qubo-ctr
          image: <Blanked out>
          resources:
            limits:
              nvidia.com/gpu: 1
          command: ["/app/xqx"]
          args: ["80"]
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: api
  namespace: qubo-gpu
  annotations:
spec:
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 80
  selector:
    app: qubo

原来是我打开套接字的代码中的错误。希望这会对其他人有所帮助,这就是我进行故障排除的方式:

  1. 获得 pod 的 IP: kubectl get pods -o wide
  2. 在集群中创建了一个新的 ubuntu pod: kubectl run -it --rm --restart=Never --image=ubuntu:18.04 ubuntu bash
  3. 已将 curl 下载到新 pod: apt-get update && apt-get install -y curl
  4. 尝试 curl 到 pod IP(从第 1 步开始): curl -v -m5 http://<Pod IP>:80

第 4 步对我来说失败了,但是,我能够在我的机器上成功地 运行 docker 容器并连接。问题是我以本地主机而不是 0.0.0.0 打开连接。