Azure AKS外部负载均衡器未连接到POD

时间:2020-08-15 07:55:39

标签: azure kubernetes

我正在尝试为一个简单的演示创建一个多容器容器。我有一个在Docker容器中构建的应用程序。有3个容器

1-Redis服务器 1-节点/表达微服务 2-节点/表达/反应前端

所有3个容器均已成功部署并正在运行。 我创建了一个公共负载平衡器,该平衡器正在运行,没有任何错误。

我无法从公共IP连接到前端。

我也在前端容器中运行了tcpdump,没有流量进入。

这是我的yaml文件,用于创建部署和服务

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mydemoapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydemoapp
  template:
    metadata:
      labels:
        app: mydemoapp
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: microservices-web
        image: mydemocr.azurecr.io/microservices_web:v1
        ports:
        - containerPort: 3001
      - name: redislabs-rejson
        image: mydemocr.azurecr.io/redislabs-rejson:v1
        ports:
        - containerPort: 6379
      - name: mydemoappwebtest
        image: mydemocr.azurecr.io/jsonformwebtest:v1
        ports:
        - containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: mydemoappservice
spec:
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000
  selector:
    app: mydemoapp

这是我的服务描述:

Name:                     mydemoappservice
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"mydemoappservice","namespace":"default"},"spec":{"ports":[{"p...
Selector:                 app=mydemoapp
Type:                     LoadBalancer
IP:                       10.0.104.159
LoadBalancer Ingress:     20.49.172.10
Port:                     <unset>  80/TCP
TargetPort:               3000/TCP
NodePort:                 <unset>  31990/TCP
Endpoints:                10.244.0.17:3000
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  EnsuringLoadBalancer  24m   service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   24m   service-controller  Ensured load balancer

另一个怪异之处是,当我从前端运行docker容器时,我可以得到一个shell并运行curl localhost:3000并获得一些输出,但是当我在az容器中进行操作时,经过一些操作后,我会得到以下响应延迟

curl: (52) Empty reply from server

关于为什么这个容器可以在我的机器上而不是在天蓝色的情况下工作,这是另一个谜团。

1 个答案:

答案 0 :(得分:0)

从文档here引用起,容器需要侦听0.0.0.0而不是127.0.0.1,因为

在端口内部的默认0.0.0.0地址上侦听的任何端口 容器可以从网络访问