谷歌云CDN,存储和容器引擎问题与后端服务

cou*_*lix 5 cdn gcloud google-kubernetes-engine

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

一个典型的gcloud设置:

  • 一个K8S集群

  • 一个gcloud存储桶

  • 一个gcloud负载均衡器

我设法让我的域名https://cdn.foobar.com/uploads/指向谷歌存储后端没有任何问题:我可以访问文件.它的后端服务失败了.

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

我明白这就是负载平衡器backend-service的用途.(对?)

backend-service所指向的实例组K8S簇的,并且需要一个端口.我guessed需要允许防火墙公开Nodeport我的web应用程序服务,以便loadbalancer能够查询它.

云CDN

在此输入图像描述

在此输入图像描述

负载均衡

健康检查失败.

在此输入图像描述

后端服务指向k8s群集的实例组,并且需要一些端口(默认80?)80失败.我guessed需要允许防火墙公开Nodeport我的web应用程序服务的32231 ,以便loadbalancer能够查询它.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.

在此输入图像描述

我此时已经没想完了.任何正确方向的提示都将非常感激.

Mar*_*ilu 1

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

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

由于您要保护您的应用程序,因此您需要配置一个秘密对象来保护 Ingress

示例将帮助您开始使用 TLS 终止的 Ingress。