当前位置: 首页 > news >正文

机器 reboot 后 kubelet 目录凭空消失的灾难恢复

文章目录

    • @[toc]
    • 事故背景
      • 报错内容
    • 修复过程
      • 停止 kubelet 服务
      • 备份 kubelet.config
      • 重新生成 kubelet.config
      • 重新生成 kubelet 配置文件
      • 对比 kubeadm-flags.env

事故背景

因为一些情况,需要 reboot 服务器,结果 reboot 机器后,kubeadm init 节点的 kubelet 目录消失了,整个 /var/lib/kubelet 目录没有了,导致 kubelet 启动失败,etcd 和 apiserver 也没法启动

报错内容

kubelet[23415]: F0616 02:29:06.942780   23415 server.go:198] failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/lib/kubelet/config.yaml", error: open /var/lib/kubelet/config.yaml: no such file or directory

修复过程

参考 当 Kubernetes 集群证书被全部删除后,你该如何修复它? 这篇文章做了 kubelet 的修复,目前集群是正常了,后期暂时不知道是否会有其他异常,若有异常,后续会继续更新博客

停止 kubelet 服务

systemctl stop kubelet

发现没法停止 kubelet 服务,不影响后面的操作

Failed to stop kubelet.service: Connection timed out
See system logs and 'systemctl status kubelet.service' for details.
Failed to get load state of kubelet.service: Connection timed out

备份 kubelet.config

一般来说,删了就行

mv /etc/kubernetes/kubelet.conf{,.bak}

重新生成 kubelet.config

kubeadm init phase kubeconfig kubelet

重新生成 kubelet 配置文件

kubeadm init phase kubelet-start

对比 kubeadm-flags.env

可能之前有一些 kubeadm config 不同的地方,比如镜像的仓库什么的,可以和其他 worker 节点的对照一下,然后修改一下后,重启 kubelet

cat /var/lib/kubelet/kubeadm-flags.env

相关文章:

  • 文心智体 - 健身达人 | 一秒创建属于你的 “贾维斯“
  • 算法 | 剪枝函数以及几种形式回溯法和分支限界法的区别算法特性分支限界法的思想分支限界法的基本步骤Prim和Kruscal回溯法的效率
  • DELL服务器插入新磁盘、创建虚拟磁盘、挂载磁盘步骤
  • tcp协议机制的总结(可靠性,提高性能),基于tcp的应用层协议,用udp如何实现可靠传输
  • 系统编程:管道
  • 驱动开发(四):Linux内核中断
  • 【学习笔记】MySQL(Ⅲ)
  • 黑苹果睡眠总是自动唤醒(RTC)
  • JavaEE初阶--网络基本概念
  • 2024年宜春市中职“网络建设与运维”竞赛说明竞赛试题
  • 快速压缩前端项目
  • 【Windchill监听器、队列、排程】
  • is not null 、StringUtils.isNotEmpty和StringUtils.isNotBlank之间的区别?
  • 【技巧】Leetcode 67. 二进制求和【简单】
  • uni-app前端,社区团购系统搭建部署
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [nginx文档翻译系列] 控制nginx
  • 【5+】跨webview多页面 触发事件(二)
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • CSS 三角实现
  • HashMap剖析之内部结构
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JAVA并发编程--1.基础概念
  • leetcode388. Longest Absolute File Path
  • Linux Process Manage
  • Odoo domain写法及运用
  • Promise面试题2实现异步串行执行
  • 动态魔术使用DBMS_SQL
  • 基于 Babel 的 npm 包最小化设置
  • 前嗅ForeSpider采集配置界面介绍
  • 一些css基础学习笔记
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • # 数仓建模:如何构建主题宽表模型?
  • #### go map 底层结构 ####
  • #android不同版本废弃api,新api。
  • #NOIP 2014# day.1 T2 联合权值
  • $nextTick的使用场景介绍
  • (C语言)fgets与fputs函数详解
  • (void) (_x == _y)的作用
  • (第一天)包装对象、作用域、创建对象
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (力扣)循环队列的实现与详解(C语言)
  • (转载)CentOS查看系统信息|CentOS查看命令
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .java 9 找不到符号_java找不到符号
  • .Net - 类的介绍
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET 事件模型教程(二)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • /3GB和/USERVA开关
  • /bin/rm: 参数列表过长"的解决办法
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解