问题背景
K8S
集群环境中有个容器化的组件A
需要在节点上创建iptables
规则实现请求转换,在centos 7
的操作系统上功能正常,但在redhat 8
的操作系统上发现该功能失效。具体来说,就是容器内iptables
命令执行后没有生效。
分析过程
业务组件A
的功能是基于iptables
命令的,查看当前容器内使用的iptables
版本:
1 | ~ # iptables -V |
查看使用的centos 7
宿主机上的iptables
版本:
1 | [root@node1 ~]# iptables -V |
对比redhat8.4
的环境,发现它提供的iptables
版本较高,且模式从默认的legacy
变成了nf_tables
:
1 | [root@node1 ~]# iptables -V |
从redhat
官方资料看[1],该模式无法修改,因为在制作rpm
包时删掉了legacy
模式依赖的二进制文件: