【问题标题】:AKS - combine addon HTTP application routing with nginx rewrite rule?AKS - 将插件 HTTP 应用程序路由与 nginx 重写规则相结合?
【发布时间】:2021-02-08 15:05:02
【问题描述】:

我正在使用 Azure AKS 插件进行 HTTP 应用程序路由,如 here 所述。我使用 Terraform 部署它,它通常可以工作:

resource "kubernetes_ingress" "ingress" {
  metadata {
    name      = "nurse-ingress"
    namespace = kubernetes_namespace.nurse.metadata[0].name
    annotations = {
      "kubernetes.io/ingress.class" = "addon-http-application-routing"
      "nginx.ingress.kubernetes.io/rewrite-target" = "/$1"
    }
  }

  wait_for_load_balancer = true

  spec {
    backend {
      service_name = "nurse-service"
      service_port = 80
    }

    rule {
      host = "nurseapp.${azurerm_kubernetes_cluster.main.addon_profile[0].http_application_routing[0].http_application_routing_zone_name}"
      http {
        path {
          backend {
            service_name = kubernetes_service.app.metadata[0].name
            service_port = 80
          }

          path = "/app/(.*)"
        }

        path {
          backend {
            service_name = kubernetes_service.nurse.metadata[0].name
            service_port = 80
          }

          path = "/nurse/(.*)"
        }
      }
    }
  }
}

但是,它仅适用于默认后端(即 path=/)。当我在 /nurse 或 /app 上调用 URL 时,它不起作用,因为重写目标 /$1 似乎没有被考虑在内。我只会得到一个 404 - 因为护士服务本身确实希望调用 /foo 而不是 /nurse/foo

这是否可以配置为开始,如果可以,知道我的错误在哪里吗?

【问题讨论】:

    标签: azure nginx kubernetes kubernetes-ingress azure-aks


    【解决方案1】:

    以下将重写路径,以便/sample/suffix的请求将被重写为/suffix

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: sample-ingress
      annotations:
        kubernetes.io/ingress.class: addon-http-application-routing
        nginx.ingress.kubernetes.io/rewrite-target: $2
    spec:
      rules:
      - host: sample.YOUR-ID.westeurope.aksapp.io
        http:
          paths:
          - path: /sample/
            pathType: Prefix
            backend:
              service:
                name: sample
                port:
                  number: 80
    

    【讨论】:

    • 我花了一段时间才弄清楚。顺便说一句,我在 1.19.6
    猜你喜欢
    • 2021-08-04
    • 2022-07-28
    • 2016-02-10
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2014-10-24
    • 1970-01-01
    相关资源
    最近更新 更多