今天突然发现k8s的dashboard很卡,进到master节点,用top命令查看,发现如下信息:

  • cpu使用率很高,主要是si(软中断)占用了80%
  • iptables命令是占用cpu最高的

于是用iptables -L命令查看iptables规则,发现提示另一个app锁住了iptables。
于是用iptables -L -w命令等待一段时间后,发现疯狂刷iptables规则,于是得出结论:

  • 有一个程序在一直往iptables里写东西

    由于安装k8s集群的时候清空了iptables规则,也没有注意到底哪一步设置了iptables规则,所以毫无头绪,只好把k8s重新部署一遍(顺便升级到1.10.0)

重新部署后发现问题所在:

  • 在node节点部署kubelet时,配置了systemd unit文件,里面有添加iptables规则,且设置了如果启动失败每5秒尝试重启一次。
  • 于是当kubelet启动失败时,它就重启一次,然后加几条iptables规则,于是就一直写下去
  • 我第一次部署的时候估计在master节点安装了kubelet,但是启动没有成功,当时也没在意,导致问题出现
  • 重新部署后该问题解决
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐