下载etcdctl压缩文件
wget https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz
tar -xvf etcd-v3.5.0-linux-amd64.tar.gz
sudo mv ./etcd-v3.5.0-linux-amd64/etcdctl /usr/local/bin/
chmod +x /usr/local/bin/etcdctl
配置etcdctl
配置etcdctl需要指定etcd集群的地址,你可以在Kubernetes的master节点上找到etcd的地址信息。一般是`https://MASTER节点IP:2379`,那么你可以通过以下命令配置etcdctl:
1、ETCDCTL_API=3
2、alias etcdctl="/usr/bin/etcdctl --endpoints=https://192.168.1.20:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key"
这一步需要找到etcd使用的证书位置:kubectl -n kube-system describe po etcd-k8s-master
查看 “--cert-file=”的目录就是证书位置。
3、检验etcd连接数据状态
etcdctl endpoint status
如下图,即为连接etcd正常:
创建etcd快照(备份)
ETCDCTL_API=3
etcdctl snapshot save snapshot.db
验证快照信息
ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshot.db
恢复etcd
export ETCDCTL_API=3
etcdctl --data-dir <data-dir-location> snapshot restore snapshot.db
如果 <data-dir-location>
与之前的文件夹相同,请先删除此文件夹并停止 etcd 进程,再恢复集群。 否则,需要在恢复后更改 etcd 配置并重新启动 etcd 进程才能使用新的数据目录。
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd/