k8s etcd 数据损坏处理方式

服务器非正常关机(意外掉电、强制拔电)后 ,etcd 数据损坏

无备份情况

复制代码
master 报错:
kubectl get nodes
6443连接失败

排查:
查询:docker
docker logs (kube-apiserver)日志
报错如下:
SubChannel #4] grpc: addrConn.createTransport failed to connect to {Addr: "127.0.0.1:2379", ServerName: "127.0.
0.1:2379", }. Err: connection error: desc = "transport: Error while dialing: dial tcp 127.0.0.1:2379: connect: connection refused"

处理:
#1.不知道路径可以查找etcd数据目录
find / -type d -name member
cd /var/lib/etcd/member
mv * /root/member.back
# 注:在故障节点执行,删除或者移走备份都可以

#1.重启etcd
docker ps -a|grep etcd
docker rm -f etcd的ID        # 所有节点执行
systemctl restart kubelet    # 重启kubelet
 
#2.查看
kubectl get pods
# 注:此时没有报错了


# 然后重新初始化集群。(缺点就是什么数据都没了)
kubeadm init \
--apiserver-advertise-address=192.168.174.136 \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.29.2 \
--service-cidr=10.10.0.0/12  \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all \
--cri-socket=unix:///var/run/cri-dockerd.sock

etcd版本查询

bash 复制代码
docker ps -a | grep etcd
829dbbfb08cf   a0eed15eed44   "etcd --advertise-cl..."   About an hour ago   Up About an hour                                                                                                 k8s_etcd_etcd-k8s-master_kube-system_ec1fb561c6d9370f8f5b368e02c0c08d_283
6ce9f09a3996   registry.aliyuncs.com/google_containers/pause:3.9   "/pause"    About an hour ago   Up About an hour                                                                         k8s_POD_etcd-k8s-master_kube-system_ec1fb561c6d9370f8f5b368e02c0c08d_7

docker exec -it 829dbbfb08cf sh
sh-5.2# etcdctl version
etcdctl version: 3.5.10
API version: 3.5
相关推荐
工业一体机老司机8 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
miaobinfei14 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器
kobe_OKOK_15 小时前
docker compose命名卷 映射到宿主机的路径
运维·docker·容器
无言听风雨丶16 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
晨陌y20 小时前
Flare自托管导航页教程:Docker部署、多用户、API与公网访问
运维·docker·容器
无言听风雨丶20 小时前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
无言听风雨丶1 天前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao1 天前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉1 天前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
相思难忘成疾1 天前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes