0

我正在使用 GKE Identity-aware proxy > L7 load balancer > Custom host and path rules。它适用于根路径。但它不适用于自定义路径。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "my-static-ip"
spec:
  rules:
  - host: my.custom.org
    http:
      paths:
      - path: /v1/*
        backend:
          serviceName: webv1
          servicePort: 8080
      - path: /v3/*
        backend:
          serviceName: webv3
          servicePort: 8080
      - path: /nginx/*
        backend:
          serviceName: nginx
          servicePort: 80
      - path: /*
        backend:
          serviceName: nginx
          servicePort: 80

路径//nginx/工作正常。/v2//v3/抛出There was a problem with your request. Error code 11

如果我禁用 IAP,一切正常。

环境

  • Kubernetes版本(使用kubectl version):1.12.7-gke.17

  • 云提供商或硬件配置:GKE

使用 Ingress @ https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer设置 HTTP 负载平衡

为 GKE 启用 Cloud IAP @ https://cloud.google.com/iap/docs/enabling-kubernetes-howto

4

1 回答 1

0

此错误代码 11 与 OAuth 客户端 ID 1的错误配置有关。

我看到你失败的那个正在使用不同的服务端口。如果您从两个不同的后端提供以下 2 个 URL,则两者都可能启用了 IAP,但配置了不同的 clientId。

从 GCP 开始,不支持不同路径的不同 clientId,IAP 正在努力跨 b/e 服务使用单个 clientId。现在,如果您可以验证 clientId,并在它们不同时将其更改为单个,那将起作用。

推荐的方法是设置 NGINX 代理。Ingress + IAP 只需要处理一项服务而不是两项服务,而且它的工作方式非常有魅力。


于 2019-05-28T12:51:36.087 回答