Logo

文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

在 Kubernetes 上部署 MinIO Operator

概述

MinIO 是一个 Kubernetes 原生高性能对象存储,提供与 S3 兼容的 API。MinIO Kubernetes Operator 支持将 MinIO 租户部署到私有和公共云基础设施("混合"云)上。

以下过程将在 Kubernetes 基础设施上安装最新稳定版 (4.4.16) 的 MinIO Operator 和 MinIO Plugin:

  • MinIO Operator 会安装一个Custom Resource Document (CRD)支持将 MinIO 租户描述为 Kubernetes对象. 参见 MinIO OperatorCRD 参考有关 MinIO CRD 的完整文档。

  • MinIO Kubernetes 插件为在 Kubernetes 集群上部署和管理 MinIO 租户提供了原生支持kubectl minio命令。

此过程假设一个通用的 Kubernetes 环境。以下 过程为某些 Kubernetes 提供商提供了更具体的指导:

本文档假定您熟悉所有引用的 Kubernetes 概念、工具和流程。虽然本文档可能提供有关配置或部署 Kubernetes 相关资源的指导 这些指导基于最大努力原则,不能替代官方文档Kubernetes Documentation.

前提条件

Kubernetes Version 1.19.0

从 v4.0.0 开始,MinIO Operator 和 MinIO Kubernetes Plugin 需要 Kubernetes 1.19.0 及更高版本。Kubernetes 基础设施thekubectlCLI工具必须具有相同的1.19.0+版本。

在 v4.0.0 之前,MinIO Operator 和 Plugin 需要 Kubernetes 1.17.0。必须将您的 Kubernetes 基础设施升级到 1.19.0 或更高版本,以使用 MinIO Operator 或 Plugin v4.0.0 或更高版本。

Kuberneteskrew

此过程使用 Kuberneteskrew用于安装 MinIO Kubernetes Operator 和插件的插件管理器。

查看krew 安装文档有关具体说明。

Kubernetes TLS Certificate API

MinIO Operator 会自动生成 TLS 证书签名请求 (CSR) 并使用 Kubernetescertificates.k8s.io TLS证书管理API创建已签名的TLS证书。

因此,MinIO Operator需要Kuberneteskube-controller-manager配置包括以下内容配置设置:

  • --cluster-signing-key-file- 指定用于签署集群范围证书的PEM编码RSA或ECDSA私钥。

  • --cluster-signing-cert-file- 指定用于颁发集群范围证书的PEM编码x.509证书颁发机构证书。

如果Kubernetes集群未配置为响应生成的CSR,Operator将无法完成初始化。某些Kubernetes提供商默认不指定这些配置值。

要验证是否kube-controller-manager具有所需的 设置,请使用以下命令。替换$CLUSTER-NAMEKubernetes 集群的名称:

kubectl get pod kube-controller-manager-$CLUSTERNAME-control-plane \
  -n kube-system -o yaml

确认输出包含高亮显示的行。上述示例命令的输出可能与您终端中的输出有所不同:

 spec:
 containers:
 - command:
     - kube-controller-manager
     - --allocate-node-cidrs=true
     - --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
     - --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
     - --bind-address=127.0.0.1
     - --client-ca-file=/etc/kubernetes/pki/ca.crt
     - --cluster-cidr=10.244.0.0/16
     - --cluster-name=my-cluster-name
     - --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
     - --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
 ...

重要

MinIO Operator 使用指定的证书颁发机构(CA)自动为所有 MinIO 租户 Pod 生成 TLS 证书。Kubernetes 集群外部的客户端必须信任 Kubernetes 集群 CA 才能连接到 MinIO Operator 或 MinIO 租户。

无法信任 Kubernetes 集群 CA 的客户端可以尝试禁用与 MinIO Operator 或 MinIO Tenant 连接的 TLS 验证。

或者,您可以生成由已知可信 CA 签名的 x.509 TLS 证书,并将这些证书传递给 MinIO 租户。 请参阅用户生成的TLS证书用于MinIO对象存储获取更完整的文档。

过程

1) 安装 MinIO Kubernetes Operator

运行以下命令,使用 Kubernetes 安装 MinIO Operator 和 Pluginkrew插件管理器:

kubectl krew update
kubectl krew install minio

您也可以下载kubectl-minio直接安装插件到您的系统PATH以下代码下载 MinIO Kubernetes 插件的最新稳定版本 4.4.16 并将其安装到系统中$PATH:

wget https://github.com/minio/operator/releases/download/v4.4.16/kubectl-minio_4.4.16_linux_amd64 -O kubectl-minio
chmod +x kubectl-minio
mv kubectl-minio /usr/local/bin/

运行以下命令来验证插件的安装:

kubectl minio version

输出应显示 Operator 版本为 4.4.16。

2) 初始化 MinIO Kubernetes Operator

运行kubectl minio init初始化 MinIO Operator 的命令:

kubectl minio init

该命令使用以下默认设置初始化 MinIO Operator:

重要

记录初始化 MinIO Operator 时使用的所有参数。

3) 验证 Operator 安装

要验证安装,请运行以下命令:

kubectl get all --namespace minio-operator

如果您使用自定义命名空间初始化了 Operator,请替换minio-operator使用该命名空间。

输出类似于以下内容:

NAME                                  READY   STATUS    RESTARTS   AGE
pod/console-59b769c486-cv7zv          1/1     Running   0          81m
pod/minio-operator-7976b4df5b-rsskl   1/1     Running   0          81m

NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
service/console    ClusterIP   10.105.218.94    <none>        9090/TCP,9443/TCP   81m
service/operator   ClusterIP   10.110.113.146   <none>        4222/TCP,4233/TCP   81m

NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/console          1/1     1            1           81m
deployment.apps/minio-operator   1/1     1            1           81m

NAME                                        DESIRED   CURRENT   READY   AGE
replicaset.apps/console-59b769c486          1         1         1       81m
replicaset.apps/minio-operator-7976b4df5b   1         1         1       81m

4) 打开 Operator Console

运行kubectl minio proxy临时转发流量的命令MinIO Operator Console连接到您的本地机器:

kubectl minio proxy

命令输出中包含一个JWT令牌,您必须使用它来登录Operator Console。

MinIO Operator Console

您可以部署一个新的MinIO Tenant从 Operator Dashboard。