在 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 -k
和 kubectl --kustomize
是執行相同指令的別名。
重要
如果您使用 Kustomize 安裝 Operator,您必須使用 Kustomize 來管理或升級該安裝。請勿使用 kubectl krew
、Helm 圖表或類似方法來管理或升級使用 Kustomize 部署的 MinIO Operator 安裝。
但是,您可以使用 Kustomize 來升級先前使用 MinIO Kubernetes Plugin 安裝的 Operator 版本(5.0.14 或更早版本)。
安裝最新版本的 Operator
以下命令將 Operator 安裝到
minio-operator
命名空間kubectl apply -k "github.com/minio/operator?ref=v6.0.4"
該命令輸出已安裝資源的列表。
驗證 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 儲存庫中找到常見設定的範例。
驗證 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
下一步
您可以使用 MinIO CRD 和 Kustomize 來部署 MinIO 租戶。MinIO 還提供了 用於部署租戶的 Helm 圖表。
MinIO 建議使用與安裝 Operator 相同的方法來部署和管理租戶。對於 Operator 或租戶管理混合使用 Kustomize 和 Helm 可能會增加操作複雜性。