CentOS上Kubernetes的备份与恢复方法
一、核心备份对象与总体策略
二、etcd快照备份与恢复(控制面一致性)
export ETCDCTL_API=3etcdctl --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-$(date +%F-%H%M).dbmv /etc/kubernetes/manifests /etc/kubernetes/manifests.bakrm -rf /var/lib/etcd/*etcdctl snapshot restore /backup/etcd-2025-11-28.db --data-dir=/var/lib/etcdmv /etc/kubernetes/manifests.bak /etc/kubernetes/manifestskubectl get pod -n kube-system,必要时重启 kubelet。snapshot restore,并指定本节点的 –name、–initial-advertise-peer-urls、–initial-cluster 等参数,确保集群成员信息一致后启动控制面。etcdctl --write-out=table snapshot status /backup/etcd-*.db三、Velero备份与恢复(集群资源与PV)
velero backup create nginx-backup --include-namespaces nginx-example --waitvelero restore create --from-backup nginx-backup四、资源清单与节点文件级备份(轻量/快速回滚)
kubectl get all --all-namespaces -o yaml > all-resources.yamlkubectl get configmap --all-namespaces -o yaml > all-configmaps.yamlkubectl get secret --all-namespaces -o yaml > all-secrets.yaml(注意 base64 编码,仅作迁移/审计参考)kubectl get pvc --all-namespaces -o yaml > all-pvcs.yamltar czvf etcd-backup-$(date +%F).tar.gz /var/lib/etcd/tar czvf k8s-config-$(date +%F).tar.gz /etc/kubernetes/rsync -avz --delete /path/to/pv/data /backup/pv/五、实践建议与注意事项