HTTPS 负载均衡器在 Google Kubernetes 上公开工作负载

HTTPS Load Balancer to expose a Workload on Google Kubernetes

我创建了一个自定义 HTTPS LoadBalancer (details),我需要我的 Kubernetes Workload 与此 LoadBalancer 一起公开。现在,如果我向此端点发送请求,我会收到错误 502。

当我在 Workload 控制台页面中选择 Expose 选项时,只有 TCPUDP 服务类型可用,并且 TCP LoadBalancer 是自动创建的。

如何使用现有 LoadBalancer 公开 Kubernetes Workload?或者也许我什至不需要这样做,并且请求不起作用,因为我的实例是 "unhealthy"? (healthcheck)

您需要创建一个 kubernetes ingress。 首先,您需要从 k8s 公开部署,对于 https,选择 443 端口,服务类型可以是:LoadBalance(external ip) 或 ClusterIp。 (您也可以通过访问 ip 或通过端口转发来测试)。

然后你需要创建入口。

在选择后端时在 yaml 文件中,设置公开部署时配置的端口和服务名称。 例如:

- path: /some-route backend: serviceName: your-service-name servicePort: 443

在 gcp 上,当创建入口时,将为此创建一个负载平衡器。后端和实例组也将自动构建。 然后,如果你想使用已经创建的负载均衡器,你只需要 select 来自 ingress 创建的 lb 的后端服务并将它们添加到那里。

此外,负载均衡器只有在健康检查通过时才会工作。为此,您需要使用 return 和 200 HTTPS response 的路线。