感谢您阅读并花时间审查这个问题。
lokoctl
我在使用 Kubernetes 集群时遇到了问题。它运行的是 Flatcar Linux,由 Kinvolk 制造,最近被微软收购。我使用他们的 Lokomotive ( ) 工具设置了集群。
我总共有4个节点。
- socrates001 (大师)
- socrates002 (节点)
- socrates003 (节点)
- socrates004 (节点)
今天下午 2 点左右,我的主节点由于 Lokomotive(Kinvolk 制作的集群管理工具)提供的自动更新服务而重新启动。
我的主节点恢复了,但是 k8s 没有。
docker container ls
ran on的输出socrates001
如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e33995c69e10 quay.io/kinvolk/kubelet:v1.21.4 "/usr/local/bin/kube…" 7 minutes ago Up 7 minutes kubelet
b6093a1f343a quay.io/coreos/etcd:v3.4.16 "/usr/local/bin/etcd" 7 minutes ago Up 7 minutes etcd
这表明 Kubelet 和 Etcd 正在运行。然而 Kubelet 却给了我很多错误,老实说,我不知道从哪里开始挖掘……
当我运行 时journalctl -u kubelet
,它给出了以下输出,我已将其放入 Pastebin 中,因为它太大了。警告,它太大了。
https://pastebin.com/A9Lmf0tc
我已经尝试过的事情:
- 重启主节点
- 重启 kubelet
- 重启 etcd
- 手动尝试启动 kube api,但是它立即被终止(我认为是被 kubelet 终止的)
- 强制关闭
sudo swapoff -a
,但是在配置集群期间,我很确定 Lokomotive 已经在 Flatcar Linux 上将其关闭。
我完全不知道为什么会发生这种情况,所以欢迎大家发表评论和回答!我是一名学生,时间充裕,所以你应该很快就会得到答复。
提前致谢!
编辑:看来 Kubelet Checkpointer 中有一个错误。我在这里向 Lokomotive 提交了一个问题:https://github.com/kinvolk/lokomotive/issues/1576