让我们假设EC2实例的私有IP为10.0.0.1 我已经按照本教程创建了dcos群集
https://dcos-e2e.readthedocs.io/en/latest/dcos-docker-cli.html
使用以下命令
dcos-docker create /tmp/dcos_generate_config.sh \
--masters 1 \
--agents 2 \
--public-agents 1 \
--cluster-id dspg --wait-for-dcos \
--one-master-host-port-map 80:80
它将创建1个主要的2个私人代理和1个公共代理,然后添加了marathon-lb来公开该应用程序。然后添加了一个简单的rest微服务。 它创建了4个ip范围为172.0.0.1至172.0.0.4的docker机器 问题在于,我只能使用curl将aws机器上的url访问到公共代理,并获取其余服务的输出。
curl http://172.0.0.1:3000/test
其中3000是在马拉松json中配置的hostPort
即使我无法使用EC2实例privatee ip进行卷曲
1. curl http://10.0.0.1:3000/test
端口3000拒绝连接
curl http://10.0.0.1:10000/test
其中10000是在马拉松json中配置的servicePort 还尝试通过浏览器使用EC2公共IP。
如何公开此端口或通过浏览器访问的方式是什么?
服务马拉松json
{
"id": "/test",
"container": {
"type": "DOCKER",
"docker": {
"image": "testrepository/test",
"forcePullImage": true,
"privileged": false,
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 9292,
"protocol": "tcp",
"hostPort": 3000,
"servicePort": 10000,
"labels": {},
"name": "test80"
}
]
}
},
"instances": 1,
"cpus": 1,
"acceptedResourceRoles": ["slave_public"],
"mem": 512
}