我有一个我似乎无法解决的特定用例。
典型的gcloud设置:
K8S群集
gcloud存储桶
gcloud loadbalancer
我设法让我的域https://cdn.foobar.com/uploads/
指向谷歌存储后端没有任何问题:我可以访问文件。它的后端服务失败了。
我希望CDN
充当缓存,当HTTP请求到达https://cdn.foobar.com/assets/x.jpg
时,如果它没有资产副本,它应该查询其他域{{ 1}}。
我理解这是负载均衡器https://foobar.com/assets/x.jpg
的用途。 (右?)
backend-service
指向k8s群集的实例组,需要一个端口。我backend-service
我需要允许防火墙公开我的Web应用程序服务的guessed
,以便loadbalancer能够查询它。
健康检查失败。
后端服务指向k8s群集的实例组,并且需要一些端口(默认80?)80失败。我Nodeport
我需要允许防火墙公开我的web应用程序服务的32231 guessed
,以便负载均衡器能够查询它。那仍然是失败的502。
Nodeport
此时我的想法已经用尽了。 任何正确方向的提示都会非常感激。
答案 0 :(得分:2)
当您将服务部署为“NodePort”类型时,您将在每个节点的IP上公开该服务,但该服务无法访问外部,因此您需要将服务公开为“LoadBalancer”
由于您希望使用HTTP(s)Load Balancer,我建议您使用Kubernetes Ingress resource。此资源将负责配置HTTP(s)负载均衡器以及您的服务正在使用的所需端口,以及指定端口上的运行状况检查。
由于您要保护应用程序,因此需要为secret配置securing the Ingress对象。
此example将帮助您开始使用TLS终止的Ingress。