擴展 MinIO 租戶
此程序記錄如何透過在 Kubernetes 基礎架構中部署額外的 MinIO Pod 池來擴展現有 MinIO 租戶的可用儲存容量。
重要
MinIO Operator 主控台已棄用,並在 Operator 6.0.0 中移除。
請參閱修改 MinIO 租戶,以取得有關將透過 Operator 主控台安裝的租戶遷移至 Kustomization 的說明。
先決條件
MinIO Kubernetes Operator
此頁面上的此程序需要有效安裝 MinIO Kubernetes Operator,並假設本機主機已安裝相符的 MinIO Kubernetes Operator。此程序假設使用最新的穩定 Operator,版本 6.0.4。
請參閱部署 MinIO Operator,以取得有關部署 MinIO Operator 的完整文件。
可用的工作節點
MinIO 會部署額外的minio server
Pod 作為新租戶池的一部分。Kubernetes 叢集必須有足夠可用的工作節點,以便在其上排程新的 Pod。
MinIO Operator 提供用於控制 Pod 親和性和反親和性的組態,以將排程導向特定工作節點。
持續性磁碟區
磁碟機的獨佔存取權
MinIO 需要對為物件儲存提供的磁碟機或磁碟區進行獨佔存取。其他任何程序、軟體、腳本或人員都不應直接對提供給 MinIO 的磁碟機或磁碟區或 MinIO 放置在其上的物件或檔案執行任何操作。
除非 MinIO 工程團隊指示,否則請勿使用腳本或工具直接修改、刪除或移動所提供硬碟上的任何資料分片、同位分片或中繼資料檔案,包括從一個硬碟或節點移動到另一個。此類操作很可能導致廣泛的損毀和資料遺失,超出 MinIO 的修復能力。
MinIO 可以使用任何支援 Persistent Volume (PV) 且具有 ReadWriteOnce 存取模式的 Kubernetes 持續性磁碟區。MinIO 的一致性保證需要 ReadWriteOnce
提供的獨佔儲存存取權。
對於節點具有直接連接儲存裝置的 Kubernetes 叢集,MinIO 強烈建議使用 DirectPV CSI 驅動程式。DirectPV 提供分散式持續性磁碟區管理器,可以發現、格式化、掛載、排程和監控 Kubernetes 節點上的硬碟。DirectPV 解決了手動佈建和監控本機持續性磁碟區的限制。
程序
MinIO Operator 支援透過新增額外池來擴展 MinIO Tenant。
檢閱描述 Tenant 物件的 Kustomization 物件 (
tenant.yaml
)。spec.pools
陣列描述目前的池拓撲。在
spec.pools
陣列中新增一個項目。新的池必須反映您預期的工作節點、每個伺服器的磁碟區、儲存類別以及親和性/排程器設定的組合。有關池相關組態設定的更完整文件,請參閱MinIO 自訂資源定義。
套用更新後的 Tenant 組態
使用
kubectl apply
命令更新 Tenantkubectl apply -k ~/kustomization/TENANT-NAME
修改 Kustomization 目錄的路徑以符合您的本機組態。
檢閱 Helm
values.yaml
檔案。tenant.pools
陣列描述目前的池拓撲。在
tenant.pools
陣列中新增一個項目。新的池必須反映您預期的工作節點、每個伺服器的磁碟區、儲存類別以及親和性/排程器設定的組合。有關池相關組態設定的更完整文件,請參閱Tenant Helm 圖表。
套用更新後的 Tenant 組態
使用
helm upgrade
命令更新 Tenanthelm upgrade TENANT-NAME minio-operator/tenant -f values.yaml -n TENANT-NAMESPACE
上述命令假設使用 MinIO Operator 圖表儲存庫。如果您是手動安裝圖表或使用不同的儲存庫名稱安裝,請在命令中指定該圖表或名稱。
將
TENANT-NAME
和TENANT-NAMESPACE
分別替換為 Tenant 的名稱和命名空間。您可以使用helm list -n TENANT-NAMESPACE
來驗證 Tenant 名稱。
您可以使用 kubectl get events -n TENANT-NAMESPACE --watch
來監控擴展的進度。MinIO Operator 會更新服務,以便在新的節點之間適當路由連線。如果您使用自訂服務、路由、入口或類似的 Kubernetes 網路元件,則可能需要更新這些元件,以符合新的 Pod 主機名稱範圍。
停用 Tenant 伺服器池
停用伺服器池涉及三個步驟
針對 Tenant 執行
mc admin decommission start
命令等待停用完成
修改 Tenant YAML 以移除已停用的池
移除 Tenant 池時,請確保所有剩餘池的 spec.pools.[n].name
欄位都具有值。
在停用然後新增時,請保持池的順序
如果您在多個池部署中停用一個池,則不能將相同的節點順序用於新的池。例如,考慮一個具有以下池的部署
https://minio-{1...4}.example.net/mnt/drive-{1...4}
https://minio-{5...8}.example.net/mnt/drive-{1...4}
https://minio-{9...12}.example.net/mnt/drive-{1...4}
如果您停用 minio-{5...8}
池,則不能使用相同的節點編號新增新的池。您必須在 minio-{9...12}
之後新增新的池
https://minio-{1...4}.example.net/mnt/drive-{1...4}
https://minio-{9...12}.example.net/mnt/drive-{1...4}
https://minio-{13...16}.example.net/mnt/drive-{1...4}
重要
您不能將相同的池名稱或主機名稱順序重複用於已停用的池。