docker网络flannel的安装配置测试

1.flannel为了避免ip重复分配,使用etcd解决冲突,目前测试,使用单机版etcd

2.  etcdctl --endpoints http://10.1.13.13:2379 set /coreos.com/network/config '{"Network": "10.0.0.0/16", "SubnetLen": 24, "SubnetMin": "10.0.1.0","SubnetMax": "10.0.20.0", "Backend": {"Type": "vxlan"}}'

Network: 用于指定Flannel地址池, 整个overlay网络为10.0.0.0/16网段

SubnetLen: 用于指定分配给单个宿主机的docker0ip段的子网掩码的长度
SubnetMin: 用于指定最小能够分配的ip

SudbnetMax: 用于指定最大能够分配的ip段,在上面的示例中,表示每个宿主机可以分配一个24位掩码长度的子网,可以分配的子网从10.0.1.0/2410.0.20.0/24,也就意味着在这个网段中,最多只能有20台宿主机Backend: 用于指定数据包以什么方式

Backend: 用于指定数据包以什么方式转发,默认为udp模式, 这里使用的是vxlan模式

3. 安装flannel:

1)关闭docker:

systemctl stop docker

2)下载/启动flanel:

cd  /root/flanel;

 wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz;

tar -zxvf flannel-v0.11.0-linux-amd64.tar.gz 

cp flanneld mk-docker-opts.sh /usr/local/bin/

/usr/local/bin/flanneld --etcd-endpoints="http://10.1.13.13:2379"

4. 启动后可以看到多了一个flannel.1设备,地址是10.0.12.0,并且它的mac地址已经存到了etcd中:

docker网络flannel的安装配置测试_第1张图片

etcd分配了一个子网10.0.12.0/24, 所以该宿主机上的docker网络就使用该网段. 所以需要去配置docker0的配置. flannel也提供了修改docker0的网络配置方法, 就是修改docker的启动命令指定网络

5.

启动flannel后,会自动生成 /run/flannel/subnet.env  这个文件

vim /run/flannel/subnet.env 

FLANNEL_NETWORK=10.0.0.0/16

FLANNEL_SUBNET=10.0.12.1/24

FLANNEL_MTU=1450

FLANNEL_IPMASQ=false

6.

vim /run/docker_opts.env

根据flannel生成的配置文件,来更高docker的配置

DOCKER_OPTS=" --bip=10.0.12.1/24 --ip-masq=true --mtu=1450"

 

7.vim /lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd $DOCKER_OPTS

8.

docker网络flannel的安装配置测试_第2张图片

9.验证:

ping

 

你可能感兴趣的:(docker)