DCOS 1.8 클러스터를 설치했으며 현재 익숙해지고 있습니다. 지금까지 Jenkins와 호스트 네트워킹을 통해 매력을 발휘하는 marathon-lb를 사용했습니다. 이제 오버레이를 사용하여 설정하려고합니다. 몇 가지 테스트 컨테이너가 있습니다. 일부는 dcos 오버레이 네트워크에 있지만 일부는 그렇지 않습니다. 지금까지 그들은 IP를 통해 서로 연결할 수 있습니다. 그러나 mesos-dns를 사용하여 오버레이 네트워크에서 컨테이너를 분석하려고하면 호스트 주소가 정확하게 해석됩니다.DCOS 중첩 네트워크 대비 서비스 발견
그래서 나는 마라톤으로 그걸 알아 내려고 놀았습니다.
{
"volumes": null,
"id": "/mariadb10",
"cmd": null,
"args": null,
"user": null,
"env": {
"MYSQL_ROOT_PASSWORD": "foo"
},
"instances": 1,
"cpus": 1,
"mem": 1024,
"disk": 0,
"gpus": 0,
"executor": null,
"constraints": null,
"fetch": null,
"storeUrls": null,
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600,
"container": {
"docker": {
"image": "mariadb:10.0",
"forcePullImage": false,
"privileged": false,
"network": "USER"
},
"type": "DOCKER",
"volumes": [
{
"containerPath": "/var/lib/mysql",
"hostPath": "/mnt/foo",
"mode": "RW"
}
]
},
"healthChecks": [
{
"protocol": "TCP",
"gracePeriodSeconds": 30,
"intervalSeconds": 10,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 3,
"port": 3306
}
],
"readinessChecks": null,
"dependencies": null,
"upgradeStrategy": {
"minimumHealthCapacity": 1,
"maximumOverCapacity": 1
},
"labels": null,
"acceptedResourceRoles": null,
"ipAddress": {
"networkName": "dcos",
"discovery": {
"ports": [
{ "number": 3306, "name": "mysql", "protocol": "tcp" }
]
}
},
"residency": null,
"secrets": null,
"taskKillGracePeriodSeconds": null
}
마라톤 "다리"또는 "사용자"네트워크에 허용되지 않는 날이 말한다 : 내가 한 일은 IPADDRESS에 발견 블록을 추가했다. 그러나 다음과 같은 불평 용기 실행되지 않은 : 재미 것입니다
{
"volumes": null,
"id": "/mariadb10",
"cmd": null,
"args": null,
"user": null,
"env": {
"MYSQL_ROOT_PASSWORD": "foo"
},
"instances": 1,
"cpus": 1,
"mem": 1024,
"disk": 0,
"gpus": 0,
"executor": null,
"constraints": null,
"fetch": null,
"storeUrls": null,
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600,
"container": {
"docker": {
"image": "mariadb:10.0",
"forcePullImage": false,
"privileged": false,
"network": "USER"
},
"type": "DOCKER",
"volumes": [
{
"containerPath": "/var/lib/mysql",
"hostPath": "/mnt/foo",
"mode": "RW"
}
]
},
"healthChecks": [
{
"protocol": "TCP",
"gracePeriodSeconds": 30,
"intervalSeconds": 10,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 3,
"port": 3306
}
],
"readinessChecks": null,
"dependencies": null,
"upgradeStrategy": {
"minimumHealthCapacity": 1,
"maximumOverCapacity": 1
},
"labels": null,
"acceptedResourceRoles": null,
"ipAddress": {
"networkName": "dcos"
},
"residency": null,
"secrets": null,
"taskKillGracePeriodSeconds": null
}
, 그것은 더 이상 오버레이 주소를 사용하지 않습니다,하지만 지금은 호스트 주소로 수신 또한 호스트가 오버레이 네트워크에 주소 발표 .
내가 잘못하고있는 것일까, 아니면 예상대로 작동하지 않는 것입니까?