【问题标题】:How does google container engines load balancer interact with replication controllers?谷歌容器引擎负载均衡器如何与复制控制器交互?
【发布时间】:2016-05-13 09:30:22
【问题描述】:

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

我的理解:

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

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

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

问题:

  1. 我是否正确理解该上下文中的负载平衡器和复制控制器的概念?

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

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

总的来说,我对这些概念有点陌生,可能会在基础知识方面遇到困难。

【问题讨论】:

    标签: google-app-engine load-balancing


    【解决方案1】:

    我真的不明白你的第一个问题背后的想法。我是这样看的:

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

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

    • 该服务使“内部”pod 之间的通信变得容易,并且如果关联的 pod 被复制,它还具有某种内部负载平衡。在您的情况下,您的 db 和 redis pod(每个都由复制控制器控制)确实必须由服务管理,以使它们可用于您的 nginx pod。

    如果您想要一个完整的“堆栈”运行示例,我建议您使用此链接:https://cloud.google.com/container-engine/docs/tutorials/guestbook,即使它非常简单,您也可以了解这一切背后的主要思想。

    【讨论】:

    • 我的意思是:我如何真正获得“负载平衡”,如果我有一个公共 ip 的服务并且这个服务有两个副本,kubernetes 会自动开始在它们之间进行负载平衡吗?
    • 如果你看这个链接:cloud.google.com/container-engine/docs/load-balancerTraffic is sent to nodes in the cluster in round-robin order.
    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 2017-01-16
    • 2021-12-04
    • 1970-01-01
    • 2013-01-25
    • 2019-08-05
    • 2015-05-02
    • 2014-10-02
    相关资源
    最近更新 更多