我想为我的网络应用程序设置一个具有自动缩放功能的负载均衡器 . 我不确定我是否理解它的工作方式和与我的实例交互的细节 .

我目前正在Google Cloud上托管,并且正在使用此tutorial作为如何设置一个的参考 . 我想在我的所有实例中使用CoreOS作为我的首选操作系统 .

下面的图表将有助于更好地解释我的问题 .
lb exmaple

据我所知,负载均衡器包含一个IP地址作为Internet上客户端访问我的应用程序的访问点 . 在他们请求IP之后,负载均衡器根据多种因素(如网络位置,HTTP(S)流量负载等)确定要为其提供服务的实例 .

我感到困惑的一点是我的应用应该在哪里生活?我应该在我的所有服务器上分发我的应用程序吗?它是如何从根本上完成的?

我提到我正在使用CoreOS . CoreOS有Docker . 理想的设置是Dockerize我的应用程序,将其打包并将其分布在我的服务器中,以便它们可以保持一致吗?

对于自动扩展部分,我计划让负载均衡器将流量分配给自动扩展组内的服务器 . 为了让我的应用程序出现在新扩展的实例上,我将不得不包含某种启动脚本(cloud-config),以便让我的应用程序的最新docker镜像能够正确提供,是吗?

最后,我认为在下图中设置一个设置对我来说是最理想的,可以让我学到更多知识并拓宽我的经验,同时也让我能够让我的应用程序尽可能健壮且易于访问 .

enter image description here

有关这方面的一些问题是:

对于我想要实现的目标,设置HAProxy是绝对必要的吗?

此digram显示为后端提供服务的实例正在通过内部IP'与负载均衡器进行通信 . 一般来说,负载均衡是否需要内部IP?或者他们只是帮助保护不需要公开的内容?

对于此图,我假设只需要在具有外部IP的前端服务器上加载SSL证书,那么我如何为没有't have a means of use for internal IP'的负载均衡器提供证书?


是否认为这很复杂?它比我想的更简单吗?

总而言之,我只想学习并利用这些方法,这样我就可以创建一个可靠的应用程序,可以快速,轻松地为任何人服务,而不会出现大多数问题 .

如果我需要澄清更多信息请告诉我,我会尽力帮助 . 如果有什么我应该知道的,请告诉我 . 最重要的是,如果我对路线有任何建议,请告诉我!

任何帮助或反馈都是 greatly 赞赏!