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

coredns处于错误状态或者pending状态

查看iptables的策略

iptables -nL

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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐