7.2 Kubernetes备份恢复实战:etcd数据备份与集群灾难恢复方案
·
7.2 Kubernetes备份恢复实战:etcd数据备份与集群灾难恢复方案
引言
备份和恢复是集群运维的重要保障。通过etcd数据备份,可以在灾难发生时快速恢复集群。本文将详细介绍备份恢复的完整方案。
一、etcd备份
1.1 手动备份
# 备份etcd
ETCDCTL_API=3 etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
snapshot save /backup/etcd-snapshot-$(date +%Y%m%d).db
1.2 自动备份
#!/bin/bash
# etcd自动备份脚本
BACKUP_DIR="/backup/etcd"
DATE=$(date +%Y%m%d-%H%M%S)
ETCDCTL_API=3 etcdctl snapshot save ${BACKUP_DIR}/etcd-snapshot-${DATE}.db
# 保留最近7天的备份
find ${BACKUP_DIR} -name "etcd-snapshot-*.db" -mtime +7 -delete
二、etcd恢复
2.1 恢复流程
# 1. 停止kube-apiserver
systemctl stop kubelet
systemctl stop docker
# 2. 恢复快照
ETCDCTL_API=3 etcdctl snapshot restore /backup/etcd-snapshot.db \
--data-dir /var/lib/etcd-backup
# 3. 更新etcd配置
# 4. 重启etcd
# 5. 重启kube-apiserver
三、资源备份
3.1 备份资源
# 备份所有资源
kubectl get all --all-namespaces -o yaml > backup.yaml
# 备份特定命名空间
kubectl get all -n production -o yaml > production-backup.yaml
3.2 Velero备份
# 安装Velero
velero install --provider aws --bucket my-backup
# 创建备份
velero backup create my-backup
# 恢复备份
velero restore create --from-backup my-backup
四、最佳实践
4.1 备份策略
- 定期自动备份
- 多地点存储
- 测试恢复流程
- 文档化流程
总结
通过本文,你学会了:
- ✅ etcd备份:手动、自动备份
- ✅ etcd恢复:恢复流程
- ✅ 资源备份:kubectl、Velero
下一步学习
- 7.3 Kubernetes网络故障排查
- 7.4 Kubernetes存储故障排查
思考题
- 如何备份etcd数据?
- 如何恢复集群?
- 如何实现自动备份?
提示:备份恢复是集群运维的重要保障。下一节我们将学习网络故障排查。
更多推荐


所有评论(0)