k8s集群异常恢复

前提、我自己的k8s采用的是单master节点+两个从节点部署,我针对单master情况进行恢复说明

场景一:正常开关虚拟机,可直接重启kubelet进行恢复

1、1、一般重启后三个节点都需要检查,输入命令检查kubelet:

复制代码
systemctl status kubelet

2、状态不正常,输入命令启动kubelet:

复制代码
systemctl restart kubelet

3、正常情况下,启动kubelet后,节点一般都会正常,除非etcd异常

4、输入查看命令:kubectl get pod -A,如果不能正常回显则说明异常

5、再次尝试手动恢复(虚拟机正常开关机情况下,重启能解决95以上的异常问题,如果不能正常,再重启一次),重启kubelet,输入命令:

复制代码
systemctl restart kubelet

场景二:一般服务器直接断电或者异常,都很大机率造成etcd异常。所以一般都需要提前对etcd文件备份才行,备份命令

复制代码
mkdir -p  /root/etcd/backup
#不知道路径可以查找etcd数据目录
find / -type d -name member
cd /root/etcd/backup
rm -rf *
echo "备份etcd"
cp -R -c /var/lib/etcd/member/* ./

恢复命令:

复制代码
cd /var/lib/etcd/member
rm -rf *
cp -R -c /root/etcd/backup/* ./
systemctl restart kubelet
systemctl status kubelet
#查看pod状态,等待几分钟
kubectl get pod -A

后续:定位etcd异常方法

可以用命令

复制代码
netstat -anp | grep 2379

如果有回显该端口提供了服务,则说明正常

另外的方法就是查看kube-apiserver服务的docker日志,查看命令:

复制代码
docker ps -a | grep kube-apiserver

命令执行后再查看其日志:

复制代码
docker logs --tail 500 -f 容器id

如果回显存在2379端口连接不上,则说明etcd出问题了

相关推荐
小此方5 分钟前
Re:Linux系统篇(二十二)进程篇·七:环境变量的底层溯源、核心获取机制与安全应用
linux·运维·服务器
Cloud_Shy61811 分钟前
Linux 系统权限知识及应用实践
linux·运维·服务器·centos·云计算
一氧化二氢.h23 分钟前
Linux手动脚本 vs Dockerfile部署:核心区别与适用场景
linux·运维·服务器
茉莉清茶LG23 分钟前
Xshell成功创建了Ubuntu连接,但是显示虚拟机连接断开了,连接失败。
linux·运维·ubuntu
_Emma_41 分钟前
【QCOM】CAMSS架构中CSi与CSIPHY驱动结构
linux·图像处理·视频编解码
程序员JerrySUN42 分钟前
Jetson边缘嵌入式实战课程第五讲:Jetson Secure Boot - 安全启动
android·linux·服务器·人工智能·安全·unity·游戏引擎
穷人小水滴1 小时前
ssh-bridge: 在 Linux 虚拟机中转发消息的简单实现 (UNIX socket)
linux·ssh·unix
齐齐大魔王1 小时前
Linux-网络抓包
linux·运维·网络
牛奶咖啡131 小时前
k8s容器编排技术实践——OpenEuler的k8s高可用集群构建实战
云原生·kubernetes·信创·openeuler·keepalived·haproxy·k8s高可用集群部署
JP-Destiny1 小时前
Linux-配置Ubuntu的IP
linux·tcp/ip·ubuntu