azure - 无法访问 AKS 上 LoadBalancer 类型的 Kubernetes 服务

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

我正在使用 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 上 curl 应用程序。仍在浏览http://52.149.106.85:80超时

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

还有什么可能是错误的吗?

最佳答案

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

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

关于azure - 无法访问 AKS 上 LoadBalancer 类型的 Kubernetes 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63569024/

相关文章:

azure - 如何使用 Azure 函数 Cosmos DB 触发器更新集合中的文档?

kubernetes - 使用 nginx 入口 Controller 的 minikube Kubernetes 集群上没有入口地址

dictionary - 将map [string] [] string转换为yaml结构

java - 由于 "Invalid tag"错误,无法构造 java 对象

azure - 我可以设置一个警报,以便在函数应用中更新配置时通知我吗?

python - 将 Python 包导入 Azure 自动化引擎时使用哪个平台

sql - 从默认 getdate() azure sql 中减去 6 小时

postgresql - 如何使用 uid :gid set correctly 在 openshift 中挂载 secret

kubernetes - Helm 套件选项(--set)|更新数组的第 N 个键值

python - 如何从 vcrpy 二进制响应字符串中提取未压缩的文本?