我目前正在使用名为dcos
的DC / OS默认虚拟网络在覆盖网络中部署Marathon应用程序。
此外,经过大量搜索,我设法找出了如何使用此1论坛讨论部署在覆盖网络中运行Marathon任务的Docker容器。
以下是我为WSO2 Identity Server定义的示例Marathon应用程序:
{
"id": "wso2is-analytics",
"container": {
"type": "DOCKER",
"docker": {
"image": "wso2is-analytics:5.4.1",
"portMappings": [
{ "protocol": "tcp",
"hostPort": 0,
"labels": {
"VIP_0": "/wso2is-analytics:9764"
},
"containerPort": 9764,
"servicePort": 9764
},
{ "protocol": "tcp",
"hostPort": 0,
"labels": {
"VIP_0": "/wso2is-analytics:9444"
},
"containerPort": 9444,
"servicePort": 9444
},
{ "protocol": "tcp",
"hostPort": 0,
"labels": {
"VIP_0": "/wso2is-analytics:7612"
},
"containerPort": 7612,
"servicePort": 7612
},
{ "protocol": "tcp",
"hostPort": 0,
"labels": {
"VIP_0": "/wso2is-analytics:7712"
},
"containerPort": 7712,
"servicePort": 7712
}
],
"forcePullImage": false
},
"volumes": [
{
"containerPath": "/home/wso2carbon/volumes/",
"hostPath": "/volumes/wso2/identity-server-analytics/",
"mode": "RW"
}
]
},
"env": {
"CLUSTERING_ENABLED": "false"
},
"instances": 1,
"cpus": 2,
"mem": 2048,
"healthChecks": [
{
"gracePeriodSeconds": 200,
"portIndex": 0,
"protocol": "TCP"
}
],
"labels":{
"HAPROXY_GROUP":"external"
},
"ipAddress": {
"networkName": "dcos"
}
}
目前,经过分析,确定在所有节点上设置了每个任务的唯一IP地址。
但是,在覆盖网络中部署时,定义的运行状况检查会不断失败。在覆盖网络外部部署时(使用Docker桥接网络),相同的运行状况检查成功通过。
如何解决此问题?对此事的任何帮助都非常感谢。