创建/usr/lib/systemd/system/flanneld.service文件
[Unit]Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service[Service]Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
EnvironmentFile=-/etc/sysconfig/docker-network
#ExecStart=/usr/bin/flanneld-start $FLANNEL_OPTIONS
ExecStart=/usr/bin/flanneld-start -etcd-endpoints=http://192.168.2.150:2379,http://192.168.2.151:2379 - iface=ens33
#ExecStart=/usr/bin/flanneld-start -etcd-endpoints=http://192.168.2.150:2379,http://192.168.2.151:2379 -etcd- prefix=/kube-centos/network
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
Restart=on-failure[Install]WantedBy=multi-user.target
RequiredBy=docker.service启动systemctl start flanneld
flannled启动后会生产/run/flannel/subnet.env文件
修改docker启动参数配置加上:
EnvironmentFile=/run/flannel/subnet.env
--bip=${FLANNEL_SUBNET} --ip-masq=${FLANNEL_IPMASQ} --mtu=${FLANNEL_MTU}重启docker,此时docker将使用flanneld配置的网段为container分配ip;
在两个节点分别启动容器:docker run -it –rm busybox sh
查看其中一个主机节点的容器IP,ping另一个主机节点IP
查看其中一个主机节点的容器IP,ping另一个主机节点IP
此时已可联通;
注意iptables配置是否正确;
您可能感兴趣的文章:Docker容器跨主机通信中直接路由方式详解










