如何修复重装系统后的 Kubernetes Master 节点
最近碰到两次,因故障需要重装主机系统。其中一次 Etcd 只剩下一个节点,导致整个集群宕机半个小时才恢复。本篇主要记录的是新系统 Ubuntu 20.04 初始化的过程,完成初始化之后采用优秀的集群安装工具 Kubekey 的 add nodes
命令,无需修改配置文件,一键就将节点重新加入了集群。
1. 恢复 Etcd
三个节点的 Etcd 集群,只有一个节点运行是无法工作的。因此,务必首先修复 Etcd 集群。这里比较幸运的是,系统重装之后 Ip 没有发生变化,否则需要重新生成证书,具体操作见另外一篇博文,《如何修复变更 IP 之后的 Kubernetes 集群》。
- 在重装节点上,拷贝其他节点的 Etcd 二进制文件、配置文件、启动文件
|
|
通常,一个 Etcd 集群的所有节点启动方式一样,只需要完全拷贝另外一个节点的即可。
- 在重装节点上,编辑配置文件,替换主机信息
|
|
这里需要替换的主要是 IP、NodeName 信息,将这些信息替换为当前节点的即可。因为这些会涉及到证书、Etcd WAL 数据中的节点信息数据的有效性。保持与之前一样,有助于快速恢复 Etcd 集群。
- 启动 Etcd
|
|
- 设置开机启动 Etcd
|
|
三个节点的 Etcd 有两个能运行,集群就能正常工作。剩下的就是初始化节点,并将节点重新添加到集群。这里有些特殊的是集群主要用于持续集成,需要挂载一块额外的存储盘,安装指定的 Docker 版本。
2. 初始化数据盘并格式化
- 安装 SSD 盘驱动