恢复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配置的正确性。