为什么后端端口会自动更改为 GCP 负载平衡器上的相同端口?

Why are backend ports automatically changing to be the same on a GCP load balancer?

我在 GCP 上有一个集群,上面有多个部署。 部署通过 NodePort 服务公开。 我正在设置一个 HTTP(S) 负载平衡器,目的是从前端路由到后端服务,一个域到一个部署。

问题是,当我保存负载均衡器时,我定义的后端服务突然都指向同一个端口。这导致两个定义的域指向相同的服务。

https://i.imgur.com/q2tfbFY.png 这是它的设置方式,有两个后端服务。

https://i.imgur.com/sBaRsdd.png 这就是定义主机和路径规则的方式。

https://i.imgur.com/JGt7aco.png 当编辑 "first-backend-service" 中的 "Port numbers" 并保存负载均衡器时, "second-backend-service" 中的端口号将更改为与定义的相同在 "first-backend-service".

我试过使用两个负载平衡器,每个服务一个,结果相同。

您可能为所有后端服务使用同一个命名端口。实例组自带默认Named port。由于您使用的是同名端口,因此当您更改它时,它会恢复到配置的端口。

您可以配置自定义命名端口并将其映射到所需端口,方法是选择 实例组-->详情-->编辑组 使用 'add item' 您可以根据需要添加端口名称和端口号,然后在后端服务中使用它。编辑 "Port name" 和 "Port numbers" 数字。

因此,对于您的场景,您可以在实例组中创建具有不同端口号的不同端口名称,并将每个端口应用于 backend services:

  • http1: 3000
  • http2:3001