linux怎么查看本机内存大小
228
2022-10-31
docker在阿里云、aws、ESXi上如何跨宿主机互通
环境说明描述如下图1所示
图1
node01、node02为阿里云或AWS宿主机,同属1个VPC:172.28.0.0/16。
node01的docker0网段为172.17.0.0/24;
node02的docker0网段为172.18.0.0/24;
实现目标:node01与node02上docker容器实现跨宿主机网络互相访问。
实现步骤:
(1)、在阿里云或AWS安全组添加规则,允许docker0网段访问宿主机,即允许172.17.0.0/24和172.18.0.0/24访问宿主机内网段段(VPC:172.28.0.0/16)。
(2)、在阿里云或AWS路由表中手动添加路由。
阿里云是在控制台-->NAT网关-->路由表 进行操作,将172.17.0.0/16走instance(实例) node01的ens3;将172.18.0.0/16走instance(实例) node02的ens3,如图2所示,添加了node01的docker0,再添加node02的docker0。
图2
aws是在控制台-->服务-->VPC-->路由表,选中对应VPC,在下方的“路由”菜单中点“编辑路由” 进行操作,同理是将172.17.0.0/16走instance(实例) node01的ens3;将172.18.0.0/16走instance(实例) node02的ens3,如图3所示。
图3
图4
图5
(3)、在node01和node02上修改iptables配置,按上述设置后,相同vpc的ECS/EC2只能ping到宿主机的docker0,即docker容器的网关,但还无法访问到具体的容器。
ubuntu 16.04系统使用iptables-save命令保存当前iptables的配置到/etc/network/iptables.up.rules,然后再修改配置如下
# iptables-save > /etc/network/iptables.up.rules
# cat /etc/network/iptables.up.rules # Generated by iptables-save v1.6.0 on Sat Mar 16 16:47:22 2019*nat:PREROUTING ACCEPT [287:18748]:INPUT ACCEPT [224:13456]:OUTPUT ACCEPT [362:23448]:POSTROUTING ACCEPT [362:23448]:DOCKER - [0:0]-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE-A DOCKER -i docker0 -j RETURNCOMMIT# Completed on Sat Mar 16 16:47:22 2019# Generated by iptables-save v1.6.0 on Sat Mar 16 16:47:22 2019*filter:INPUT ACCEPT [7991:829858]:FORWARD ACCEPT [63:5292]:OUTPUT ACCEPT [7823:884204]:DOCKER - [0:0]:DOCKER-ISOLATION-STAGE-1 - [0:0]:DOCKER-ISOLATION-STAGE-2 - [0:0]:DOCKER-USER - [0:0]-A FORWARD -j DOCKER-USER-A FORWARD -j DOCKER-ISOLATION-STAGE-1-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -o docker0 -j DOCKER-A FORWARD -i docker0 ! -o docker0 -j ACCEPT-A FORWARD -i docker0 -o docker0 -j ACCEPT-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2-A DOCKER-ISOLATION-STAGE-1 -j RETURN-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j ACCEPT-A DOCKER-ISOLATION-STAGE-2 -j RETURN-A DOCKER-USER -j RETURNCOMMIT# Completed on Sat Mar 16 16:47:22 2019
最后保存使用iptables-apply使配置生效
# iptables-apply
或者
# iptables-restore /etc/network/iptables.up.rules
如果是Centos7.x系统,一般使用service命令(前提要先安装initscripts)保存当前iptables配置,然后再修改配置,注意保存的路径以及文件名是与ubuntu有差别的。
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
修改完iptables配置后使用service或systemctl重启使配置生效
# service iptables restart
或者
# systemctl restart iptables
完成上述配置后,在阿里云或者AWS不同宿主机间的docker容器就可以互通了。而在Esxi上我们仅需要在vSwitch0的属性中将“混杂模式”设置为“接受”即可,如图6、图7所示。
图6
图7
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~