在我们大规模使用node时,各个node节点间是需要通讯的,需要跨docker通讯的
yum install -y flannel
vim /etc/sysconfig/flanneld,修改连接etcd所在服务器ip
并在k8s-master上设置
etcdctl set /atomic.io/network/config '{"Network":"172.16.0.0/16"}'
etcdctl set /atomic.io/network/config '{ "Network":"172.16.0.0/16" }'
systemctl start flanneld.service
systemctl enable flanneld.service
systemctl restart docker
#查看网卡,发现flanneld 的ip与docker的ip变成了同一个网段,说明flannel启动正常
ifconfig
如果docker和flannel的网段不一致,则修改如下
vim /usr/lib/systemd/system/docker.service
[Service]
Type=notify
EnvironmentFile=/run/flannel/subnet.env
ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS
并执行如下命令,再对比ip是否一致了
source /run/flannel/subnet.env
systemctl restart flanneld
systemctl daemon-reload
systemctl restart docker
查看日志
node节点分别启动flannel服务和重启docker服务
#node节点启动服务
systemctl start flanneld
systemctl enable flanneld
systemctl restart docker
iptables -L -n
iptables -P FORWARD ACCEPT
将iptables配置加入docker启动命令里,防止下次服务器重启需要重新配置
vim /usr/lib/systemd/system/docker.service
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT
至此,全部配置完成。