Kurator v0.5.0釋出,打造統一的多叢集備份與儲存體驗

2023-11-08 21:00:51

本文分享自華為雲社群《Kurator v0.5.0正式釋出! 打造統一的多叢集備份與儲存體驗》,作者: 雲容器大未來 。

Kurator 是由華為雲推出的開源分散式雲原生套件。面向分散式雲原生場景,Kurator 旨在為使用者提供一站式的解決方案,幫助使用者快速構建自己的分散式雲原生平臺。

在最新發布的 v0.5.0 版本中,Kurator 強化了其在多叢集環境中的應用備份與恢復,以及儲存管理的功能,以滿足使用者對於複雜部署的需求。本次更新主要包括以下兩項新特性:

  • 統一叢集備份恢復與遷移:Kurator 現在支援一鍵客製化化的備份與恢復多個叢集中的應用和資源,並通過統一檢視實時監控各叢集的進度;同時,還支援跨叢集資源的一鍵遷移功能。
  • 統一分散式儲存:Kurator 實現了一致性的分散式儲存解決方案,其一站式部署讓使用者在多叢集環境下輕鬆實現塊儲存、檔案儲存和物件儲存的應用。

統一叢集備份恢復與遷移

在多雲和分散式環境的持續演變中,資料的安全性與可恢復性已經成為使用者高度關注的問題。對於企業來說,資料丟失往往是一個難以承受的打擊,可能導致嚴重的業務中斷和信譽損失。在以 Kubernetes 為行業標準的環境中,伴隨著服務數量和叢集規模的增長,資料管理的複雜度也隨之增加,這使得實施高效而靈活的備份策略變得尤為重要。

面對這種需求的不斷擴大和挑戰的增加,傳統的備份工具往往在多環境下展現出侷限性,難以提供一個無縫的統一解決方案。因此,Kurator 的統一備份方案應運而生,旨在提供這一領域的備份解決方案。基於 Velero (https://velero.io/) ,Kurator 為使用者提供了一鍵式的操作體驗,可以自定義備份並恢復橫跨多個叢集的應用與資源。通過 Kurator 提供的統一檢視功能,使用者能夠實時監控各個叢集備份的狀態和進度。其覆蓋範圍涵蓋了從 Pod、Deployment、Service 等 Kubernetes 原生資源,到 PersistentVolumes(PVs)等持久化儲存的備份和恢復,以滿足現代企業多元化的資料保護需求。

統一備份

Kurator 在備份解決方案上提供了多樣化的選擇,以適應不同場景下的資料保護需求。其靈活性確保了不同業務場景下都能找到合適的備份策略。

  • 即時備份: 面對資料頻繁變動的情形,「即時備份」能夠迅速地提供保護,確保關鍵資料在關鍵時間點的完整性得以保持。
  • 定期備份:對於那些不太頻繁變動,但同樣需要確保永續性的資料,「定期備份」可以根據預設的時間週期性的自動執行備份,以滿足合規性要求和保障資料安全。

此外,Kurator 還提供了一系列高度客製化化的備份選項。例如,「特定叢集備份」允許運維團隊基於策略或特定需求有選擇性地備份特定叢集。「資源過濾」功能則提供了細粒度的控制,使管理員能夠根據資源的名稱、名稱空間或標籤等屬性來精確定義備份的範圍。

這些備份策略的多樣性和自動化能力為使用者在不斷變化的業務需求中,提供了穩定和可靠的資料保護。

接下來是一個統一備份的實際操作範例:

apiVersion: backup.kurator.dev/v1alpha1

kind: Backup

metadata:

...

name: select-labels

namespace: default

spec:

destination:

fleet: quickstart

policy:

resourceFilter:

labelSelector:

matchLabels:

app: busybox

ttl: 720h

status:

backupDetails:

- backupNameInCluster: kurator-member1-backup-default-select-labels

backupStatusInCluster:

completionTimestamp: "2023-10-28T03:37:13Z"

expiration: "2023-11-27T03:37:07Z"

formatVersion: 1.1.0

phase: Completed

progress:

itemsBackedUp: 1

totalItems: 1

startTimestamp: "2023-10-28T03:37:07Z"

version: 1

clusterKind: AttachedCluster

clusterName: kurator-member1

- backupNameInCluster: kurator-member2-backup-default-select-labels

backupStatusInCluster:

completionTimestamp: "2023-10-28T03:37:13Z"

expiration: "2023-11-27T03:37:07Z"

formatVersion: 1.1.0

phase: Completed

progress: {}

startTimestamp: "2023-10-28T03:37:07Z"

version: 1

clusterKind: AttachedCluster

clusterName: kurator-member2

...

觀察 spec 設定,可以看到備份的目標是位於 Fleet 中各叢集內所有標有 app:busybox 標籤的資源。通過在 spec 中設定策略的方式,可以確保相關的資源得到備份。在 status 中,可以實時追蹤到備份任務在每個叢集,如 kurator-member1 和 kurator-member2,的執行狀況,保持了操作的透明度。