GKE

时间:2016-11-28 17:19:52

标签: kubernetes google-cloud-platform

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

kubectl公开部署myservice --type =" LoadBalancer"

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

  1. 将GKE服务公开为NodePort类型 kubectl公开部署myservice --type =“NodeType”
  2. 按照教程here创建入口对象。它不起作用,因为GKE中的服务已经在托管实例组中,并且入口对象将创建一个零实例的新实例组。我找到了一个讨论here
  3. 遵循讨论中的建议。删除到入口对象,并尝试从谷歌云控制台手动设置HTTP负载均衡器。
    • 添加了防火墙规则,允许在所有目标上的端口80和8081(我的服务端口)上使用130.211.0.0/22。
    • 后端服务是由GKE创建的受管实例组。
    • 在端口8081上创建了运行状况检查,路径/运行状况。 它仍然不起作用,因为负载均衡器可以识别托管实例组中正确数量的实例,但健康节点为零。我的服务有一个健康检查端点myservice:8081 / health和root path" /"也返回HTTP 200 OK。我使用了运行状况检查配置,但负载均衡器永远找不到健康的节点。
  4. 我错过了什么?

1 个答案:

答案 0 :(得分:0)

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