etcd 集群恢复

七个节点,挂了5个,etcd无法访问

参考:

https://coreos.com/etcd/docs/latest/op-guide/recovery.html

此次我只恢复了v3的数据

在存活的节点上


export ETCDCTL_API=3
alias etcdctl="etcdctl --endpoints=https://109.105.1.253:2379 --cacert=/etc/etcd/ssl/etcd-ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem"

etcdctl snapshot save snapshot.db

当前目录下生成文件snapshot.db, scp到所有节点

停止所有节点的etcd, 清空所有节点的etcd数据目录(注意丢失v2数据)

所有节点执行

node: 我只恢复了三个节点的集群,其他四个节点在集群健康之后依次member add进去

#!/bin/bash

 ETCDCTL_API=3 etcdctl snapshot restore /root/snapshot.db \
  --name k8s-m1 \
  --initial-cluster k8s-m1=https://109.105.30.155:2380,k8s-m2=https://109.105.30.156:2380,k8s-m3=https://109.105.1.209:2380 \
  --initial-cluster-token etcd-k8s-cluster \
  --initial-advertise-peer-urls https://109.105.30.155:2380

生成一个{name}.etcd的文件夹 如  k8s-m1.etcd, 里边有一个member 的文件夹, 将member 拷贝到etcd数据目录中

修改etcd配置文件

initial-cluster   与上边一致

initial-cluster-state: 'new'

force-new-cluster 一定要是 false

启动这三个节点的etcd,集群健康

猜你喜欢

转载自www.cnblogs.com/mhc-fly/p/9063970.html
今日推荐