Google 后端服务的云 CDN、存储和容器引擎问题
Google cloud CDN, storage and container engine issue with backend-service
我有一个我似乎无法解决的特定用例。
典型的 gcloud 设置:
一个K8S集群
一个 gcloud 存储桶
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。
我有一个我似乎无法解决的特定用例。
典型的 gcloud 设置:
一个K8S集群
一个 gcloud 存储桶
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。