我可以使用GCP HTTPS负载均衡器在存储桶后端和Kubernetes服务之间进行路由吗?

时间:2019-09-25 18:17:38

标签: kubernetes google-cloud-platform load-balancing

当我想在GCP上使用单个HTTPS负载均衡器以结合使用React前端和Express后端在存储桶中提供一些静态内容和动态内容时,我想了解我的负载均衡选项是什么Kubernetes。

其他信息:

  • 我在Google Domains之外注册了一个域名
  • 我想通过https提供所有内容
  • 我不是从大事开始。刚刚开始或多或少的业余爱好项目,在不久的将来将吸引很少的流量。
  • 我不介意提供我的反应前端,如果可以帮助简化操作,请从App Engine表达后端。但是,在这种情况下,我想了解我是否仍想在kubernetes上使用某些东西,我将能够在app引擎和kubernetes之间进行通信,而无需麻烦地使用内部IP。我将如何负载均衡流量!

任何可以指导我的公共领域的网络蓝图都会有所帮助。

我在NodePort / LoadBalancer / Ingress上做了很多阅读,这让我感到困惑。据我了解,LoadBalancer无法使用HTTP(S)流量,在TCP L4级别上运行更多,因此可能不适合我的用例。

Ingress提供了一个专用的负载均衡器,我无法在该负载均衡器上放置自己的路由到后端存储桶等,这意味着我可能至少需要两个负载均衡器?和两个IP?

NodePort在所有节点上公开一个端口,这意味着即使我的HTTPS负载平衡器路由可以以某种方式提供帮助,我也需要自己处理负载平衡。

任何指导/指针将不胜感激!

编辑:在研究时发现了有关网络端点组(NEG)的一些信息。看起来很有希望。会调查。关于采取这条路线有什么想法吗? https://cloud.google.com/kubernetes-engine/docs/how-to/standalone-neg

编辑:能够结合使用NEG和Nginx反向代理来完成此工作。

1 个答案:

答案 0 :(得分:0)

为了解决您的疑虑,请先开始:

  1. Choosing the right loadbalncer

    • 网络负载平衡器(第4层负载平衡或依赖于TCP / SSL协议的应用程序的代理),负载根据传入的IP协议数据(例如地址,端口和协议类型)转发到您的系统中。

        

      网络负载平衡器是直通负载平衡器,因此您的后端会收到原始的客户端请求。网络负载平衡器不执行任何传输层安全性(TLS)卸载或代理。流量直接路由到您的VM。   网络负载平衡器在适合您需要的区域中的后端终止TLS

    • HTTP负载均衡器是基于代理的区域性第7层负载均衡器,它使您能够在私有负载均衡IP地址后面运行和扩展服务,该IP地址只能在VPC中的负载均衡器区域中访问网络。

        

      HTTPS和SSL代理负载平衡器在全球分布的位置终止TLS 。   HTTP(S)负载平衡器充当客户端和应用程序之间的代理。如果您要接受来自客户端的HTTPS请求   您可以选择使用Google管理的SSL证书(测试版),也可以使用自己管理的证书。

           

      技术细节   创建Ingress对象时,GKE Ingress控制器会根据Ingress清单和关联的Service清单中的规则配置GCP HTTP(S)负载均衡器。客户端将请求发送到HTTP(S)负载平衡器。 负载均衡器是一个实际的代理;它选择一个节点并将请求转发到该节点的NodeIP:NodePort组合。该节点使用其iptables NAT表来选择Pod。 kube-proxy管理节点上的iptables规则。 路由流量将进入规则中指定服务的健康Pod

  2. 每个buckets文档:

      

    HTTP(S)负载平衡器可以将流量从指定的URL定向到后端存储桶或后端服务。   使用Loadbalncer时,铲斗应该是公共的-创建铲斗

  3. 在LoaBalancer设置期间,您可以选择后端服务和后端存储桶。您可以在docs中找到更多信息。

请同时查看这两个教程herehere的如何使用云存储构建应用程序。

希望获得帮助。

其他资源: Loadbalancers, Controllers