產品說明
Velero(原名 Heptio Ark)是一款專為 Kubernetes (K8s) 打造的開源工具,旨在安全地進行叢集資源的備份與還原、災難復原以及叢集間的資源遷移。在雲原生環境中,備份不只是複製檔案,還涉及大量的 K8s API 物件(如 Pods, ConfigMaps, Secrets)與持久化磁碟資料(PV),Velero 能完美統籌這兩者的備份工作。
Velero 的工作原理是透過 K8s 自定義資源 (CRD) 來定義備份與還原作業。它會抓取叢集內的物件快照,並將其上傳至物件儲存(如 S3, MinIO, Azure Blob),同時觸發雲端平台或儲存系統的磁碟快照。對於不支援原生快照的儲存,Velero 還整合了 Kopia 與 Restic,實現檔案級別的增量備份。
核心特色:
- 全方位備份:同時備份 K8s 設定資源與其掛載的持久化磁碟資料。
- 災難復原:大幅縮短叢集遭受意外(如誤刪 Namespace 或區域級故障)後的復原時間 (RTO)。
- 叢集遷移:輕鬆將應用程式從本地 K8s 遷移至公有雲,或在不同雲服務商之間搬運資源。
- 靈活的選取機制:支援透過標籤 (Labels) 或命名空間 (Namespaces) 精確指定要備份的對象。
- 排程自動化:內建 Cron 式的排程系統,支援自動化的定期備份與保留策略。
常用指令
Velero 的操作主要透過其專屬的 CLI 工具 velero 進行,並直接與 K8s 叢集進行互動。
備份與還原操作
# 執行一次手動備份 (備份整個命名空間)
velero backup create my-backup --include-namespaces app-prod
# 檢查備份狀態與詳細資訊
velero backup describe my-backup
| 指令 | 功能說明 | 使用情境 |
|---|---|---|
| velero install | 安裝伺服器組件 | 在 K8s 叢集中部署 Velero 控制器與權限。 |
| velero schedule create | 建立排程備份 | 設定每日或每小時自動執行備份任務。 |
| velero restore create | 啟動還原作業 | 從指定的備份檔案中復原資源。 |
| velero get backups | 列出備份清單 | 查看所有已完成、執行中或失敗的備份紀錄。 |
| velero backup-location get | 檢查儲存狀態 | 確認備份目的地(如 S3 Bucket)是否連線正常。 |
| velero delete backup | 刪除備份 | 清理過期的備份檔案及其對應的雲端快照。 |
進階運維技巧
- 排除特定資源:透過
--exclude-resources參數可過濾掉不需要備份的暫存資料或日誌。 - 變更儲存類型:在還原時,可使用
Mapping功能將備份時的 StorageClass 改為目標叢集支援的類別。 - 掛鉤操作 (Hooks):支援在備份前/後執行指令(如凍結資料庫),確保資料的一致性(Application Consistency)。
操作介面
部署建議: 強烈建議將 Velero 備份目的地設定在與生產叢集物理隔離的區域。若企業內部使用 MinIO 或 Ceph,可透過 S3 協定無縫對接,建立完整的私有雲災備體系。





