文件

擴展 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 的修復能力。

EKS 上的 MinIO 租戶必須使用 EBS CSI 驅動程式 來佈建必要的基礎持久性磁碟區。MinIO 強烈建議使用 SSD 支援的 EBS 磁碟區以獲得最佳效能。有關 EBS 資源的更多資訊,請參閱 EBS 磁碟區類型

程序

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

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

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

  2. 將新條目新增至 spec.pools 陣列。

    新池必須反映您預期的工作節點、每台伺服器的磁碟區數、儲存類別和親和性/排程器設定的組合。請參閱MinIO 自訂資源定義 以取得有關池相關組態設定的更完整文件。

  3. 套用更新的租戶組態

    使用 kubectl apply 命令來更新租戶

    kubectl apply -k ~/kustomization/TENANT-NAME
    

    修改 Kustomization 目錄的路徑以符合您的本機組態。

  1. 檢閱 Helm values.yaml 檔案。

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

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

    新的池必須反映您預期的 Worker 節點組合、每個伺服器的磁碟區、儲存類別和親和性/排程器設定。請參閱 Tenant Helm Charts 以取得有關池相關組態設定的更完整文件。

  3. 套用更新的租戶組態

    使用 helm upgrade 命令更新 Tenant。

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

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

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

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

停用 Tenant 伺服器池

停用伺服器池涉及三個步驟

  1. 針對 Tenant 執行 mc admin decommission start 命令

  2. 等待停用完成

  3. 修改 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}

重要

您不能為已停用的池重複使用相同的池名稱或主機名稱順序。