文档

升级 MinIO Operator

您可以随时升级 MinIO Operator,而不会影响您管理的 MinIO 租户。

作为升级过程的一部分,Operator 可能会更新和重新启动租户以支持对 MinIO 自定义资源定义 (CRD) 的更改。这些更改不需要任何操作员或管理员执行任何操作,并且不会影响租户操作。

此页面介绍如何从 Operator 5.0.15 升级到 6.0.4。请参阅 将 MinIO Operator 4.5.8 及更高版本升级到 5.0.15,了解有关在开始此过程之前升级到 Operator 5.0.15 的说明。

Operator 6.0.0 不推荐使用 Operator 控制台

从 Operator 6.0.0 开始,MinIO Operator 控制台已弃用并被删除。

您可以继续使用标准 Kubernetes 方法(如 Kustomize 或 Helm)来管理和部署 MinIO 租户。

将 MinIO Operator 5.0.15 升级到 6.0.4

重要

Operator 6.0.0 不推荐使用 MinIO Operator 控制台,并从 MinIO Operator CRD 中删除了相关资源。这包括删除 Operator 控制台资源(如服务和 Pod)。

将来使用 Kustomization 或 Helm 来管理租户。

以下过程使用 Kustomize 升级 MinIO Operator。对于使用 Operator 5.0.0 到 5.0.14 的部署,请在执行此升级之前遵循 将 MinIO Operator 4.5.8 及更高版本升级到 5.0.15 中的过程。

如果您使用 Helm 安装了 Operator,请改用 使用 Helm 升级 指示。

  1. (可选)将每个 MinIO 租户更新到最新的稳定 MinIO 版本。

    定期升级 MinIO 可确保您的租户拥有最新的功能和性能改进。在应用于生产租户之前,请在较低的环境(如开发或 QA 租户)中测试升级。请参阅 升级 MinIO 租户,了解有关升级 MinIO 租户的过程。

  2. 验证现有的 Operator 安装。使用 kubectl get all -n minio-operator 验证所有 Operator Pod 和服务的运行状况和状态。

    如果您将 Operator 安装到自定义命名空间,请将该命名空间指定为 -n <NAMESPACE>

    您可以通过检索命名空间中 Operator Pod 的对象规范来验证当前安装的 Operator 版本。以下示例使用 jq 工具从 kubectl 中筛选出必要的信息

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
    

    输出类似于以下内容

    {
       "env": [
          {
             "name": "CLUSTER_DOMAIN",
             "value": "cluster.local"
          }
       ],
       "image": "minio/operator:v5.0.15",
       "imagePullPolicy": "IfNotPresent",
       "name": "minio-operator"
    }
    

    如果您的本地主机未安装 jq 实用程序,您可以运行命令的第一部分并找到输出的 spec.containers 部分。

  3. 使用 Kustomize 升级 Operator

    以下命令将 Operator 升级到 6.0.4 版本。

    kubectl apply -k github.com/minio/operator
    

    在下面的示例输出中,configured 指示从更新的 CRD 应用了新的更改的位置。

    namespace/minio-operator unchanged
    customresourcedefinition.apiextensions.k8s.io/miniojobs.job.min.io configured
    customresourcedefinition.apiextensions.k8s.io/policybindings.sts.min.io configured
    customresourcedefinition.apiextensions.k8s.io/tenants.minio.min.io configured
    serviceaccount/minio-operator unchanged
    clusterrole.rbac.authorization.k8s.io/minio-operator-role configured
    clusterrolebinding.rbac.authorization.k8s.io/minio-operator-binding unchanged
    service/operator unchanged
    service/sts unchanged
    deployment.apps/minio-operator configured
    
  4. 验证 Operator 升级

    您可以使用之前使用的相同 kubectl 命令检查新的 Operator 版本。

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
    

以下步骤使用 Helm 升级现有的 MinIO Operator 安装。

如果您使用 Kustomize 安装了 Operator,请改用 使用 Kustomize 升级 指示。

  1. (可选)将每个 MinIO 租户更新到最新的稳定 MinIO 版本。

    定期升级 MinIO 可确保您的租户拥有最新的功能和性能改进。在应用于生产租户之前,请在较低的环境(如开发或 QA 租户)中测试升级。请参阅 升级 MinIO 租户,了解有关升级 MinIO 租户的过程。

  2. 验证现有的 Operator 安装。

    使用 kubectl get all -n minio-operator 验证所有 Operator Pod 和服务的健康状况和状态。

    如果您将 Operator 安装到自定义命名空间,请将该命名空间指定为 -n <NAMESPACE>

    使用 helm list 命令查看命名空间中已安装的图表。

    helm list -n minio-operator
    

    结果应类似于以下内容。

    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
    operator        minio-operator  1               2023-11-01 15:49:54.539724775 -0400 EDT deployed        operator-5.0.x v5.0.x
    
  3. 更新 Operator 仓库

    使用 helm repo update minio-operator 更新 MinIO Operator 仓库。如果您为 MinIO Operator 仓库设置了不同的别名,请在命令中指定该别名,而不是 minio-operator。您可以使用 helm repo list 查看已安装的仓库。

    更新 Operator 仓库后,使用 helm search 检查最新可用的图表版本。

    helm search repo minio-operator
    

    响应应类似于以下内容。

    NAME                            CHART VERSION   APP VERSION     DESCRIPTION
    minio-operator/minio-operator   4.3.7           v4.3.7          A Helm chart for MinIO Operator
    minio-operator/operator         6.0.4          v6.0.4         A Helm chart for MinIO Operator
    minio-operator/tenant           6.0.4          v6.0.4         A Helm chart for MinIO Operator
    

    minio-operator/minio-operator 是一个旧版图表,在正常情况下**不应**安装。

  4. 运行 helm upgrade

    Helm 使用最新图表升级 MinIO Operator。

    helm upgrade -n minio-operator \
    operator minio-operator/operator
    

    如果您将 MinIO Operator 安装到不同的命名空间,请在 -n 参数中指定。

    如果您使用的安装名称与 operator 不同,请将上述值替换为安装名称。

    命令结果应返回成功,并在 REVISION 值中增加一个版本号。

  5. 验证 Operator 升级

    您可以使用之前使用的相同 kubectl 命令检查新的 Operator 版本。

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'