文件

在 Azure Kubernetes Service 上部署 MinIO Operator

概觀

Azure Kubernetes Engine (AKS) 是 Microsoft Azure 提供的高可用性、安全且完全受管理的 Kubernetes 服務。MinIO Kubernetes Operator 支援使用 MinIO Operator 主控台或 kustomizeYAML 定義的部署,將 MinIO 租戶部署到 AKS 基礎架構上。

透過 AKS Marketplace

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

此頁面記錄使用 Kustomize 透過 CLI 部署 MinIO Operator。有關透過 AKS Marketplace 部署 MinIO Operator 的說明,請參閱 透過 AKS 部署 MinIO

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

先決條件

現有 AKS 叢集

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

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

對 AKS 叢集的 kubectl 存取權

確保您的主機具有與目標 AKS 叢集相容的 kubectl 安裝。有關將 kubectl 連接到 AKS 的指南,請參閱 安裝 kubectl 並設定叢集存取

程序

以下步驟使用 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 chart 或類似方法來管理或升級使用 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 patches 來修改您的 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 chart

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