美文网首页
配置flannel网络

配置flannel网络

作者: Robin92 | 来源:发表于2022-03-20 11:47 被阅读0次

节点内的容器跨节点通信ß需要网络插件,当前就用 flannel,需要在所有节点上安装。

安装 flannel

yum install flannel -y

配置

需要配置 ETCD 地址

# vim /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://172.16.156.128:2379" # 
FLANNEL_ETCD_PREFIX="/atomic.io/network" # flannel 用于查地址范围的前缀

创建key

注意key 字母大小写,由于我本地就是 172.16 所以这里用了 172.18

etcdctl set /atomic.io/network/config '{ "Network": "172.18.0.0/16" }'

启动

systemctl start flanneld.service
systemctl enable flanneld.service

此时,ifconfig 多了一块网卡

ifconfig查看

重启 docker 之后,docker 的网络和 flannel 的就一致了

截屏2022-03-14 下午10.28.06.png

配置另外两个节点

同样,配置一下另外两个 node 节点 :

  • 安装 flannel yum install flannel -y
  • 更改配置文件的 etcd 地址 172.16.156.128
  • 启动 flannel systemctl start flanneld.service
  • 重启 docker systemctl restart docker

错误调查

如果 flannel 配置文件的网段配错,启动 flannel 会一直 hang 住,可以通过 tail -f /var/log/message 看到错误信息。

截屏2022-03-14 下午10.32.34.png

跨主机测试容器互通性

测试镜像 busybox

这里用 busybox 镜像来测试

docker pull busybox # pull 镜像
docker run -it busybox # 运行并接入容器
ifconfig # 执行并查看当前容器内的地址,如 172.18.67.2, 172.18.98.2, 172.18.57.2
ping 172.18.57.2 # 在 172.18.67.2 容器内 ping 另一个容器。发现卡住不通
# (但起始我 ping 另一个能通)

修改 iptables 规则

查看 docker 版本,是 1.13.1 版本。ping 不通但原因是因为 docker 在1.13 之后将 iptables FORWARD 但规则默认改为 DROP 了,我们需要把它改为接受 ACCEPT 就好。

iptables -L -n # 查看规则,发现我 ping 通的机器是 ACCEPT 状态,而ping 不通的是 DROP 状态
iptables -P FORWARD ACCEPT # 修改 FORWARD 的规则为 ACCEPT
截屏2022-03-14 下午10.59.37.png 截屏2022-03-14 下午11.01.23.png

改后重新 ping,发现都可以ping通了。

固化 iptables 规则

如果像上方那样更改,断电后,iptables 会被重置,所以需要开机自动加。

解决方案:将其加到 docker 的启动路径下。

docker status docker # 查看其服务路径
截屏2022-03-14 下午11.12.00.png

编辑此文件,加入 ExecStartPost=/sbin/iptables -P FORWARD ACCEPT 命令,其中 ExecStartPost 是指服务启动后执行, /sbin/iptables 是通过 which iptables 找到的命令全路径命令。

截屏2022-03-14 下午11.18.33.png

想让其生效要执行 systemctl daemon-reload (不过重启自动生效,当前不用执行)

相关文章

网友评论

      本文标题:配置flannel网络

      本文链接:https://www.haomeiwen.com/subject/oucodrtx.html