iptables规则导致pod无法连接kube-apiserver

前言 最近有一个k8s环境由于搬迁了机房,虽然IP没有变化但是通过后服务还是没有正常启动,于是上服务器检查 排查过程 1 首先查看k8s基础组件是否正常 etcd apiserver scheduler proxy controller-manager 都正常启动,日志也无报错 2 检查网络组件是否正常 coredns calico都未启动成功, 日志有报错连不上apiserver(clusterIP),重启calico发现无任何作用 3 检查calico配置无问题 4 通过其它已正常运行的Pod,发现在pod中确实无法连接apiserver的端口但可以ping通 5 在node上连接apiserver均正常 6 尝试重启服务器 --未解决 7 怀疑防火墙规则异常,尝试清理iptables规则并重启docker后,calico恢复正常,网络通信也正常 最终也是未找到具体影响的规则,建议当机房迁移后虽然IP没变化,还是清理一下防火墙规则 命令 # 清理完防火墙规则后记得重启docker sudo iptables -F sudo iptables

使用iptables进行端口转发

背景 由于项目需要在物理服务器(centos系统)上面安装KVM虚拟机后,使用的NAT模式,需要将虚拟机提供服务的端口进行映射出来 不想额外安装其他软件,所以干脆直接用Iptables进行转发 开启系统的转发功能 /etc/sysctl.conf文件 net.ipv4.ip_forward=1 iptables 命令 iptables -t nat -A PREROUTING -p tcp –dport [端口号] -j DNAT –to-destination [目标IP:目标端口] iptables -t nat -A POSTROUTING -p tcp -d [目标IP] –dport [目标端口] -j SNAT –to-source [本地服务器IP] iptables -t