Skip to content

Velero

Kubernetes 備份與災難復原工具

軟體分類 生產力 / 系統工具
軟體標籤
開發廠商 VMware / Velero Community
Stars
9.9k
Forks
1.5k
License
APACHE LICENSE 2.0
Version
v1.15.0
Update
2026-03-13
OS

產品說明

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 協定無縫對接,建立完整的私有雲災備體系。