在 15 分钟或更短时间内在 Amazon EKS 上安装 MinIO
Amazon Elastic Kubernetes Service (EKS) 是一项托管服务,允许您在 AWS 上运行 Kubernetes,而无需安装和管理 Kubernetes 本身。AWS Marketplace中提供的 MinIO与 Amazon EKS 服务原生集成,为您提供一种直接、简化和自动化的方式,以在 15 分钟或更短的时间内部署和操作您自己的多租户对象存储即服务。
MinIO 被设计和构建为一个多租户和多用户对象存储系统,可以从 TB 无缝扩展到 EB 甚至更多。租户在自己的命名空间中彼此完全隔离。通过遵循Kubernetes 插件和操作符范例,MinIO 可以无缝地融入现有的 DevOps 实践和工具链。
组织通常跨多个云运行 MinIO——公共云、私有云、内部部署云、并置云、边缘云——无论 MinIO 在那里运行,都允许您实现一致性,尽管硬件和软件存在潜在差异。开发人员知道他们的代码可以运行——虽然每个人都声称S3 API 兼容性,但 MinIO 是这个星球上经过最广泛测试和实施的 S3 API 兼容对象存储。复杂的多站点主动-主动复制在多个 MinIO 部署之间同步数据,以实现高可用性和地理负载平衡。
MinIO 是从头开始构建的,旨在集成到现有平台和 DevOps 工具链中。一组丰富的集成——从外部身份提供者到密钥管理系统再到监控工具等等——简化了部署和持续操作。MinIO 还深度集成到 AWS 生态系统中,以利用 EKS 和 AWS 管理、安全和报告功能。例如,您可以使用 AWS Managed Prometheus 跟踪 MinIO 指标并发出警报,或者使用 AWS Elastic Load Balancing 对传入请求进行负载平衡。
一项值得注意的集成是跨 AWS 存储类(例如 EBS、S3、S3 IA 和 S3 Glacier)进行分层的能力。这为企业提供了管理其存储基础设施成本和性能的机制。MinIO 自动将老化的对象从热 EBS 层转移到经济高效的冷热 AWS S3 存储层。MinIO 维护一个单一的对象存储命名空间,例如,它依赖于数据生命周期管理策略来处理 EBS 和主要层,将 S3 IA 作为次要层,将 S3 Glacier 作为第三级/归档层。
我们将 MinIO 构建为容器化和 Kubernetes 原生,这意味着您可以在 EKS 上运行它,而无需运行云规模的基础设施。继续阅读以了解如何在 15 分钟或更短时间内部署完整的 AWS S3 替代品。
以下步骤将指导您为 MinIO 设置专用的 EKS 集群。请注意,如果您有现有的 EKS 集群并希望通过节点组管理 MinIO,请改为按照这些说明进行操作。完成部署的预计时间不到十五分钟。
先决条件
⚠️ 您必须在AWS Marketplace 中为 MinIO创建订阅,否则这些说明的自动化将因缺少授权而无法运行。
另外,请安装:
MinIO 不需要使用 root 权限进行部署或操作。
0.开始之前
您的集群需要三个基本配置参数:
Account Number可以从 AWS 控制台或通过运行以下命令获取:
export AWS_ACCOUNT_NUMBER=`aws sts get-caller-identity --query "Account" --output text` echo $AWS_ACCOUNT_NUMBER
region例如,您将需要知道要部署的位置us-west-2。
您还需要声明一个Cluster Name,例如minio-cluster.
1.设置集群
1.1.1 新建集群
根据需要替换以下命令中的,然后执行它:
eksctl create cluster \ --name <CLUSTER_NAME> \ --version 1.21 \ --node-type=c6i.24xlarge \ --nodes-min=4 \ --nodes=4 \ --nodes-max=4 --zones=us-west-2a,us-west-2b,us-west-2c
1.1.2 现有集群
只要安装AWS EBS CSI 驱动程序,您就可以使用任何现有集群。
1.2 安装 AWS EBS CSI 驱动
需要AWS EBS CSI 驱动程序才能使用 EKS 中的存储gp3和sc1存储类型。
2. 设置所需的角色、策略和连接器
以下所有配置的范围都限于在给定 上Cluster Name调用的特定集群,因此为您的环境更新这些值至关重要。regionaccount number
2.1 创建 IAM 政策
替换文件中的and :iam-policy.json
aws iam create-policy \ --policy-name minio-eks-<CLUSTER_NAME> \ --policy-document file://iam-policy.json
2.2 创建 OIDC Provider
eksctl utils associate-iam-oidc-provider --region=us-west-2 --cluster= --approve
2.3 创建信任、角色和服务账户
eksctl create iamserviceaccount \ --name minio-operator \ --namespace minio-operator \ --cluster <CLUSTER_NAME> \ --attach-policy-arn arn:aws:iam::<AWS_ACCOUNT_NUMBER>:policy/minio-eks-<CLUSTER_NAME> \ --approve \ --override-existing-serviceaccounts
安装服务帐户AWS EBS CSI Driver
eksctl create iamserviceaccount --name ebs-csi-controller-sa --namespace kube-system --cluster <CLUSTER_NAME> --attach-policy-arn arn:aws:iam::<AWS_ACCOUNT_NUMBER>:policy/minio-eks-<CLUSTER_NAME> --approve --override-existing-serviceaccounts
2.4 安装 AWS EBS CSI 驱动
kubectl apply -k "github.com/kubernetes-sigs/aws-ebs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-1.5"
3.安装MinIO Operator
kubectl apply -k github.com/miniohq/marketplace/eks/resources
3.1 获取JWT登录操作员控制台
kubectl -n minio-operator get secret $(kubectl -n minio-operator get serviceaccount console-sa -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decode
4.端口转发到操作员控制台
kubectl -n minio-operator port-forward svc/console 9090

4.1 打开操作员控制台并创建租户
打开浏览器并转到http://localhost:9090。输入上一步的 JWT 登录,然后创建您的第一个租户。

现在点击Create a Tenant

填写所需的 MinIO 租户大小和存储类型

5. 注册 MinIO 订阅网络
要获得支持,请向我们发送一封电子邮件,其中subnet@min.io包括您AWS Account Number开始使用和获得 24/7 支持的方法。
在 AWS EKS 上运行 MinIO
本教程向您展示了如何在 Amazon EKS 上安装 MinIO 并在 15 分钟或更短的时间内创建您的第一个租户。从这里,您可以使用操作员控制台、mc 或 MinIO API 来创建存储桶并进一步配置您的部署。
Amazon EKS 让您有机会在托管的 Kubernetes 集群中运行世界上最快的对象存储 MinIO。您还可以访问包含基础设施、管理和安全工具的 AWS 生态系统。这就像获得 Kubernetes、云和软件定义的对象存储的所有好处,但没有麻烦。
如果您想在 EKS 集群之外公开 MinIO 服务,请参阅我们的相关详细教程,使用弹性负载均衡器在 AWS EKS 中公开 MinIO 服务:概述。
如果您有任何问题或意见,请发送电子邮件至sales@minio.org.cn或加入我们的Slack 社区。