上回书说到已经安装了docker,这会需要修改一下docker的内核参数来开启转发功能;
首先是br_netfilter,它的作用是将桥接的流量转发至iptables链,如果没有br_netfilter,则会出现同一node内前后pod间通讯的问题;此时,前后pod间的通讯会通过桥接形式传递导致数据没有返回,而配置net.bridge.bridge-nf-call-iptables=1,则是将桥接的通讯也去调用iptables策略;net.ipv4.ip_forward = 1的命令允许接口与接口间的转发,该配置是 Linux 内核将流量从容器路由到外部所必须的;
modprobe br_netfilter
此时可以看一下br_netfilter状态;
lsmod |grep br_netfilter
vim /etc/sysctl.d/docker.conf
:wq保持以后,使配置生效:
sysctl -p /etc/sysctl.d/docker.conf
vim /etc/rc.sysinit
#! /bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[-x $file] && $file
done
创建 br_netfilter.modules文件
vim /etc/sysconfig/modules/br_netfilter.modules
modprobe br_netfilter
重启一下看看,是生效的;
systemctl daemon-reload && sudo systemctl restart docker
我是chililopp,正在学习k8s,之后如果有新的总结或者体验也会发出来,如果有说的不对的地方,还请指点,十分感谢阅读!