在 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 列表 提供支持,您可以通过该列表将您的 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 部署到该集群上。
默认情况下,Operator 部署 Pod 和服务时,每个都使用两个副本和 Pod 反亲和性。因此,GKE 集群应至少有两个节点可用于调度 Operator Pod 和服务。虽然这些节点可能是 MinIO 租户打算使用的相同节点,但将 Operator 和租户 Pod 放在一起可能会增加由于任何一个节点丢失而导致服务中断的风险。
kubectl
访问 EKS 集群
确保您的主机具有与目标 EKS 集群兼容的 kubectl
安装。有关将 kubectl
连接到 EKS 的指南,请参阅为 Amazon EKS 集群创建或更新 kubeconfig 文件。
您的 kubectl
配置必须包含作为具有正确权限的用户进行身份验证。对于基于 Marketplace 的安装,MinIO 在 MinIO Operator 的 github 存储库 中提供了一个示例 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 Chart 或类似方法来管理或升级使用 Kustomize 部署的 MinIO Operator 安装。
但是,您可以使用 Kustomize 升级使用 MinIO Kubernetes 插件安装的早期版本的 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 控制台。您可以通过应用 kubectl 修补程序来修改您的 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 Chart。
MinIO 建议使用与安装 Operator 相同的租户部署和管理方法。混合使用 Kustomize 和 Helm 来管理 Operator 或租户可能会增加操作复杂性。