访问网关 IP 时出现 AKS BAD 网关 502 错误

时间:2021-06-10 05:58:23

标签: azure kubernetes azure-devops azure-aks

我正在研究一个新想法,为此我在 Azure Kubernetes 上创建了如下设置:

  1. 1 个集群
  2. 所述集群中有 1 个节点池
  3. 1 个部署,在池中创建 2 个 pod
  4. 1 个负载均衡器服务平衡 2 个 Pod 之间的请求

我正在尝试使用 AKS IP 从集群外部向负载均衡器提交 json 请求,但我遇到了 502 错误网关问题。

这是我的部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-1
spec:
  selector:
    matchLabels:
      app: deployment-1
  replicas: 2
  template:
    metadata:
      labels:
        app: deployment-1
    spec:
      containers:
      - name: api-1
        image: dummy
        imagePullPolicy: Always
        ports:
          - containerPort: 5000
      nodeSelector:
        agentpool: analytics1

---
apiVersion: v1
kind: Service
metadata:
  name: service-1
  annotations:
    service.beta.kubernetes.io/azure-dns-label-name: dummy
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
  - port: 5000
  selector:
    app: deployment-1

检查服务是否正在运行。

LAMU02Y36ZHJG5J% kubectl get svc
NAME                TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
cloud-api-v4-svc    LoadBalancer   10.0.63.65    10.240.0.5    80:30054/TCP     37d
kubernetes          ClusterIP      10.0.0.1      <none>        443/TCP          47d
service-1           LoadBalancer   10.0.55.129   10.240.0.9    5000:30507/TCP   41h

我使用这个 LoadBalancer IP (10.240.0.9) 来创建一个入口服务,如下所示。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-1
  annotations:
    kubernetes.io/ingress.class: addon-http-application-routing
spec:
  rules:
    - host: service-1.a3333fc09cb44a6b86b8.eastus.aksapp.io
    - http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: service-1
              port:
                number: 5000

这是在创建入口之后。

LAMU02Y36ZHJG5J% kubectl get ingress
NAME         CLASS    HOSTS                                               ADDRESS      PORTS   AGE
ingress-1   <none>   service-1.a333fc09cb44a6b86b8.eastus.aksapp.io   20.84.1.20   80      65m

所以我认为一切都很好,然后我继续创建我的 AKS 应用程序网关,以便可以从任何 IP 访问它。我为 AKS 应用程序网关指定的内容。 后端池 IP - 20.84.1.20 端口 80(这是入口 IP。我不确定这是否是我出错的地方)

配置后,现在当我尝试按原样访问应用程序网关 IP 时,出现 502 Bad Gateway 错误。我对 AKS 很陌生

1 个答案:

答案 0 :(得分:1)

我在您的 Ingress 中没有看到以下注释..

你可以添加它们并尝试吗?

appgw.ingress.kubernetes.io/use-private-ip: "false" 
kubernetes.io/ingress.class: azure/application-gateway

您可以在此处查看 Troubleshoot common questions or issues with Ingress Controller 中的更多详细信息。