在Kubernetes节点上重新启动后删除iptables规则
手动添加一些iptables规则并重新启动计算机后,所有规则都将消失(无论规则类型如何) 前 重新启动后:在Kubernetes节点上重新启动后删除iptables规则,kubernetes,iptables,weave,kube-proxy,Kubernetes,Iptables,Weave,Kube Proxy,手动添加一些iptables规则并重新启动计算机后,所有规则都将消失(无论规则类型如何) 前 重新启动后: $ iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- anywhere anywhere
如果我没有弄错的话,在每个节点上运行的
kube代理
正在动态修改iptables
。如果这是正确的,我如何添加永久性的规则,但仍然使kubernetes/kube代理发挥神奇的作用,而不是删除所有的输入
,FORWARD
和OUTPUT
Kubernetes和Weave plugin network动态生成的规则?在任何系统上运行iptables
不是一个持久的操作,在重新启动时会被遗忘,k8s节点也不例外。我怀疑k8s在启动时是否会删除IPTABLES规则,因此您可以尝试以下方法:
- 创建规则(从空iptables开始,根据需要使用
命令)iptables-A
- 运行
(注意,您也可以手动创建规则文件)iptables save>/etc/my iptables rules
- 创建一个在启动时运行的系统服务脚本(或使用
),并添加/etc/rc.local
iptables restore-n这是在启动时运行服务/启动脚本的好方法,可以解决部分问题,但因为k8s动态创建规则,所以每当我重新启动时,静态规则集的顺序都会改变(即使我使用
)设置了规则。我不知道何时启动脚本并确保某些k8s规则已经应用。这可能与kube proxy有关。我已经发布了指向上述评论的内容,因为最初的问题已经得到了回答。-I
$ iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes externally-visible service portals */ KUBE-FIREWALL all -- anywhere anywhere