centos8部署kubernetes集群时节点的iptables的FOWARD总为DROP
引言
在部署k8s+docker集群时,发现coredns容器总是pending状态,经过查阅资料发现是由于docker的iptables策略导致的容器间无法通讯,即使修改好了iptables的FORWORD策略为ACCEPT,但是重启后docker还是会将iptables的FORWORD修改为DROP,本文主要解决docker的iptables策略问题
查看coredns状态
kubectl get pods -n kube-system
查看iptables的策略
iptables -nL
如果FORWORD 策略为DROP说明你需要修改这个问题
修改docker配置文件
我的docker版本是18.03.01.ce,在机器重启时docker会自动设置FORWORD策略为DROP,我尝试使用修改/etc/rc.local配置文件执行 iptables -P FORWORD ACCEPT 命令发现机器重启后iptables的FORWORD还是DROP,后来查阅资料得知需要修改以下文件
vim /lib/systemd/system/docker.service
在[Service]标签下加入如下参数
ExecStartPost=/sbin/iptables -P FORWARD ACCEPT
使配置生效
systemctl daemon-reload
systemctl restart docker
如果没问题的话重启就会ok