繁体   English   中英

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

[英]Can't access kubernetes service of type LoadBalancer on AKS

我正在创建一个带有 ACR 容器注册表的普通 AKS 集群并部署一个虚拟服务,我以前做过很多次并且应该可以工作但它不是 - 服务部署没有错误,我看到了 pod 和服务还活着,端口似乎匹配 - 但我无法访问在 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 已注册。

还有什么问题?

您应用了错误的标签。 服务正在寻找app: dummyapp-prep而 pod 和部署已经run: dummyapp-prep 注意runapp标签名称。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM