教程 - 负载均衡

DC/OS 101 教程第 8 部分

IMPORTANT: Tutorials are intended to give you hands-on experience working with a limited set of DC/OS features with no implied or explicit warranty of any kind. None of the information provided—including sample scripts, commands, or applications—is officially supported by Mesosphere. You should not use this information in a production environment without independent testing and validation.

欢迎阅读 DC/OS 101 教程第 8 部分。

先决条件

目的

在本部分中,您将您的应用程序扩展到多个实例,并了解内部和外部服务在应用程序扩展后如何选择使用的实例。

步骤

负载均衡器决定应用程序内部或外部服务应使用的实例。使用 DC/OS,您有两种不同的内置负载均衡器选项:

  1. Marathon-LB
  2. 命名 VIP

您已经在服务发现的上下文中探讨了这些负载均衡机制,并且在之前的教程中,您使用 Marathon-LB 公开了 app2。现在让我们再深入探讨一下。

  • 首先,将 app2 扩展为两个实例:

    dcos marathon app update /dcos-101/app2 instances=2

  • Marathon-LB

    • 像以前一样通过 http://<public-node>10000 检查 app2。重复执行此操作时,您应该看到 app2 的不同实例所提供的请求。
    • 您还也可以通过 http://<public-node>:9090/haproxy?stats 检查 Marathon-LB
  • 命名 VIP

    • 通过 SSH 连接到主导管理节点:dcos node ssh --master-proxy --leader

    • 使用 curl 从应用程序中获取原始 HTML 输出:

      curl dcos-101app2.marathon.l4lb.thisdcos.directory:10000

      重复执行此操作时,您应该看到不同实例所提供的请求。

  • 将 app2 减少到一个实例:

    dcos marathon app update /dcos-101/app2 instances=1

结果

您使用 Marathon-LB 和 VIP 对应用程序的两个不同实例进行负载均衡请求。

深入研究

选择负载均衡机制时,请考虑这些功能和优点。

  • Marathon-LB 是主要用于外部请求的第 7 层负载均衡器。它基于知名的 HAProxy 负载均衡器,并使用 Marathon 的事件总线实时更新其配置。作为第 7 层负载均衡器,它支持基于会话的功能,如 HTTP 粘滞会话和零停机部署。
  • 命名 VIP 是用于内部 TCP 流量的第 4 层负载均衡器机制。由于它们与内核紧密集成,因此它们提供负载均衡的 IP 地址,可以在群集中的任何位置使用。