我尝试将marathon-lb部署到我在群集中的公共代理上创建的Mesos角色。我的自定义角色在群集中可见,但是当marathon-lb部署到我的角色时,它最终会等待。
我对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"
}
}
顺便说一句,我这样做是因为我想在我的集群中进行两次marathon-lb部署。两个LB都需要外部访问,但是一个代理高吞吐量应用程序,需要相应扩展,另一个将用于各种低带宽应用程序。
也许有更好的方法来实现这些目标,但创建一个单独的Mesos角色,可供配置了特定haproxy组的marathon-lb对我来说显而易见。
答案 0 :(得分:1)
感谢大家的建议。我了解到我的marathon-lb没有部署,因为默认情况下dc / os运行的马拉松集群只接受来自' *'和' slave_public'作用。
我需要启动另一个马拉松实例,mesos_role
设置为" slave_public_tools"使这项工作。