文件

擴展 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 可以使用任何支援 持續性磁碟區 (PV) 的 Kubernetes,該磁碟區支援 ReadWriteOnce 存取模式。MinIO 的一致性保證需要 ReadWriteOnce 提供的獨佔儲存存取權。

對於節點具有直連儲存的 Kubernetes 叢集,MinIO 強烈建議使用 DirectPV CSI 驅動程式。DirectPV 提供一個分散式持久卷管理員,可以跨 Kubernetes 節點發現、格式化、掛載、排程和監控磁碟機。DirectPV 解決了手動配置和監控 本機持久卷 的限制。

程序

MinIO Operator 支援透過新增額外的池來擴展 MinIO 租戶。

  1. 檢閱描述租戶物件的 Kustomization 物件 ( tenant.yaml )。

    spec.pools 陣列描述目前的池拓撲。

  2. spec.pools 陣列中新增一個新的條目。

    新的池必須反映您預期的 Worker 節點、每個伺服器的卷數量、儲存類別以及親和性/排程器設定的組合。 有關與池相關的配置設定的更完整文件,請參閱 MinIO 自訂資源定義

  3. 套用更新後的租戶配置

    使用 kubectl apply 命令來更新租戶

    kubectl apply -k ~/kustomization/TENANT-NAME
    

    修改 Kustomization 目錄的路徑以符合您的本機配置。

  1. 檢閱 Helm values.yaml 檔案。

    tenant.pools 陣列描述目前的池拓撲。

  2. tenant.pools 陣列中新增一個新的條目。

    新的池必須反映您預期的 Worker 節點、每個伺服器的卷數量、儲存類別以及親和性/排程器設定的組合。 有關與池相關的配置設定的更完整文件,請參閱 租戶 Helm 圖表

  3. 套用更新後的租戶配置

    使用 helm upgrade 命令來更新租戶

    helm upgrade TENANT-NAME minio-operator/tenant -f values.yaml -n TENANT-NAMESPACE
    

    上述命令假設使用 MinIO Operator Chart 儲存庫。如果您是手動安裝 Chart 或使用不同的儲存庫名稱,請在命令中指定該 Chart 或名稱。

    TENANT-NAMETENANT-NAMESPACE 分別替換為租戶的名稱和命名空間。您可以使用 helm list -n TENANT-NAMESPACE 來驗證租戶名稱。

您可以使用 kubectl get events -n TENANT-NAMESPACE --watch 來監控擴展進度。MinIO Operator 會更新服務以適當路由跨新節點的連線。如果您使用自訂服務、路由、入口或類似的 Kubernetes 網路元件,您可能需要更新這些元件以適用於新的 Pod 主機名稱範圍。

解除租戶伺服器池

解除伺服器池包含三個步驟

  1. 對租戶執行 mc admin decommission start 命令

  2. 等待解除完成

  3. 修改租戶 YAML 以移除已解除的池

在移除租戶池時,請確保所有剩餘池的 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}

重要

您不能將相同的池名稱或主機名稱順序重複用於已解除的池。