文件

擴展 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 支援透過新增額外的池 (pool) 來擴展 MinIO Tenant。

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

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

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

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

  3. 套用更新後的 Tenant 設定

    使用 kubectl apply 命令來更新 Tenant

    kubectl apply -k ~/kustomization/TENANT-NAME
    

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

  1. 檢閱 Helm values.yaml 檔案。

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

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

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

  3. 套用更新後的 Tenant 設定

    使用 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 會更新服務,以便在新節點上正確路由連線。如果您使用自訂的服務、路由、Ingress 或類似的 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}

重要事項

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