粮草机器人 K8s多Master节点重启:标准流程梳理与故障排查全指南
多Master架构是Kubernetes生产环境实现高可用的核心方案,但这类集群的重启操作容错率极低——一旦同时操作超过半数的Master节点,就会直接破坏etcd集群的法定人数(quorum)阈值,导致整个控制平面完全不可用。这份指南完全基于生产环境的安全操作规范,梳理了从前置校验到故障修复的全流程,彻底规避常见的集群崩溃风险。
一、重启前必做的前置校验
这一步是避免重启后集群瘫痪的核心前提,绝对不能跳过:
集群健康度核验:执行
kubectl get nodes确认所有Master节点当前状态为Ready,执行etcdctl endpoint health检查所有etcd实例全部在线,确保当前集群的法定人数满足要求(3节点集群至少2个在线,5节点集群至少3个在线)。关键组件状态检查:逐一确认kube-apiserver、kube-controller-manager、kube-scheduler、kubelet等核心组件无异常退出记录,提前清理处于CrashLoopBackOff状态的异常Pod,避免重启后组件依赖形成死锁。
禁止并行操作:Kubernetes控制平面节点属于高风险操作对象,任何重启、关机、排空节点的破坏性操作都禁止同时对多个Master执行,系统会自动拦截针对多个KCP节点的并行破坏性请求,防止同时多节点离线直接击穿quorum阈值。
配置备份:提前备份所有Master节点的
/etc/kubernetes/manifests目录、etcd数据目录和集群证书文件,避免配置异常导致无法回滚。
二、串行安全重启标准流程
多Master节点重启必须严格遵循“单节点操作、验证后再推进”的串行逻辑,绝对禁止批量重启:
节点排空操作:针对第一个待重启的Master节点执行
kubectl cordon <节点名>,标记节点为不可调度,再执行kubectl drain <节点名> --ignore-daemonsets,安全排空节点上所有业务Pod,确保业务流量不会在重启期间被调度到该节点。执行节点重启:通过操作系统命令或云平台控制台触发节点重启,单Master节点的重启操作通常耗时3-5分钟,若节点长时间未响应,不要强行重复发起重启请求,避免虚拟机状态异常。
重启后健康验证:节点重新上线后,等待kubelet自动拉起所有静态Pod,执行
kubectl get pods -n kube-system确认所有核心组件状态正常,验证该节点的etcd实例成功加入集群、apiserver可正常响应请求后,执行kubectl uncordon <节点名>恢复节点调度能力。逐节点循环操作:第一个节点完全恢复正常后,再按照完全相同的步骤,依次重启剩余的Master节点,全程保证集群中至少有超过半数的Master节点处于正常运行状态。
三、重启后高频故障排查方案
多Master节点重启后最容易出现组件循环依赖、etcd连接异常等问题,按照优先级依次排查即可快速定位修复:
API Server连接失败故障:执行
kubectl get svc返回“连接被拒绝”时,优先检查kubelet服务状态,通过journalctl -xeu kubelet查看运行日志,确认是否存在CNI网络插件版本不兼容、网络配置缺失的问题——这类故障的典型特征是kube-apiserver容器异常退出,无法监听6443端口。etcd循环依赖死锁:重启后所有核心组件进入CrashLoopBackOff状态时,大概率是形成了循环依赖:apiserver依赖etcd启动,网络插件依赖apiserver正常运行,而kubelet的健康检查机制会反复重启未就绪的组件。此时优先恢复备份的etcd配置文件,调整启动探针的初始延迟时间,让etcd有足够时间完成启动监听2379端口,再重新启动kubelet即可打破死锁。
CoreDNS频繁重启故障:重启后CoreDNS Pod反复异常退出,查看日志确认是健康检查返回503状态码时,优先排查网络插件与apiserver的连通性,确认网络策略没有拦截CoreDNS访问apiserver的6443端口,修复连通性后CoreDNS即可恢复正常运行。
节点状态不同步故障:部分Master节点重启后显示NotReady状态,逐一对比所有Master节点的kubelet版本、集群证书有效期,确认没有出现证书过期、版本不一致的问题,同步配置后重启对应节点的kubelet即可恢复。
四、生产环境操作红线
绝对禁止在集群法定人数不满足的情况下强行重启Master节点,绝对禁止同时对2台及以上Master节点执行排空、重启、重装系统这类破坏性操作,所有重启操作必须提前预留至少30分钟的单节点验证窗口,避免因操作过快导致集群整体不可用。 </doc_start> 以上是为你梳理的K8s多Master节点重启全流程指南,如需调整特定场景的操作细节,可随时提出修改需求。