中文文档

使用操作员在亚马逊Kubernetes上部署MinIO

概述

亚马逊弹性 Kubernetes 服务(亚马逊 Elastic Kubernetes Service® )(EKS)是一个企业级的 Kubernetes 容器平台,具备完整的自动化运维栈,能够管理混合云、多云和边缘部署。 MinIO Kubernetes Operator 支持使用 MinIO Operator 控制台或通过 kustomize 用于 YAML -defined deployments 在 EKS 基础设施上部署 MinIO Tenants。

MinIO 支持以下方法将 MinIO Operator 安装到您的 EKS 集群上:

Through the AWS Marketplace

进行安装:MinIO 在 AWS Marketplace 保持一个列表,您可以通过这个列表将您的 EKS 集群注册到 MinIO SUBNET。 通过与 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 会部署每个 pod 和服务两个副本,并使用 pod 反亲和性。 因此,GKE 集群应该至少有 two 个节点可供调度 Operator pods 和服务。 尽管这些节点 可能是 打算供 MinIO 租户使用的节点,但是将 Operator 和 Tenant pods 部署在同一节点上可能会增加由于任何单一节点的丢失而导致的服务中断的风险。

kubectl 访问 EKS 集群

确保您的宿主机上安装了与目标 EKS 集群兼容的 kubectl 。 要了解如何将 kubectl 连接到 EKS,请参阅 AWS 文档中的 Creating or updating a kubeconfig file for an Amazon EKS cluster

您的 kubectl 配置必须包括以具有正确权限的用户进行身份验证。 MinIO 在其 MinIO Operator 的 GitHub 存储库中提供了一个示例 IAM 策略,用于基于 Marketplace 的安装。这个示例 IAM 策略位于以下位置 github repository。 您可以将此策略作为手动安装 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 插件安装的 Operator 的先前版本(5.0.14 或更早版本) 。

  1. 安装最新版本的 Operator

    以下命令将 Operator 安装到 minio-operator 命名空间:

    kubectl apply -k "github.com/minio/operator?ref=v7.1.1"
    

    该命令输出已安装资源的列表。

  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 补丁来修改 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. 下一步

    您可以使用:ref:MinIO CRD and Kustomize. <minio-k8s-deploy-minio-tenant> MinIO 还提供了 Helm chart for deploying Tenants.

    MinIO 建议使用与安装 Operator 相同的租户部署和管理方法。 混合使用 Kustomize 和 Helm 进行操作员或租户管理可能会增加操作复杂性。

Join Slack 商业支持购买咨询