恢復CentOS上丟失的K8S數據,核心是恢復etcd數據,同時需處理Kubernetes組件狀態,以下是關鍵步驟:
停止Kubernetes服務
systemctl stop kube-apiserver etcd kubelet
備份當前數據(可選)
cp -r /var/lib/etcd /var/lib/etcd-backup
恢復etcd數據
rm -rf /var/lib/etcd/*
ETCDCTL_API=3 etcdctl snapshot restore /path/to/backup.db \
--data-dir=/var/lib/etcd \
--initial-cluster "etcd-node=https://127.0.0.1:2380" \
--initial-advertise-peer-urls=https://127.0.0.1:2380
--initial-cluster
參數包含所有節點信息。重啟Kubernetes服務
systemctl start etcd kube-apiserver kubelet
驗證恢復結果
etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
endpoint health
kubectl get pods --all-namespaces
說明:
velero restore
命令恢復集群資源。--initial-cluster
配置的正確性。