Google 后端服务的云 CDN、存储和容器引擎问题

Google cloud CDN, storage and container engine issue with backend-service

我有一个我似乎无法解决的特定用例。

典型的 gcloud 设置:

我设法让我的域 https://cdn.foobar.com/uploads/ 毫无问题地指向 google 存储后端:我可以访问文件。它的后端服务失败了。

我希望 CDN 充当缓存,当 HTTP 请求命中它时,例如 https://cdn.foobar.com/assets/x.jpg,如果它没有资产的副本,它应该查询其他域https://foobar.com/assets/x.jpg.

我知道这就是负载均衡器 backend-service 的用途。 (对吗?)

backend-service指向k8s集群的实例组,需要端口。我 guessed 我需要允许防火墙公开我的 Web 应用程序服务的 Nodeport 以便负载均衡器能够查询它。

云CDN

负载均衡

健康检查失败。

后端服务指向k8s集群的实例组,需要一些端口(默认80?)80失败。我 guessed 我需要允许防火墙公开我的 Web 应用程序服务的 32231 Nodeport 以便负载均衡器能够查询它。仍然以 502 失败。

?> kubectl describe svc Name: backoffice-service Namespace: default Labels: app=backoffice Selector: app=backoffice Type: NodePort IP: 10.7.xxx.xxx Port: http 80/TCP NodePort: http 32231/TCP Endpoints: 10.4.x.x:8500,10.4.x.x:8500 Session Affinity: None No events.

我 运行 在这一点上没有想法。 任何正确方向的提示将不胜感激。

将服务部署为“NodePort”类型时,您在每个节点的 IP 上公开服务,但外部无法访问该服务,因此您需要将服务公开为 'LoadBalancer'

由于您希望使用 HTTP(s) 负载均衡器,我建议使用 Kubernetes Ingress resource。此资源将负责配置 HTTP(s) 负载平衡器和您的服务正在使用的所需端口,以及对指定端口的健康检查。

由于您正在保护您的应用程序,因此您需要配置 secret object for securing the Ingress

example 将帮助您开始使用带有 TLS 终止的 Ingress。