Google容器引擎负载均衡器如何与复制控制器交互?

时间:2016-02-03 23:21:07

标签: google-app-engine load-balancing

我已通读了谷歌容器引擎和负载均衡器文档。

我所理解的:

  • 我可以将常见的pod封装到一个复制控制器中
  • 我可以非常轻松地将网络负载平衡添加到我的容器引擎应用

鉴于我在nginx反向代理后面有各种服务。

我想说的是:这是我在nginx背后的一套服务。请将它们推送到每个节点并将nginx连接到负载均衡器。因此,当一个节点发生故障时,它可以服务于其他节点,依此类推。

问题:

  1. 我是否正确了解负载均衡器和复制控制器的概念?

  2. 如果是,我是否认为只有应用程序的前端部分进入复制控制器,而非副本服务(例如postgres数据库或redis缓存)被推入服务?

  3. 我该如何设置?我没有在文档中找到实际将负载均衡器连接到容器入口点的点。

  4. 总的来说,我对这些概念有点新意,可能会遇到基础问题。

1 个答案:

答案 0 :(得分:1)

我不能在你的第一个问题背后提出你的想法。我就是这样看的:

  • 负载均衡器仅用于向外部开放服务,在您的情况下为您的nginx pod设置公共IP。以下是其工作原理(也是问题3的答案):https://cloud.google.com/container-engine/docs/load-balancer

  • 复制控制器用于使您始终为相关的pod运行正确数量的pod。因此,在这种情况下,使任何pod无限运行的最佳方法。要回答你的问题2.我会说你的所有pod都运行了一个关联的复制控制器,包括postgres db和redis,只是为了确保你总是运行它们的实例。

  • 该服务可让您轻松地在内部"内部进行沟通。 pods,如果复制了相关的pod,它还具有某种内部负载平衡功能。在您的情况下,您的db和redis pod(每个由复制控制器控制)确实也必须由服务管理,以使它们可用于您的nginx pod。

如果你想要一个完整的"堆栈的例子"我会建议这个链接:https://cloud.google.com/container-engine/docs/tutorials/guestbook即使它非常简单,你也可以得到所有这些背后的主要观点。