🎯 課程目標__HTMLTAG_68___
完成本課程後,您將:
- ✅ 了解 Raft 共識演算法和 etcd 內部結構__HTMLTAG_73___
- ✅ 精通etcdctl進行日常操作__HTMLTAG_75___
- ✅ 使用 CronJob 設定自動備份
- ✅ 練習從快照復原(災難復原)
- ✅ 碎片整理、壓縮與效能調整
第 1 部分:ETCD 內部
1.1。 Raft 共識演算法
程式碼區塊_0
程式碼區塊_1
⚠️ etcd 容忍 (N-1)/2 失敗:
- 3 個節點 → 容忍 1 次故障(法定人數 = 2)
- 5 個節點 → 容忍 2 次故障(法定人數 = 3)
1.2。資料模型
___程式碼區塊_2___第 2 部分:ETCDCTL 操作
2.1。叢集運作狀況監控
___程式碼區塊_3___2.2。效能檢查
___程式碼區塊_4___2.3。在etcd中查看Kubernetes資料
___程式碼區塊_5___第 3 部分:ETCD 備份
3.1。手動快照
___程式碼區塊_6___3.2。自動備份腳本
___程式碼區塊_7___3.3。 Cron 備份(每 6 小時一次)
___程式碼區塊_8___程式碼區塊_9
第 4 部分:災難復原 — 復原
4.1。恢復場景
程式碼區塊_10
4.2。逐步恢復
___程式碼區塊_11___第 5 部分:壓縮與碎片整理
5.1。壓縮
___程式碼區塊_12___5.2。碎片整理
___程式碼區塊_13___5.3。警報管理
___程式碼區塊_14___第 6 部分:ETCD 監控
6.1。普羅米修斯指標
___程式碼區塊_15___6.2。 PrometheusRule(將在第 32 課中使用)
___程式碼區塊_16___💡 重點
-
___HTMLTAG_145__HTMLTAG_146___Raft 共識:寫入所需的多數法定人數 (2/3)
___HTMLTAG_149__HTMLTAG_150___每 6 小時備份一次 是生產的最低限度 — 保存快照 + 憑證
___HTMLTAG_153__HTMLTAG_154___恢復 = 從快照建立新叢集,快照後的所有資料都會遺失__HTMLTAG_156___
___HTMLTAG_157__HTMLTAG_158___依序對每個成員進行碎片整理,而不是同時進行碎片整理(I/O 區塊)
___HTMLTAG_161__HTMLTAG_162___NOSPACE警報:壓縮→碎片整理→解除
___HTMLTAG_165__HTMLTAG_166___NVMe SSD 是 etcd 的必備品(p99 寫入延遲 < 10ms)
🎯 練習__HTMLTAG_172___
練習 1:備份與復原實驗室
- 建立 Nginx 部署(3 個副本)
- 備份 etcd 快照
- 刪除部署 nginx
- 從快照恢復,驗證部署 nginx 返回
練習 2:監控
- 執行etcd-check.sh,記錄資料庫大小、領導者、運作狀況
- 壓縮與碎片整理,比較之前/之後的資料庫大小
練習 3:設定 CronJob 備份
- 部署 etcd 備份 CronJob
- 驗證作業已成功執行__HTMLTAG_199___
- 檢查 /backup/etcd/ 中的快照文件
📚 下一篇文章
在 第 11 課:使用 Rook-Ceph 的分散式儲存架構,我們將開始第 3 部分 — 安裝 Rook-Ceph 以實現持久性儲存。