1写在前面
- 学习 K8s 中 kube-proxy 组件调用相关,iptables 模式 发现调用链有些特殊
- 怀疑是 iptables 版本太旧的问题,所以升级一下试试
- 关于升级是否有必要,
nftables
都出来好久了,这里不做考虑哈 - 理解不足小伙伴帮忙指正
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
这里需要一提的是 ,k8s
集群使用 Calico
在旧版本的 iptables
中有些链的规则不能正常显示,但是并不影响规则。
低版本不能正常显示
代码语言:javascript复制-A KUBE-SEP-OLNIRCQFCXAN5USW -p tcp -m comment --comment "velero/minio:console" -m tcp -j DNAT --to-destination :0 --persistent --to-destination :0 --persistent --to-destination 0.0.0.0:0
高版本可以正常显示
代码语言:javascript复制-A KUBE-SEP-OLNIRCQFCXAN5USW -p tcp -m comment --comment "velero/minio:console" -m tcp -j DNAT --to-destination 10.244.169.89:9090
当前系统环境版本
代码语言:javascript复制┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$hostnamectl
Static hostname: vms100.liruilongs.github.io
Icon name: computer-vm
Chassis: vm
Machine ID: e93ae3f6cb354f3ba509eeb73568087e
Boot ID: 3276184063244f00bc6efff60ef31879
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 5.4.230-1.el7.elrepo.x86_64
Architecture: x86-64
┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$
下载二进制包位置
https://www.netfilter.org/projects/iptables
代码语言:javascript复制┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$wget --no-check-certificate https://www.netfilter.org/projects/iptables/files/iptables-1.8.7.tar.bz2
安装解压工具
代码语言:javascript复制┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$yum -y install bzip2
解压二进制安装包
代码语言:javascript复制┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$bunzip2 iptables-1.8.7.tar.bz2
┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$tar -xvf iptables-1.8.7.tar
nftables
一起升级有些其他的包不支持,好像需要同步升级,所以这里我直接把 nftables
排除调
┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$./configure --disable-nftables
┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$ls
aclocal.m4 build-aux config.h config.log configure COPYING extensions INCOMPATIBILITIES iptables libipq libtool m4 Makefile.am stamp-h1 xlate-test.py
autogen.sh COMMIT_NOTES config.h.in config.status configure.ac etc include INSTALL iptables-test.py libiptc libxtables Makefile Makefile.in utils
┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$make
代码语言:javascript复制┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$make install
这里发现升级完并没有,生效,还是原来的版本
代码语言:javascript复制┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$iptables -V
iptables v1.4.21
重启机器后发现变成了升级后的版本,这里应该不需要重启,可以考虑重新登录或者 source
一下
┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$iptables -V
iptables v1.8.7 (legacy)
2博文部分内容参考
© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知
https://www.netfilter.org/projects/iptables