MinIO 多云对象存储现已在 AWS Marketplace 上市
 
                        MinIO 的多云凭据现已得到广泛认可,数百万次部署遍布公有云、私有云和边缘,仅 AWS 上就接近百万次。
我们将 MinIO 添加到 AWS Marketplace 的目标是让客户更容易在最大的公有云中运行 MinIO,并在过程中获得运营和经济效益。
作为领先的云提供商,AWS 在许多多云策略中占据突出地位。
我们对 AWS Marketplace 的方法是有主见的,并且以 Kubernetes 为中心。我们仔细考虑了客户的需求,并开发了一种基于 YAML 的方法,只需点击几下即可实现。
高级用户可以继续自行构建解决方案,但我们认为,对于大多数市场而言,“点击几下即可完成”的方法将提供弹性、安全、可扩展性和运营效率的最佳组合。使用 MinIO Operator 和 Operator Console 管理这些环境的能力将进一步简化 Day 2 操作。
为了为我们的客户提供最简单、最流畅的 MinIO-on-AWS 体验,我们对 220 多种 AWS 实例类型进行了 TCO 分析,以确保我们为您的对象存储选择最佳的基础设施。我们考虑了存储类型、CPU 类型、核心和网络性能等因素,并计算了使用该实例类型作为 MinIO 节点的每 GB 成本。然后,我们在具有最佳 TCO 的实例上将 MinIO 部署为小型集群。这项工作使我们得出结论:在优化性能时,带有 NVMe 的 i3en.12xlarge 系列实例,以及在优化容量时,带有 HDD 的 d3en.12xlarge 系列实例,提供了最佳的 TCO/性能比。
随着存储需求不断增长,我们让客户能够轻松扩展 - 只需以 4 个 AWS 实例的倍数添加 MinIO 集群即可。配置额外的虚拟机以满足您的容量和擦除编码需求,然后根据满足您财务需求的条款购买它们。例如,通过签订三年期预留实例,可以节省高达 58% 的费用,提前付款可以节省更多。由于涉及许多因素,实例定价可能很复杂,如有任何疑问,请随时通过“联系销售”按钮与我们联系以获取帮助。
您可以利用 MinIO 先进的 数据生命周期功能 来启用存储分层 - 并实现比单纯依赖 S3 本身更好的性能和更低的成本!在 i3en.12xlarge 上为 NVMe 配置一个快速的 MinIO 主存储集群,然后分层到在 d3en.12xlarge 上用于 HDD 的更便宜且速度较慢的 MinIO 次级存储集群,最后将性能敏感度最低的数据分层到更便宜的 AWS S3 Glacier。
也存在经济效益。虽然这是一篇技术文章,但您可以在其他地方找到有关 在 AWS 内部运行 MinIO 提供的成本节省、运营节省和避免锁定方面的更多信息。
在 AWS Marketplace 上开始使用 MinIO 多云对象存储
先决条件
您必须在 AWS Marketplace 中为 MinIO 创建订阅,否则由于缺少授权,此设置的自动化将无法工作。
您还必须安装
配置参数
要开始使用,您将需要为您的集群提供三个基本配置参数:在下面输入它们将填充必要的命令,以通过 EKS 部署 MinIO。
步骤 1:设置集群
eksctl create cluster --config-file minio-cluster.yaml其中 minio-cluster.yaml 文件如下所示
apiVersion: eksctl.io/v1alpha5
availabilityZones:
  - us-west-2c
  - us-west-2d
  - us-west-2b
cloudWatch:
  clusterLogging: { }
iam:
  vpcResourceControllerPolicy: true
  withOIDC: false
kind: ClusterConfig
managedNodeGroups:
  - amiFamily: AmazonLinux2
    desiredCapacity: 2
    maxSize: 2
    minSize: 2
    disableIMDSv1: false
    disablePodIMDS: false
    iam:
      withAddonPolicies:
        albIngress: false
        appMesh: false
        appMeshPreview: false
        autoScaler: false
        certManager: false
        cloudWatch: false
        ebs: false
        efs: false
        externalDNS: false
        fsx: false
        imageBuilder: false
        xRay: false
    instanceSelector: { }
    instanceType: m5.xlarge
    labels:
      alpha.eksctl.io/cluster-name: minio-cluster
      alpha.eksctl.io/nodegroup-name: ng-minio-mngt
      alpha.min.io/nodegroup-template: template
    name: ng-minio-mngt
    privateNetworking: false
    releaseVersion: ""
    securityGroups:
      withLocal: null
      withShared: null
    ssh:
      allow: false
      publicKeyPath: ""
    tags:
      alpha.eksctl.io/nodegroup-name: ng-minio-mngt
      alpha.eksctl.io/nodegroup-type: managed
    volumeIOPS: 3000
    volumeSize: 80
    volumeThroughput: 125
    volumeType: gp3
    preBootstrapCommands:
      - echo IyEvYmluL2Jhc2gKI3NldCAteAoKbW91bnRfZGV2aWNlKCl7CkRFVklDRT0iL2Rldi8kMSIKVk9MVU1FX05BTUU9JDIKTU9VTlRfUE9JTlQ9JDMKCmZvcm1hdF9kZXZpY2UoKSB7CiAgZWNobyAiRm9ybWF0dGluZyAkREVWSUNFIgogIG1rZnMueGZzIC1pbWF4cGN0PTI1IC1mIC1MICRNT1VOVF9QT0lOVCAkREVWSUNFCn0KY2hlY2tfZGV2aWNlKCkgewogIGlmIFsgLWYgIi9ldGMvc3lzdGVtZC9zeXN0ZW0vJE1PVU5UX1BPSU5ULm1vdW50IiBdOyB0aGVuCiAgICBlY2hvICJEZXZpY2UgJE1PVU5UX1BPSU5UICgkREVWSUNFKSBleGlzdHMiCiAgICBlY2hvICJObyBhY3Rpb25zIHJlcXVpcmVkLi4uIgogIGVsc2UKICAgIGVjaG8gIiRNT1VOVF9QT0lOVC5tb3VudCB3YXMgbm90IGZvdW5kLCBjcmVhdGluZyB2b2x1bWUiCiAgICBmb3JtYXRfZGV2aWNlCiAgZmkKfQpjaGVja19tb3VudCgpIHsKICBpZiBbIC1mICIvZXRjL3N5c3RlbWQvc3lzdGVtLyRNT1VOVF9QT0lOVC5tb3VudCIgXTsgdGhlbgogICAgZWNobyAiRm91bmQgJE1PVU5UX1BPSU5ULm1vdW50IGluIC9ldGMvc3lzdGVtZC9zeXN0ZW0vIgogICAgZWNobyAiTm8gYWN0aW9ucyByZXF1aXJlZC4uLiIKICBlbHNlCiAgICBlY2hvICIkTU9VTlRfUE9JTlQubW91bnQgd2FzIG5vdCBmb3VuZCBpbiAvZXRjL3N5c3RlbWQvc3lzdGVtLyBhZGRpbmcgaXQiCiAgICBta2RpciAtcCAvJE1PVU5UX1BPSU5UCiAgICAKICAgIGVjaG8gIltVbml0XSIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIkRlc2NyaXB0aW9uPU1vdW50IFN5c3RlbSBCYWNrdXBzIERpcmVjdG9yeSIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIiIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIltNb3VudF0iID4+IC9ldGMvc3lzdGVtZC9zeXN0ZW0vJE1PVU5UX1BPSU5ULm1vdW50CiAgICBlY2hvICJXaGF0PUxBQkVMPSRNT1VOVF9QT0lOVCIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIldoZXJlPS8kTU9VTlRfUE9JTlQiID4+IC9ldGMvc3lzdGVtZC9zeXN0ZW0vJE1PVU5UX1BPSU5ULm1vdW50CiAgICBlY2hvICJUeXBlPXhmcyIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIk9wdGlvbnM9bm9hdGltZSIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIiIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIltJbnN0YWxsXSIgPj4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8kTU9VTlRfUE9JTlQubW91bnQKICAgIGVjaG8gIldhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0IiA+PiAvZXRjL3N5c3RlbWQvc3lzdGVtLyRNT1VOVF9QT0lOVC5tb3VudAoKICAgIHN5c3RlbWN0bCBlbmFibGUgJE1PVU5UX1BPSU5ULm1vdW50CiAgICBzeXN0ZW1jdGwgc3RhcnQgJE1PVU5UX1BPSU5ULm1vdW50CiAgZmkKfQpMQUJFTD0kKGJsa2lkIC1MICRWT0xVTUVfTkFNRSkKY2hlY2tfZGV2aWNlCmNoZWNrX21vdW50CnN5c3RlbWN0bCBkYWVtb24tcmVsb2FkCn0KCmZvciBpIGluIGBsc2JsayAtZCB8IGdyZXAgLXYgTkFNRSB8IGdyZXAgLXYgbnZtZTAgfCBhd2sgJ3twcmludCAkMX0nYDsgZG8KICBtbnRfcG9pbnQ9YGVjaG8gJGkgfCBzZWQgLWUgJ3MvbnZtZS9kaXNrL2cnIC1lICdzL24xLy9nJ2AKICBtb3VudF9kZXZpY2UgJGkgJGkgJG1udF9wb2ludDsKZG9uZQo= | base64 --decode > mount_drives.sh
      - chmod +x mount_drives.sh
      - ./mount_drives.sh
metadata:
  name: minio-cluster
  region: us-west-2
  version: "1.21"
privateCluster:
  enabled: false
  skipEndpointCreation: false
vpc:
  autoAllocateIPv6: false
  cidr: 192.168.0.0/16
  clusterEndpoints:
    privateAccess: false
    publicAccess: true
  manageSharedNodeSecurityGroupRules: true
  nat:
    gateway: Single步骤 2. 设置所需的角色、策略和连接器
所有这些都限定在名为 minio-cluster 的特定集群中,位于 us-west-2 区域和帐户号 000000000000 中,因此请确保在“配置参数”步骤中更新这些值。
2.1 创建 IAM 策略
aws iam create-policy \
    --policy-name minio-eks-minio-cluster-group-scaling \
    --policy-document file://iam-policy.json其中 iam-policy.json 文件如下所示
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "eks:DescribeNodegroup",
        "eks:ListNodegroups"
      ],
      "Resource": [
        "arn:aws:eks:*:000000000000:nodegroup/minio-cluster/*/*",
        "arn:aws:eks:us-west-2:000000000000:cluster/minio-cluster"
      ]
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": "eks:UpdateNodegroupConfig",
      "Resource": [
        "arn:aws:eks:*:000000000000:nodegroup/minio-cluster/*/*",
        "arn:aws:eks:us-west-2:000000000000:cluster/minio-cluster"
      ]
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "eks:CreateNodegroup",
        "eks:TagResource"
      ],
      "Resource": "arn:aws:eks:us-west-2:000000000000:cluster/minio-cluster"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole",
        "iam:ListAttachedRolePolicies"
      ],
      "Resource": "arn:aws:iam::000000000000:role/eksctl-minio-cluster*"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "iam:GetRole"
      ],
      "Resource": "*"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:DescribeSubnets",
        "autoscaling:Describe*",
        "ec2:DescribeLaunchTemplateVersions"
      ],
      "Resource": "*"
    },
    {
      "Sid": "",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": "*"
    }
}2.2 创建 OIDC 提供程序
eksctl utils associate-iam-oidc-provider --region=us-west-2 --cluster=minio-cluster --approve2.3 创建信任 + 角色 + 服务帐户
eksctl create iamserviceaccount \
    --name integration-sa \
    --namespace minio-operator \
    --cluster minio-cluster \
    --attach-policy-arn arn:aws:iam::000000000000:policy/minio-eks-minio-cluster-group-scaling \
    --approve \
    --override-existing-serviceaccounts步骤 3. 安装 Operator
kubectl apply -k github.com/minio/operator/resources/\?ref\=v4.3.73.1 获取 JWT 以登录 Operator UI
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. 将端口转发到 Operator UI
kubectl -n minio-operator port-forward svc/console 90904.1 打开 UI 并创建租户
转到 https://:9090,输入上一步中的 JWT 并创建一个租户。
现在点击“创建租户”。
填写所需的 MinIO 租户大小和存储类型
步骤 5. 注册 MinIO 支持
要获得 24/7 支持,请发送电子邮件至 support@min.io,并附上您的 AWS 账户编号以开始使用。
MinIO 是多云成功的关键
立即开始使用 AWS Marketplace 上的 MinIO。如果您有任何疑问,请发送邮件至 hello@min.io 或加入 Slack 社区。
