温馨提示×

Ubuntu上Kubernetes的备份与恢复

小樊
66
2025-09-12 22:22:19
栏目: 智能运维

备份策略

  1. etcd备份:使用etcdctl snapshot save命令备份集群状态数据,需指定证书路径(如--cacert=/etc/kubernetes/pki/etcd/ca.crt)。
  2. 集群配置备份:备份kubeconfig文件、证书及/etc/kubernetes目录下的配置。
  3. 应用数据备份:通过kubectl cp备份Pod数据,或使用rsync备份持久卷(PV)数据。
  4. 工具备份:使用Velero备份整个集群资源,支持定时备份和跨集群迁移。

恢复策略

  1. etcd恢复:停止Kubernetes服务,用etcdctl snapshot restore恢复数据,替换数据目录后重启服务。
  2. 集群配置恢复:还原kubeconfig文件及证书,重启API Server、etcd等组件。
  3. 应用数据恢复:通过kubectl cprsync恢复Pod和PV数据。
  4. 工具恢复:使用Velero从备份中恢复集群资源。

关键命令示例

  • 备份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 /opt/backup/etcd-$(date +%Y%m%d).db
    
  • 恢复etcd
    ETCDCTL_API=3 etcdctl snapshot restore /opt/backup/etcd-20250912.db \
    --data-dir=/var/lib/etcd-restore
    mv /var/lib/etcd-restore /var/lib/etcd
    chown -R etcd:etcd /var/lib/etcd
    systemctl restart etcd kube-apiserver
    

0