mesos 容器映射端口限制
介绍
mesos 在启动容器的时候,理念是容器内的端都映射到宿主的随机端口。
在容器的时代,其实这样的理念是很好,当容器多的时候,固定端口肯定是有一定的局限性的。可以通过注册中心、mesos-dns、marathon-lb等服务来找到你要的服务地址和端口。
但是有时候有一些服务需要一些固定端口。比如cadvisor、还有我们自己写的容器,可能会映射一些其他端口。
默认端口限制
默认mesos的端口也是可以指定的,只是范围比较小。
1 | 31000 - 32000 |
marahotn 的json 文件中,你可以写。
1 | "portMappings": [ |
docker 启动时候就是
1 | [root@test00 ~]# docker ps |
配置mesos
yum 安装的meoss 添加配置
1 | echo "ports(*):[1024-65534]" > /etc/mesos-slave/resources |
重启 mesos-slave 服务
1 | systemctl restart mesos-slave |
二进制安装的mesos 在启动命令中添加
1 | --resources=ports(*):[1024-65534] |
这样你的端口就是在 1024 - 65524 中间随意指定了。
测试
marathon json文件
1 | "portMappings": [ |
docker 启动时候是
1 | [root@test00 ~]# docker ps |
Q&A
如果mesos上运行过容器,在你修改配置文件之后重启会有问题。
1 | 你可以通过 |
解决方法: 日志中会有提示
1 | To remedy this do as follows: |
rm -f /home/mtime/mesos/meta/slaves/latest
删除之后在重启即可。