我正在尝试将marathon-lb部署到我在集群中的公共代理上创建的Mesos角色。我的自定义角色在群集中可见,但是当马拉松-lb部署到我的角色时,它最终会永远等待。部署到自定义Mesos角色的任务永久等待
我不方便与Mesos找出部署等待什么。我查看了主/代理日志,但没有任何内容跳出相关。任何指针在这方面的赞赏。
主设备未配置为将任何特定角色列入白名单(通过--roles
),所以我应该能够为集群引入任意角色。事实上,主人可以看到"slave_public_tools"
作用:
[[email protected] ~]$ 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
}
]
}
如果它的事项,我通过在代理首次启动时间前的公共代理/var/lib/dcos/mesos-slave-common
设置MESOS_DEFAULT_ROLE=slave_public_tools
创建"slave_public_tools"
作用。该mesos剂似乎认识到默认角色设置和作用具有资源:
[[email protected] ~]$ 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"
}
]
}
部署马拉松磅时,我用下面的options.json:
{
"marathon-lb":{
"name":"marathon-lb-tools",
"haproxy-group":"public-tools",
"bind-http-https":true,
"role":"slave_public_tools"
}
}
通过我的方式这样做是因为我想在集群中进行两次马拉松式lb部署。两个LB都需要从外部访问,但其中一个将代理高吞吐量应用程序,并需要相应扩展,另一个将用于各种低带宽应用程序。
也许有更好的方法来实现这些目标,但创建一个单独的Mesos角色,可用于配置了特定haproxy组的marathon-lb,对我来说似乎很明显。
如果您运行此两个不同的代理程序,您可以使用主机名约束将Marathon-lb实例固定到特定代理程序 – Tobi
您是否有日志表单计划程序?应该有信息为什么没有开始任务。 – janisz