文档

升级 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 可确保您的租户拥有最新的功能和性能改进。在将升级应用于生产租户之前,请在较低的环境(例如 Dev 或 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 可确保您的租户拥有最新的功能和性能改进。在将升级应用于生产租户之前,请在较低的环境(例如 Dev 或 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 查看已安装的仓库。

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

    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'