gpt4 book ai didi

azure - AKS Ingress-Nginx 入口 Controller 无法按主机路由

转载 作者:行者123 更新时间:2023-12-02 06:14:56 24 4
gpt4 key购买 nike

我正在 Azure Kubernetes 服务上配置 ingress-nginx 负载均衡器。我已经使用 Helm 安装了负载均衡器,并设置了入口。这是我遇到的行为:

  • 当我在入口配置的路径规则中包含主机时,我无法访问该主机 URL 上的服务。请求超时
  • 当我的路径规则中未包含主机时,我可以毫无问题地访问该主机网址上的服务
  • 无论主机是否包含在路径规则中,当我从集群中的任何 Pod 进行 CURL 操作时,我都可以成功访问主机 URL 上的服务。
  • Nslookup 成功解析了我计算机上的主机

我试图弄清楚为什么当主机包含在我的入口配置中时我无法访问我的服务。有任何想法吗?技术细节如下。

请注意,当前配置仅指向一项服务,但最终需要通过主机进行过滤 - 我计划通过此负载均衡器运行具有不同域的多个服务。

入口 Controller 配置:

helm install --replace ingress-nginx ingress-nginx/ingress-nginx \
--create-namespace \
--namespace $NAMESPACE \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=127.0.0.1 \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"=$DNS_LABEL \
--set controller.service.loadBalancerIP=$IP \

入口配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
ingressClassName: nginx
tls:
- hosts:
- my.host.com
secretName: tls-secret
rules:
- host: my.host.com //Removing this item makes the service reachable
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: xrcfrontend
port:
number: 80

这是我正在运行的curl 命令。在 Pod 内部运行时返回正确结果,在外部运行时超时。

curl https://my.host.com --insecure

最佳答案

如果您使用的是 AKS v>=1.24,请尝试在 nginx 入口 Controller 安装期间或在 nginx 入口中添加以下带有路径 /healthz 的注释,而不是 127.0.0.1 Controller 服务并使用基于主机的路由和 nginx 入口路由 -

service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path"=/healthz

如果以上有帮助的话为什么之前无法与主机配合使用?

  • 因为 LB 的后端池由于入口 Controller 的运行状况探测路径错误而变得不健康。入口路由仅接受特定主机名的流量,因此入口 Controller 服务 (Azure LB) 的运行状况探测失败,因为/或 http 协议(protocol)的 127.0.0.1 返回 404。

有关更改的 Github 讨论 - https://github.com/Azure/AKS/issues/2903#issuecomment-1115720970

有关安装的更多详细信息 - https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli#basic-configuration

关于azure - AKS Ingress-Nginx 入口 Controller 无法按主机路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75247903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com