请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

kubespray部署成功后,一重启虚拟机k8s集群就不能用了

老师好,这个问题我看问答区已经有别的同学遇到了,这个我现在也遇到了。

https://img1.sycdn.imooc.com//szimg/60fe66da090de95b09270085.jpg

我用的虚拟机是VMware,然后集群中所有节点的IP都是使用的静态IP,重启虚拟机后我也专门看了下,IP也都是没有变化的,然后内存啥的也都是足够的。

在master节点上看的话,kubelet一直在重启。

https://img1.sycdn.imooc.com//szimg/60fe6411091e4b6215990426.jpg


然后我这边用的也是docker,目前集群中的所有节点上使用docker ps命令查看正在运行的容器,发现都是只有etcd一个:

https://img1.sycdn.imooc.com//szimg/60fe645a097bd8ea10140092.jpg


这个是apiserver的日志:

https://img1.sycdn.imooc.com//szimg/60fe66a709ed23b616010593.jpg


然后如果查看kube-apiserverkube-scheduler的进程的话,所有的master节点上都是没有的。

https://img1.sycdn.imooc.com//szimg/60fe683a09c3bc8b07550114.jpg


如果通过journalctl -f|grep "kubelet"命令查看日志的话,是下面这样:

https://img1.sycdn.imooc.com//szimg/60fe69fe09dfa4bd15970864.jpg

正在回答 回答被采纳积分+3

2回答

刘果国 2021-07-29 08:58:37

查问题最基本的是日志,要看从启动开始第一行到挂掉重启的完整日志,可以发现绝大部分问题,问答区类似的问题大多解决了,较多的情况是重启后swap又开启了,也可以挂起虚拟机不重启

1 回复 有任何疑惑可以回复我~
  • 提问者 龙战GT #1
    我又重新装了一次k8s集群,然后再次关闭swap后重启kubelet还是不行,估计我这边也不是这个问题。然后我重启了下虚拟机,把kubelet从启动第一行到挂掉的日志都截下来了,好像也没看出啥问题呀,也有些感觉可能有问题的日志,比如下面这些:
    NVIDIA setup failed: no NVIDIA devices found
    
    cAdvisor is build without cgo and/or libpfm support. Perf event counters are not available.
    
    Hairpin mode set to "promiscuous-bridge" but kubenet is not enabled, falling back to "hairpin-veth"
    
    但是百度也没找到解决方法,而且感觉好像也不太像是这些问题导致的。然后我都开始怀疑我的系统内核了,我的内核版本是"3.10.0-693.el7.x86_64",我也不敢随便升级内核,感觉也不太像是这个问题。毕竟之前同样的内核版本,kubeadm的安装是没有任何问题的。
    
    然后现在就又没有思路了,我把kubelet的全量日志放在了下面的链接里,老师能帮忙看下吗?
    
    https://gongsl.lanzoui.com/iokBEs1zwri
    回复 有任何疑惑可以回复我~ 2021-07-31 00:03:22
  • 刘果国 回复 提问者 龙战GT #2
    关注这行错误:“7月 30 23:10:16 k8s-01 kubelet[3873]: F0730 23:10:16.496484    3873 kubelet.go:1299] Failed to start ContainerManager invalid kernel flag: vm/overcommit_memory, expected value: 1, actual value: 0”
    
    
    https://github.com/kubernetes/kubernetes/issues/66241
    回复 有任何疑惑可以回复我~ 2021-07-31 09:45:11
  • 提问者 龙战GT #3
    刚才找到问题所在了。
    
    老师提供的文档中,在k8s参数设置那一章有下面这个操作:
    cat > /etc/sysctl.d/kubernetes.conf <<EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_nonlocal_bind = 1
    net.ipv4.ip_forward = 1
    vm.swappiness = 0
    vm.overcommit_memory = 0
    EOF
    
    我发现就是以上操作的"vm.overcommit_memory = 0"导致的,把这个参数值改为1,或者干脆不设置,就可以解决问题了。然后无论重启多少次虚拟机,k8s集群都是正常的。
    
    老师可以看下是不是这个原因导致的,如果是,可以修改下文档,以免别的同学再遇到同样的问题。
    回复 有任何疑惑可以回复我~ 2021-07-31 18:27:06
刘果国 2021-07-28 15:32:04

先看下完整的kubelet启动日志

0 回复 有任何疑惑可以回复我~
  • 提问者 龙战GT #1
    kubelet的日志我上面已经截图了,一直刷的都是类似的内容,并没有啥参考价值呀,然后kubelet还是一直在重启。这种问题我看问答区不少同学也都遇到过,目前好像都没有解决方案,虚拟机一直不关机也不现实呀。所以我觉得这个应该不是某个人的环境问题吧?会不会是kubespray一键安装的哪些地方有问题呀?
    回复 有任何疑惑可以回复我~ 2021-07-28 15:46:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信