任务部署到自定义中间层角色永远等待

czfnxgou  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(322)

我正在尝试将marathonlb部署到我在集群中的公共代理上创建的mesos角色。我的自定义角色在集群中是可见的,但是当marathonlb部署到我的角色时,它将永远等待。
我对mesos还不够熟练,不知道部署在等什么。我查看了主/代理日志,但没有任何相关内容。在这方面的任何指示都是很感激的。
主机未配置为将任何特定角色(通过 --roles ),所以我应该能够将任意角色引入集群。的确,大师们可以看到 "slave_public_tools" 角色:

[centos@ip-10-0-1-25 ~]$ curl -s master.mesos:5050/roles | jq
{
  "roles": [
    {
      "frameworks": [
        "2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0002",
        "2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0001"
      ],
      "name": "*",
      "resources": {
        "cpus": 0,
        "disk": 0,
        "gpus": 0,
        "mem": 0
      },
      "weight": 1
    },
    {
      "frameworks": [
        "2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0000"
      ],
      "name": "slave_public",
      "resources": {
        "cpus": 0,
        "disk": 0,
        "gpus": 0,
        "mem": 0
      },
      "weight": 1
    },
    {
      "frameworks": [
        "2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0004",
        "2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0003"
      ],
      "name": "slave_public_tools",
      "resources": {
        "cpus": 0,
        "disk": 0,
        "gpus": 0,
        "mem": 0
      },
      "weight": 1
    }
  ]
}

如果有关系的话,我创造了 "slave_public_tools" 按设置的角色 MESOS_DEFAULT_ROLE=slave_public_tools/var/lib/dcos/mesos-slave-common 在代理第一次启动之前。mesos代理似乎识别默认的角色设置,并且该角色具有以下资源:

[centos@ip-10-0-1-25 ~]$ url -s 10.0.1.14:5051/state | jq '{ default_role : .flags.default_role }, .reserved_resources_full'
{
  "default_role": "slave_public_tools"
}
{
  "slave_public_tools": [
    {
      "name": "ports",
      "type": "RANGES",
      "ranges": {
        "range": [
          {
            "begin": 1,
            "end": 21
          },
          {
            "begin": 23,
            "end": 5050
          },
          {
            "begin": 5052,
            "end": 32000
          }
        ]
      },
      "role": "slave_public_tools"
    },
    {
      "name": "disk",
      "type": "SCALAR",
      "scalar": {
        "value": 51042
      },
      "role": "slave_public_tools",
      "disk": {
        "source": {
          "type": "MOUNT",
          "mount": {
            "root": "/dcos/volume0"
          }
        }
      }
    },
    {
      "name": "disk",
      "type": "SCALAR",
      "scalar": {
        "value": 51042
      },
      "role": "slave_public_tools"
    },
    {
      "name": "cpus",
      "type": "SCALAR",
      "scalar": {
        "value": 2
      },
      "role": "slave_public_tools"
    },
    {
      "name": "mem",
      "type": "SCALAR",
      "scalar": {
        "value": 6037
      },
      "role": "slave_public_tools"
    }
  ]
}

部署marathon lb时,我使用以下options.json:

{
  "marathon-lb":{
    "name":"marathon-lb-tools",
    "haproxy-group":"public-tools",
    "bind-http-https":true,
    "role":"slave_public_tools"
  }
}

顺便说一下,我这样做是因为我想在集群中部署两个新的部署。这两个位置都需要外部访问,但其中一个将代理高吞吐量应用程序,并需要相应地扩展,另一个将用于各种低带宽应用程序。
也许有更好的方法来实现这些目标,但是创建一个单独的mesos角色,这个角色对于配置了特定haproxy组的马拉松lb来说是显而易见的。

4c8rllxm

4c8rllxm1#

谢谢大家的建议。我了解到我的marathonlb没有部署,因为默认情况下,dc/os运行的marathon集群只接受来自'*'和'slave\u public'角色的请求。
我需要开始另一个马拉松的例子 mesos_role 设置为“slave\u public\u tools”使其工作。

相关问题