文件

在 Amazon Elastic Kubernetes Service 上部署 MinIO Operator

概觀

Amazon® Elastic Kubernetes Service® (EKS) 是一個企業級 Kubernetes 容器平台,具有完整的自動化操作,可管理混合雲、多雲和邊緣部署。MinIO Kubernetes Operator 支援使用 MinIO Operator 主控台或使用 kustomize 部署 MinIO 租戶到 EKS 基礎架構上,以進行 YAML 定義的部署

MinIO 支援以下方法,將 MinIO Operator 安裝到您的 EKS 叢集上

透過 AWS Marketplace

MinIO 維護一個 AWS Marketplace 清單,您可以透過該清單使用 MinIO SUBNET 註冊您的 EKS 叢集。您透過 Marketplace 連接的叢集部署的任何租戶都可以利用 SUBNET 註冊,包括 24/7 直接存取 MinIO 工程師。

此頁面說明如何使用 Kustomize 透過 CLI 部署 MinIO Operator。有關透過 AWS Marketplace 部署 MinIO Operator 的說明,請參閱 透過 EKS 部署 MinIO

本文件假設您熟悉所有參考的 Kubernetes 和 Elastic Kubernetes Service 概念、實用程式和程序。雖然本文件可能在盡力而為的基礎上提供設定或部署 Kubernetes 相關或 Elastic Kubernetes Service 相關資源的指導,但它不能取代官方的 Kubernetes 文件

先決條件

現有的 EKS 叢集

此程序假設存在現有的 EKS 叢集,您可以在其上部署 MinIO Operator。

預設情況下,Operator 會部署每個具有兩個複本的 Pod 和服務,以及 Pod 反親和性。因此,GKE 叢集應至少有兩個節點可用於排程 Operator Pod 和服務。雖然這些節點可能是打算供 MinIO 租戶使用的相同節點,但共置 Operator 和租戶 Pod 可能會因任何一個節點的遺失而增加服務中斷的風險。

對 EKS 叢集的 kubectl 存取權

確保您的主機具有與目標 EKS 叢集相容的 kubectl 安裝。有關將 kubectl 連接到 EKS 的指南,請參閱 建立或更新 Amazon EKS 叢集的 kubeconfig 檔案

您的 kubectl 設定必須包含具有正確權限的使用者驗證。MinIO 在 MinIO Operator 的 github 儲存庫中,為基於 Marketplace 的安裝提供了一個範例 IAM 政策。您可以將此政策作為手動安裝 Operator 的基準。

程序

以下步驟使用 Kustomize 和來自 MinIO Operator GitHub 儲存庫的 kustomization.yaml 檔案部署 Operator。

使用 Kustomize 安裝 MinIO Operator

以下程序使用 kubectl -k 從 MinIO Operator GitHub 儲存庫安裝 Operator。kubectl -kkubectl --kustomize 是執行相同指令的別名。

重要

如果您使用 Kustomize 安裝 Operator,您必須使用 Kustomize 來管理或升級該安裝。請勿使用 kubectl krew、Helm 圖表或類似方法來管理或升級使用 Kustomize 部署的 MinIO Operator 安裝。

但是,您可以使用 Kustomize 來升級先前使用 MinIO Kubernetes Plugin 安裝的 Operator 版本(5.0.14 或更早版本)。

  1. 安裝最新版本的 Operator

    以下命令將 Operator 安裝到 minio-operator 命名空間

    kubectl apply -k "github.com/minio/operator?ref=v6.0.4"
    

    該命令輸出已安裝資源的列表。

  2. 驗證 Operator Pod 是否正在運行

    kubectl get pods -n minio-operator
    

    輸出結果類似如下

    NAME                              READY   STATUS              RESTARTS   AGE
    minio-operator-6c758b8c45-nkhlx   1/1     Running   0          2m42s
    minio-operator-6c758b8c45-dgd8n   1/1     Running   0          2m42s
    

    在這個範例中,minio-operator pod 是 MinIO Operator,而 console pod 是 Operator Console。

    您可以使用 kubectl patch 來修改您的 Operator 部署。您可以在 Operator GitHub 儲存庫中找到常見設定的範例。

  3. 驗證 Operator 安裝

    檢查指定的命名空間 (minio-operator) 的內容,以確保所有 pod 和服務都已成功啟動。

    kubectl get all -n minio-operator
    

    回應應類似如下

    NAME                                  READY   STATUS    RESTARTS   AGE
    pod/minio-operator-6c758b8c45-nkhlx   1/1     Running   0          5m20s
    pod/minio-operator-6c758b8c45-dgd8n   1/1     Running   0          5m20s
    
    NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
    service/operator   ClusterIP   10.43.135.241   <none>        4221/TCP                        5m20s
    service/sts        ClusterIP   10.43.117.251   <none>        4223/TCP                        5m20s
    
    NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/minio-operator   2/2     2            2           5m20s
    
    NAME                                        DESIRED   CURRENT   READY   AGE
    replicaset.apps/minio-operator-6c758b8c45   2         2         2       5m20s
    
  4. 下一步

    您可以使用 MinIO CRD 和 Kustomize 來部署 MinIO 租戶。MinIO 還提供了 用於部署租戶的 Helm 圖表

    MinIO 建議使用與安裝 Operator 相同的方法來部署和管理租戶。對於 Operator 或租戶管理混合使用 Kustomize 和 Helm 可能會增加操作複雜性。