HTTPS 负载均衡器在 Google Kubernetes 上公开工作负载
HTTPS Load Balancer to expose a Workload on Google Kubernetes
我创建了一个自定义 HTTPS
LoadBalancer
(details),我需要我的 Kubernetes Workload
与此 LoadBalancer
一起公开。现在,如果我向此端点发送请求,我会收到错误 502。
当我在 Workload
控制台页面中选择 Expose
选项时,只有 TCP
和 UDP
服务类型可用,并且 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 的路线。
我创建了一个自定义 HTTPS
LoadBalancer
(details),我需要我的 Kubernetes Workload
与此 LoadBalancer
一起公开。现在,如果我向此端点发送请求,我会收到错误 502。
当我在 Workload
控制台页面中选择 Expose
选项时,只有 TCP
和 UDP
服务类型可用,并且 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 的路线。