kubernetes 防火墙问题的说明(引用)


不要这样去关闭防火墙 systemctl stop firewalld 或 systemctl disable firewalld,我们的部署过程中已经做了正确的防火墙规则设定,服务是必须开启的,只是设定为可信任模式,也就是放开所有访问策略,如果你需要设定严格的防火墙规则,请自行学习研究清楚firewall-cmd的用法。

详细注解: iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。对于RHEL/CentOS 7系列,我们推荐的做法就是删掉iptables服务启用firewalld服务,注意不是删掉iptables命令。然后用命令firewall-cmd --set-default-zone=trusted来“关闭”防火墙。这样docker和kubernetes运行时才不会出故障。 docker最终还是要调用iptables命令的,它不在乎你的系统底层究竟是iptables服务还是firewalld服务,总之要么转换成netfilter模块执行要么转换成nftables模块执行。我们的部署程序,在安装docker的环节中,已经为您的主机做了这样的设置。也就是防火墙服务是active的,但是policy是trusted,这样是最佳方法。

systemctl enable firewalld systemctl start firewalld firewall-cmd --set-default-zone=trusted firewall-cmd --complete-reload