无法在AKS上访问类型为LoadBalancer的kubernetes服务

时间:2020-08-24 21:36:39

标签: azure kubernetes yaml azure-aks azure-load-balancer

我正在创建带有ACR容器注册表的普通香草AKS集群并部署虚拟服务,这是我之前做过很多次的事情,应该可以正常工作,但事实并非如此-该服务的部署没有错误,我看到了吊舱并且该服务仍然有效,端口似乎匹配-但我无法访问在Pod中运行的应用。

这是我的YAML文件:

apiVersion: v1
kind: Service
metadata:
  name: dummyapp-prep
spec:
  selector:
    app: dummyapp-prep
  ports:
    - protocol: TCP
      port: 80
  type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dummyapp-prep
spec:
  selector:
    matchLabels:
      run: dummyapp-prep
  replicas: 1
  template:
    metadata:
      labels:
        run: dummyapp-prep
    spec:
      containers:
      - name: dummyapp-prep
        image: dummyappregistry.azurecr.io/dummyappregistry.azurecr.io/dummyapp-prep:dummyapp-prep-18
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: secret

一切都部署良好-我看到了该服务,并且它获得了一个外部IP:

kubectl get services
NAME            TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)        AGE
dummyapp-prep   LoadBalancer   10.0.230.4   52.149.106.85   80:32708/TCP   4m24s
kubernetes      ClusterIP      10.0.0.1     <none>          443/TCP        26h

pod很好,我连接到它并在localhost:80上卷曲应用程序。不过,浏览http://52.149.106.85:80超时

我检查Azure负载平衡器-IP已注册。

还有什么问题吗?

1 个答案:

答案 0 :(得分:3)

您应用了错误的标签。服务在寻找app: dummyapp-prep,而Pod和部署中有run: dummyapp-prep。请注意runapp标签名称。

您还可以通过检查API服务器通过运行kubectl describe endpoints dummyapp-prep为您创建的端点对象来检查服务是否绑定。如果未在Subsets部分中列出Pod IP,则意味着服务无法找到Pod。