首页 文章

GKE的Google Cloud HTTP负载均衡器(第7层)

提问于
浏览
1

我在使用HTTP负载均衡器(第7层)和GKE中的服务时遇到问题 . 我最初使用LoadBalancer服务类型在GKE中公开了服务:

kubectl公开部署myservice --type =“LoadBalancer”

这将在同一区域中为我的群集创建一个公共IP地址,并且一直运行良好 . 我的目标是为我的服务使用支持SSL的全球IP地址 . 这是我尝试过的:

  • 将GKE服务公开为NodePort类型kubectl公开部署myservice --type =“NodeType”

  • 按照教程here创建入口对象 . 它不起作用,因为GKE中的服务已经在托管实例组中,并且入口对象将创建一个零实例的新实例组 . 我找到了一个讨论here .

  • 遵循讨论中的建议 . 删除到入口对象,并尝试从谷歌 Cloud 控制台手动设置HTTP负载均衡器 .

  • 添加了防火墙规则,允许在所有目标上的端口80和8081(我的服务端口)上使用130.211.0.0/22 .

  • 后端服务是由GKE创建的受管实例组 .

  • 在端口8081,路径/运行状况上创建了运行状况检查 . 它仍然不起作用,因为负载均衡器可以识别托管实例组中正确数量的实例,但是没有 Health 的节点 . 我的服务有一个 Health 检查 endpoints myservice:8081 / health,根路径"/"也返回HTTP 200 OK . 我玩 Health 检查配置,但负载均衡器永远找不到 Health 的节点 .

我错过了什么?

1 回答

  • 0

    事实证明,如果我想要遵循入口教程,我无法在同一 endpoints 上定义HTTP(S)负载均衡器 . 您可以选择按照教程并让入口对象自动定义LB,这在删除我的测试LB后对我有用,或者不使用入口并手动定义LB(我从未使用它) .

相关问题