
K8s Etcd 備份恢復超詳細解析為什么恢復集群不停業務 Pod前言Etcd 是 K8s 的數據庫所有集群資源存在這里。很多人搞不懂 恢復 etcd 要停 apiserver、停 etcd為什么正在運行的業務 Pod 不會掛1、兩條完全獨立的運行鏈路控制平面大腦etcd apiserver controller scheduler 負責存狀態、調度、增刪改查資源數據平面手腳每臺節點的 kubelet containerd 負責真正跑容器、維持 Pod 運行2、核心真相Pod 啟動后由 kubelet 容器運行時托管不再依賴 apiserver/etcd 實時存活所以停 apiserver、停 etcd → 集群管理失效已運行的業務 Pod 繼續正常對外提供服務3、官方標準恢復三步停止 apiserver移走 manifests離線恢復 etcd 快照重啟控制平面4、etcdctl vs etcdutl 終極區別必考etcdctl在線工具→ 備份用需要端點、證書、API3etcdutl離線工具新版 3.5→ 恢復用無需證書、無需端點3.4 版本無 etcdutl只能用 etcdctl 恢復。5、完整可直接用恢復腳本適配 3.4 環境# 1. 暫停控制平面 mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak # 2. 備份舊數據 mv /var/lib/etcd /var/lib/etcd.bak # 3. 恢復快照 ETCDCTL_API3 etcdctl \ --data-dir /var/lib/etcd \ snapshot restore /srv/etcd-snapshot.db # 4. 恢復控制平面 mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests