IAP连接器未将请求路由到本地 “上游没有健康”

问题描述

我正在尝试为我的后端服务设置身份识别代理,该服务的一部分位于GCP内,其他位于本地,根据以下链接中的说明 Enabling IAP for on-premises appsOverview of IAP for on-premises apps

之后,按照指南,我最终处于局部状态,可以通过IAP完美访问在https端点上服务于GCP的服务。但是,无法通过pods *和外部loadbalancer *访问在本地运行的应用程序。

遵循的当前架构:

enter image description here

已执行的步骤

在GCP项目上

  • 在我的情况下(asia-southeast1)在任何具有一个子网的区域中创建了VPC网络

  • 使用过的IAP连接器https://github.com/GoogleCloudPlatform/iap-connector

  • 为2个域配置了映射。

    For app in GCP

  • 源:gcp.domain.com

  • 目的地:app1.domain.com(位于https端点)

    For app in on-prem(Another GCP project)

  • 源:onprem.domain.com

  • 目的地:app2.domain.com(位于https端点,但不暴露于Internet)

  • 在两个项目之间配置了VPN隧道,以便网络被对等

  • 为部署创建的负载均衡器启用了IAP。

  • 添加了相应的帐户,以允许访问具有IAP Web用户角色的服务。

On-prem

  • 在具有一个子网(asia-southeast1)的区域中创建VPC网络

  • 在该区域的VPC上创建的VM

  • 将该虚拟机分配给实例组

  • 创建了内部Https负载均衡器并选择了实例组作为后端

  • 带有ssl的安全负载均衡器http

  • 设置到第一个项目的VPN隧道

我尝试了什么?

  • 登录到Pod并ping通其他Pod。所有豆荚都可以到达。
  • 登录节点并在端口80和443上ping通远程VM都是可以的。
  • 从容器内部
  • ping远程VM。无法访问。

预期行为

  • 用户向app1.domain.com上的loadbalancer请求,IAP通过IAuth对用户进行身份验证和授权,并授予对Webapp的访问权限。
  • 用户向app2.domain.com上的loadbalancer请求,IAP通过IAuth对用户进行身份验证和授权,并授予对在本地运行的Webapp的访问权限。

实际行为

  • 对app1.domain.com的请求会在验证网站后返回给用户提示OAuth屏幕。
  • 对app2.domain.com的请求在对浏览器进行身份验证后返回OAuth屏幕,返回503-“上游没有健康状况”

注意:

  • 我正在使用一个单独的GCP项目来模拟内部部署。
  • 两个项目都通过VPN隧道对等。
  • 两个对等项目的子网都在同一区域。
  • 我在内部部署项目中使用了内部https负载平衡器,以使我的VM在宿主项目中可见,以便外部负载平衡器可以将请求路由到VM的https端点。

**我怀疑如果pod能够访问远程VM,那么问题也可能会得到解决。这只是一个疯狂的猜测。

非常感谢你们。我期待着您的答复。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...