在 Azure 专用网络中通过应用程序网关入口访问 AKS 时出现 502 错误

问题描述 投票:0回答:1

我已在专用网络设置中配置了带有应用程序网关的 Azure Kubernetes 服务 (AKS)。为了促进它们之间的通信,我设置了一个应用程序网关入口控制器。不涉及公共 IP,因为所有内容都包含在专用网络内。除了从 AKS 到应用程序网关的对等互连之外,我还在 AKS 的虚拟网络 (VNet) 和应用程序网关之间建立了网络对等互连。

为了测试入口服务,我部署了 Pod,并在其中一个 Pod 中设置了入口组件,在配置中将私有 IP 设置标记为 true。我使用 Kubernetes 控制器执行此配置。部署后,后端池会自动添加到应用程序网关,表明入口控制器已运行并且 Pod 已成功运行。我已经通过测试确认了 Pod 的功能。

但是,当我尝试通过应用程序网关的私有 IP 访问该服务时,遇到 502 错误,提示应用程序网关无法与 AKS 通信。我已验证应用程序网关中的后端池已正确映射到 Pod 的入口。

我可以采取哪些步骤来诊断和解决此 502 错误?

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prd-pt-ui-app-ingress
  namespace: prd
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-path-prefix: "/"
    appgw.ingress.kubernetes.io/use-private-ip: "true"
spec:
  rules:
  - http:
      paths:
      - path: /*
        pathType: Prefix
        backend:
          service:
            name: prd-pt-ui-app-service
            port:
              number: 80

后端池:

健康探针:

azure kubernetes kubernetes-ingress azure-aks azure-application-gateway
1个回答
0
投票

如上一个屏幕截图所示,没有分配给池的健康后端,因此没有请求可以转发到池(即,您收到 502 错误)。

首先需要确保池中的健康检查成功(即返回200-399代码)。

© www.soinside.com 2019 - 2024. All rights reserved.