0
点赞
收藏
分享

微信扫一扫

etcd备份、恢复

本文介绍 三节点etcd,五节点、七节点亦是如此:
10.10.21.101
10.10.21.102
10.10.21.103
1、创建目录
mkdir -p /data/etcd_backup_dir/

2、备份(暂存)
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.101:2379 snapshot save /data/etcd_backup_dir/etcd1-snapshot-date +%Y%m%d.db
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.102:2379 snapshot save /data/etcd_backup_dir/etcd2-snapshot-date +%Y%m%d.db
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.103:2379 snapshot save /data/etcd_backup_dir/etcd3-snapshot-date +%Y%m%d.db

3、加定时任务(备份)

3.1 脚本
cat > /data/etcd_backup_dir/etcdbak.sh << EOF
#/bin/bash

etcd备份脚本

ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.101:2379 snapshot save /data/etcd_backup_dir/etcd1-snapshot-date +%Y%m%d.db
EOF
cat > /data/etcd_backup_dir/etcdbak.sh << EOF
#/bin/bash

etcd备份脚本

ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.102:2379 snapshot save /data/etcd_backup_dir/etcd2-snapshot-date +%Y%m%d.db
EOF
cat > /data/etcd_backup_dir/etcdbak.sh << EOF
#/bin/bash

etcd备份脚本

ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.102:2379 snapshot save /data/etcd_backup_dir/etcd3-snapshot-date +%Y%m%d.db
EOF

3.2 授权
chmod +x /data/etcd_backup_dir/etcdbak.sh

3.3 定时任务
crontab -e
0 20 * /data/etcd_backup_dir/etcdbak.sh

4、恢复

4.1 关闭apiserver和etcd
systemctl stop kube-apiserver && systemctl stop etcd

4.2 备份数据
mv /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak

4.3 恢复数据(最后备份时间),
etcdctl snapshot restore etcd1-snapshot-date +%Y%m%d.db \
--name etcd-10.10.21.101 \
--initial-cluster etcd-10.10.21.101=https://10.10.21.101:2380,etcd-10.10.21.102=https://10.10.21.102:2380,etcd-10.10.21.103=https://10.10.21.103:2380 \
--initial-cluster-token etcd-cluster-0 --initial-advertise-peer-urls https://10.10.21.101:2380 --data-dir=/var/lib/etcd

etcdctl snapshot restore etcd1-snapshot-date +%Y%m%d.db \
--name etcd-10.10.21.102 \
--initial-cluster etcd-10.10.21.101=https://10.10.21.101:2380,etcd-10.10.21.102=https://10.10.21.102:2380,etcd-10.10.21.103=https://10.10.21.103:2380 \
--initial-cluster-token etcd-cluster-0 --initial-advertise-peer-urls https://10.10.21.102:2380 --data-dir=/var/lib/etcd

etcdctl snapshot restore etcd1-snapshot-date +%Y%m%d.db \
--name etcd-10.10.21.103 \
--initial-cluster etcd-10.10.21.101=https://10.10.21.101:2380,etcd-10.10.21.102=https://10.10.21.102:2380,etcd-10.10.21.103=https://10.10.21.103:2380 \
--initial-cluster-token etcd-cluster-0 --initial-advertise-peer-urls https://10.10.21.103:2380 --data-dir=/var/lib/etcd

4.4 启动apiserver和etcd
systemctl start kube-apiserver && systemctl start etcd

4.5 查看集群状态
etcdctl --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem --endpoints=https://10.10.21.101:2379 --endpoints=https://10.10.21.102:2379 --endpoints=https://10.10.21.103:2379 endpoint status --write-out=table
或者
kubectl get cs

举报

相关推荐

0 条评论