【问题标题】:Why only / path works in AKS with NGINX Ingress Controller为什么只有 / 路径在带有 NGINX 入口控制器的 AKS 中有效
【发布时间】:2022-10-24 15:26:21
【问题描述】:

我有一个干净的 Azure 订阅,并使用标准 SKU 和非常基本的设置(2 个 D2as_v4 节点,默认设置)创建了 AKS。像这样安装 NGINX:

helm install ingress-nginx ingress-nginx/ingress-nginx

然后放一个虚拟应用程序并通过 Ingress + ClusterIP 服务访问它:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ingress-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ingress-demo
  template:
    metadata:
      labels:
        app: ingress-demo
    spec:
      containers:
      - name: ingress-demo
        image: mcr.microsoft.com/azuredocs/aks-helloworld:v1
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: ingress-demo
spec:
  type: ClusterIP
  ports:
  - port: 80
  selector:
    app: ingress-demo
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: development-ingress
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: ingress-demo
            port: 
              number: 80

这个作品我可以访问分配给我的 Ingress 的公共 IP 上的虚拟应用程序。

问题:

我无法使用任何非默认路径配置访问我的应用程序。我得到Error: Request timed out 除了/ 之外的任何内容。此 Ingress 更改对我不起作用:

- path: /foo

使用正则表达式的相同问题:

annotations:
  nginx.ingress.kubernetes.io/rewrite-target: /$2
...
    - path: /dev(/|$)(.*)

更新

我已经尝试了GitHub issue mentioned by silent 中建议的多个修复程序。
使用以下选项使 /foo 路径工作:

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

但它仍然不适用于正则表达式。要使/dev(/|$)(.*) 之类的路径可操作,您需要更改 Azure 负载均衡器探测 from HTTP to TCP(保留端口)或使用此标志安装 NGINX 控制器:

--set controller.service.externalTrafficPolicy=Local

【问题讨论】:

    标签: azure kubernetes azure-aks nginx-ingress


    【解决方案1】:

    不太确定,但听起来您遇到了这个问题:https://github.com/Azure/AKS/issues/2903

    该解决方案已发布在此帖子中:https://github.com/Azure/AKS/issues/2903#issuecomment-1109758644

    【讨论】:

    • 有用。再次感谢! helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.service.externalTrafficPolicy=Local
    猜你喜欢
    • 2020-12-20
    • 2022-06-29
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2021-01-10
    • 2020-02-24
    • 2016-02-17
    • 2020-11-14
    相关资源
    最近更新 更多