Docker篇 (三) 跨宿主机的网络通信

1、前言

Docker默认的网络环境下,单台主机上的Docker容器可以通过docker0网桥直接通信,而不同主机上的Docker容器之间只能通过在主机上做端口映射进行通信。这种端口映射方式对很多集群应用来说很不方便,如果能让处于不同宿主机上的Docker容器之间直接使用自己的IP地址进行通信,会解决很多问题。

2、环境准备

准备2台服务器,在VMware中安装CentOS,网络适配器选择“桥接模式”

设置网络的IP Address、Netmask和Gateway

 

也可以等安装完成后再修改IP地址

文件

手动配置

/etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.1.17

GATEWAY=192.168.1.1

NETMASK=255.255.255.0

/etc/resolv.conf

nameserver 202.96.128.86

nameserver 202.96.134.33

安装完成后,有2台服务器192.168.1.17和192.168.1.18。 

服务器

安装的应用

192.168.1.17

etcd, flannel, docker

192.168.1.18

flannel, docker

3、192.168.1.17的配置

3.1 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

3.2 安装etcd

yum install etcd -y

#修改配置文件
vim /etc/etcd/etcd.conf 

配置文件中修改的内容

ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
改为
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
改为
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"

启动etcd 

#启动etcd
systemctl start etcd.service
#设置开机运行etcd
systemctl enable etcd.service

查看etcd的启动状态

[root@localhost ~]# ps -ef | grep etcd
etcd       1758      1  1 02:55 ?        00:00:03 /usr/bin/etcd --name=default --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://0.0.0.0:2379

[root@localhost ~]# netstat -tunlp | grep etcd
tcp        0      0 127.0.0.1:2380          0.0.0.0:*               LISTEN      1758/etcd           
tcp6       0      0 :::2379                 :::*                    LISTEN      1758/etcd 

配置etcd网络

[root@localhost ~]# etcdctl mk /atomic.io/network/config '{ "Network": "10.28.0.0/16" }'
{ "Network": "10.28.0.0/16" }

#如果需要更换网段,可以先删除rm,再配置mk新的网段
etcdctl rm /atomic.io/network/config

3.3 安装flannel

yum install flannel -y

# 修改配置文件
vim /etc/sysconfig/fl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值