MicroK8s单节点kubelite与cluster-agent服务故障求助
MicroK8s 单节点故障修复指南
问题背景
单节点部署的MicroK8s因Pod耗尽节点全部资源触发故障,后续删除部分Deployment释放资源并清理磁盘空间后,节点资源已恢复充足,但microk8s refresh-certs -e server.crt和microk8s reset命令均无法解决问题,核心服务仍无法启动。
关键错误定位
从日志输出可定位两个核心问题:
- Kubelite服务启动失败:API Server因
serving-cert::/var/snap/microk8s/4595/certs/server.crt证书内容缺失直接退出 - Cluster-agent服务启动失败:执行脚本时找不到
/snap/microk8s/4595/bin/uname文件,提示文件不存在
分步修复方案
1. 重新生成缺失的API Server证书
由于自带的refresh-certs命令无效,手动执行证书重建:
# 停止所有MicroK8s服务 sudo snap stop --all microk8s # 备份现有证书目录(可选操作,用于故障回滚) sudo cp -r /var/snap/microk8s/4595/certs /var/snap/microk8s/4595/certs_backup # 删除损坏的server证书文件 sudo rm -f /var/snap/microk8s/4595/certs/server.crt /var/snap/microk8s/4595/certs/server.key # 重新生成所有MicroK8s证书 sudo microk8s refresh-certs --all
2. 修复Cluster-agent的文件缺失问题
该问题由Snap包损坏导致,需重新安装对应版本的MicroK8s包:
# 查看当前安装的MicroK8s版本号 snap info microk8s | grep "installed" # 重新安装指定版本(示例中版本为4595,替换为实际版本号) sudo snap refresh microk8s --revision=4595
3. 验证服务状态
完成上述操作后启动服务并验证:
# 启动MicroK8s服务 sudo snap start microk8s # 查看服务运行状态 microk8s status # 执行健康检查 microk8s inspect
4. 终极强制重置(若以上步骤无效)
如果证书重建和Snap重装均未解决问题,执行强制清理重置:
# 停止所有MicroK8s服务 sudo snap stop --all microk8s # 删除核心数据目录 sudo rm -rf /var/snap/microk8s/common/var/lib/kubelet /var/snap/microk8s/common/var/lib/dqlite # 执行重置命令 sudo microk8s reset
恢复验证标准
microk8s status输出显示所有组件处于running状态microk8s inspect无任何失败项- 可正常执行
microk8s kubectl get pods -A等命令查看集群资源
内容的提问来源于stack exchange,提问作者noname7619
相关产品推荐
相关产品推荐

