文档

在 Azure Kubernetes Service 上部署 MinIO Operator

概述

来自 Microsoft Azure 的 Azure Kubernetes Engine (AKS) 是一种高可用、安全且完全托管的 Kubernetes 服务。MinIO Kubernetes Operator 支持使用 MinIO Operator 控制台或 kustomize 将 MinIO 租户部署到 AKS 基础设施上,用于 YAML 定义的部署

通过 AKS 市场

MinIO 通过 AKS 市场列表 进行维护,您可以通过该列表将您的 AKS 集群注册到 MinIO SUBNET。您通过市场连接的集群部署的任何 MinIO 租户都可以利用 SUBNET 注册,包括 24/7 访问 MinIO 工程师。

此页面记录了使用 Kustomize 通过 CLI 部署 MinIO Operator 的过程。有关通过 AKS 市场部署 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 图表或类似方法来管理或升级使用 Kustomize 部署的 MinIO Operator 安装。

但是,您可以使用 Kustomize 来升级以前版本(5.0.14 或更早版本)使用 MinIO Kubernetes 插件安装的 Operator。

  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 控制台。

    您可以通过应用 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 chart

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