当前位置: 首页 > 知识库问答 >
问题:

GKE:身份感知代理>L7负载平衡器>自定义主机和路径规则>错误代码11

秦经义
2023-03-14

我正在使用GKE身份感知代理

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/抛出您的请求有问题。错误代码11

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

环境:

>

云提供商或硬件配置:GKE

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

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

共有1个答案

齐典
2023-03-14

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

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

截至目前,GCP不支持不同路径的不同clientId,IAP正在努力跨电子商务服务使用单个clientId。目前,如果您可以验证clientId,如果它们不同,则将其更改为单个clientId,那么这就行了。

建议的方法是设置NGINX代理。ingress IAP只需要处理一个服务,而不是两个,它将像一个魔咒一样工作。

 类似资料:
  • 如何在L7上的GKE上为GRPC服务进行负载平衡(通过HTTP/2 TLS进行入口)? 我知道我可以选择使用L4(TCP层)来配置具有“LoadBalancer”类型的服务。但是我想知道我是否可以通过HTTP/2 TLS使用入口L7负载平衡。 我还看到“GKE不支持HTTP/2到后端”(打开https://cloud.google.com/load-balancing/docs/backend-s

  • tcp_proxy_server 主要是为需要负载均衡的场景准备的。 它既能做四层tcp负载均衡,也能作七层http负载均衡。内置负载均衡算法为轮询法。 HTTP 七层负载均衡 来看一个http反向代理的例子: #include <unistd.h> #include <sys/wait.h> #include <sys/signal.h> #include <sys/prctl.h> #in

  • 我需要一些nginx负载平衡方面的帮助。我有一个docker实例,它服务于一个静态网页,它有两个容器,比如说192.168。1.1:8081 - 当我输入这些IP地址192.168.1.1时,这些IP必须服务于我的两个站点之间的负载。 在我的Nginx中,我必须为此设置两个文件 Nginx。conf,在这些文件中,我必须包含我的默认值。conf文件。违约conf文件包含以下信息。 当我键入192.

  • 我在GKE上有两个kubernetes集群:一个是处理与外部世界交互的公共集群,另一个是仅供内部使用的私有集群。 公共集群需要访问私有集群上的一些服务,我已经通过内部负载平衡器向公共集群的pod公开了这些服务。目前,我正在为负载平衡器指定要使用的内部IP地址,并将这些IP传递给公共POD,但我更希望负载平衡器可以选择任何可用的内部IP地址,并且我可以将其DNS名称传递给公共POD。 内部负载均衡器

  • 我有一个Django应用程序,使用Apache和mod\u wsgi在AWS ELB平衡器后面的EC2实例上运行。平衡器将SSL流量(端口443)映射到EC2实例上的端口8080。Apache在端口8080上配置了一个VirtualHost来服务Django应用程序,服务器名设置为网站的域名。Django以生产模式(DEBUG=False)运行,并公开一个healtcheckendpoint(at

  • 有一个入口配置,比如 gke创建了nginx ingress负载平衡器,但也创建了另一个具有后端的负载平衡器,就像如果没有选择nginx,而是选择gcp作为ingress一样。 下面的屏幕截图以红色显示了两个意外的LB,蓝色显示了两个nginx ingress LB,分别用于我们的qa和prod env。 kubectl的输出获取服务 gcp gke服务视图中错误信息入口的屏幕截图 这是意料之中的