【问题标题】:DC/OS 1.9 VIP load balancing not working for advertised portsDC/OS 1.9 VIP 负载平衡不适用于广告端口
【发布时间】:2017-12-01 18:07:44
【问题描述】:

当我使用 VIP 发布服务时,通告的地址无法正确路由到通告的端口。例如,对于 MariaDB Galera 3 节点集群服务,VIP 指定为:

      "labels": {
        "VIP_0": "/mariadb-galera:3306"
      }

在服务页面的配置选项卡上(根据文档),负载均衡地址是:

mariadb-galera.marathon.l4lb.thisdcos.directory:3306

我可以 ping 通 DNS 名称,但是...

当我尝试连接一个前端服务(Drupal7、wordpress)来使用这个负载均衡的地址:端口组合时,会出现大量的连接失败和超时。并不是说它永远不会起作用,而是它非常零星地起作用,如果有的话。 Drupal7 几乎立即死亡并开始引发 Bad Gateway 错误。

我通过实验发现,如果我为有问题的服务指定一个 hostPort,只要我使用 hostPort 值,负载平衡地址就可以工作,而不是广告负载均衡服务端口如上。在这种特定情况下,我指定了 3310 的 hostPort

  "network":"USER",
  "portMappings": [
    {
      "containerPort": 3306,
      "hostPort": 3310,
      "servicePort": 10000,
      "name": "mariadb-galera",
      "labels": {
        "VIP_0": "/mariadb-galera:3306"
      }
    }

然后,如果我在 Drupal7 settings.php 中使用负载平衡地址 (mariadb-galera.marathon.l4lb.thisdcos.directory) 和主机端口值 (3310),前端连接并正常工作。

我注意到在 DC/OS 环境中连接到 mongodb 后端的自定义应用程序也有类似的行为......似乎指定的负载平衡地址/端口组合永远不会可靠地工作......但是如果您替换 hostPort 值,确实如此。

文档明确指出:

地址和端口作为一对而不是单独进行负载平衡。

(来自https://docs.mesosphere.com/1.9/networking/dns-overview/

但是,当我指定 VIP 指定端口时,我无法有效连接。然而,当我使用 hostPort 时它确实有效(除非我在服务定义 json 中指定一个特定的 hostPort,否则它根本不起作用)。根据文档中的措辞,这种方法是否实际上是负载平衡的仍然是一个问题。

我一定是做错了什么,但我不知所措……感谢您的帮助。

我的集群节点是 VMWare 虚拟机。

【问题讨论】:

  • 老实说,这比通过 CLI 更容易通过仪表板完成。

标签: dns marathon dcos


【解决方案1】:

VIP 标签不应以斜杠开头:

"container": {
  "portMappings": [
    {
      "containerPort": 3306,
      "name": "mariadb-galera",
      "labels": {
        "VIP_0": "mariadb-galera:3306"
      }
    }
}

在这种情况下应以<VIP label>.marathon.l4lb.thisdcos.directory:<VIP port> 的形式提供:

mariadb-galera.marathon.l4lb.thisdcos.directory:3306

您可以使用nc 对其进行测试:

nc -z -w5 mariadb-galera.marathon.l4lb.thisdcos.directory 3306; echo $?

该命令应返回0

当您不确定导出的 DNS 名称时,您可以从任何 DC/OS 节点列出所有这些名称:

curl -s http://198.51.100.1:63053/v1/records | grep mariadb-galera

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2016-05-16
    • 2011-09-20
    • 1970-01-01
    • 2012-12-12
    • 2021-08-13
    相关资源
    最近更新 更多