空降助手
- Kubernetes集群部署踩坑记录
- kubelet cgroup driver: "systemd" is different from docker cgroup driver:
- 场景复现
- 问题排查
- 解决方案
- 1. 修改docker的Cgroup Driver步骤
- 2. 修改kubelet的Cgroup Driver步骤
- k8s-node1 NotReady
- 场景复现
- 问题排查
- 解决方案
- token过期,加入集群失败
- 场景复现
- 问题排查
- 解决方案
- Nameserver limits exceeded
- 场景复现
- 问题排查
- 解决方案
部署的时候遇到了问题,顺便记录一下
场景复现
init主节点的时候失败,报错信息:
问题排查
根据提示查kubelet日志,报错信息是:
很明显可以看出,kubelet启动失败,原因是kubelet cgroup驱动程序“ cgroupfs”与docker cgroup驱动程序不一致。
这是一个很重要的坑,docker的cgroup必须与kubelet一致!!!
解决方案
既然是保持Cgroup Driver配置一致,那就是有两种改法,一种是让docker与kubelet一致,另一种是让kubelet与docker一致。
首先回滚init操作,《Kubernetes集群部署实录》这篇里有讲,不再赘述,然后就是修改配置,以下两种任选其一(或者说看选哪种能生效吧)
1. 修改docker的Cgroup Driver步骤
- 编辑文件,加入exec-opts配置,改成这样:
- 重启docker
2. 修改kubelet的Cgroup Driver步骤
- 编辑文件,增加配置,改成这样:
- 重启kubelet
kubelet与docker的cgroup-driver配置一致后,再重新初始化master节点,即可解决该问题。
场景复现
node1节点加入集群后,在master上一直显示NotReady:
问题排查
查看kubelet日志,发现kubelet停了
解决方案
需要重置一下node节点的kubelet,先删除 node节点上的文件夹,然后重启kubelet
重新执行加入集群命令,即可解决
场景复现
token过期时,会报错token无响应:
问题排查
k8s的token默认有效期是24小时,过期需要手动重新生成
解决方案
在master上重新生成token
未记录的token也可以在master上重新找回,参考命令:
场景复现
node加入集群时遇到一个报错,显示:“Nameserver limits exceeded” err=“Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 223.5.5.5 223.6.6.6 202.99.96.68”
问题排查
意思应该是 nameserver 超出限制,超出的被忽略,去对应的node节点查看:
果然超过了3条记录
解决方案
随便删掉两条nameserver,重启docker:
再去master上查看节点,已经正常
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/14050.html