文档

升级旧版 MinIO 运算符

MinIO 支持以下旧版本 MinIO 运算符的升级路径

当前版本

支持的升级目标

5.0.15 或更高版本

6.0.4

5.0.0 到 5.0.14

5.0.15

4.2.3 到 4.5.7

4.5.8

4.0.0 到 4.2.2

4.2.3

3.X.X

4.2.2

要从运算符 4.5.7 或更早版本升级到 6.0.4,您必须先升级到 4.5.8 版本,然后再升级到 5.0.15 版本。根据您当前的版本,您可能需要进行一个或多个中间升级才能达到 v4.5.8。

升级到 5.0.15 后,请参阅 升级 MinIO 运算符 以升级到最新版本。

将 MinIO 运算符 4.5.8 及更高版本升级到 5.0.15

先决条件

此过程需要以下内容

  • 您有一个运行 4.5.8 或更高版本的现有 MinIO 运算符部署

  • 您的 Kubernetes 集群运行 1.21.0 或更高版本

  • 您的本地主机安装了 kubectl,并配置了对 Kubernetes 集群的访问权限

此过程将 MinIO 运算符从任何 4.5.8 或更高版本升级到 5.0.15

租户自定义资源定义变更

以下更改适用于运算符 v5.0.0 或更高版本

  • .spec.s3 字段被 .spec.features 字段替换。

  • .spec.credsSecret 字段被 .spec.configuration 字段替换。

    .spec.credsSecret 应该包含 MinIO 部署的所有包含敏感信息的環境变量,并且不应显示在 .spec.env 中。此更改会影响租户 CRD,并且只会影响直接编辑租户 YAML 的用户,例如通过 Helm 或 Kustomize。

  • **日志搜索 API** (.spec.log) 和 **Prometheus** (.spec.prometheus) 部署都已删除。但是,现有部署作为独立部署/有状态集保留运行,并且与租户 CR 无连接。删除租户 CRD **不会** 级联到日志或 Prometheus 部署。

    重要

    MinIO 建议您创建 yaml 文件来管理这些部署。

日志搜索和 Prometheus

最新版本的运算符从包含的运算符工具中删除了日志搜索和 Prometheus。以下步骤备份现有的 yaml 文件,执行一些清理操作,并提供继续使用这两个功能中的任何一个或两个功能的步骤。

  1. 备份 Prometheus 和日志搜索 yaml 文件。

    export TENANT_NAME=myminio
    export NAMESPACE=mynamespace
    kubectl -n $NAMESPACE get secret $TENANT_NAME-log-secret -o yaml > $TENANT_NAME-log-secret.yaml
    kubectl -n $NAMESPACE get cm $TENANT_NAME-prometheus-config-map -o yaml > $TENANT_NAME-prometheus-config-map.yaml
    kubectl -n $NAMESPACE get sts $TENANT_NAME-prometheus -o yaml > $TENANT_NAME-prometheus.yaml
    kubectl -n $NAMESPACE get sts $TENANT_NAME-log -o yaml > $TENANT_NAME-log.yaml
    kubectl -n $NAMESPACE get deployment $TENANT_NAME-log-search-api -o yaml > $TENANT_NAME-log-search-api.yaml
    kubectl -n $NAMESPACE get svc $TENANT_NAME-log-hl-svc -o yaml > $TENANT_NAME-log-hl-svc.yaml
    kubectl -n $NAMESPACE get svc $TENANT_NAME-log-search-api -o yaml > $TENANT_NAME-log-search-api-svc.yaml
    kubectl -n $NAMESPACE get svc $TENANT_NAME-prometheus-hl-svc -o yaml > $TENANT_NAME-prometheus-hl-svc.yaml
    
    • myminio 替换为您要升级的运营商部署中的租户名称。

    • mynamespace 替换为您要升级的运营商部署中租户的命名空间。

    对每个租户重复此操作。

  2. 删除所有租户的所有备份文件的 .metadata.ownerReferences

  3. (可选) 为了继续使用日志搜索 API 和 Prometheus,请将以下变量添加到租户的 yaml 规范文件中的 .spec.env 下。

    使用以下命令编辑租户

    kubectl edit tenants <TENANT-NAME> -n <TENANT-NAMESPACE>
    
    • <TENANT-NAME> 替换为要修改的租户名称。

    • <TENANT-NAMESPACE> 替换为要修改的租户的命名空间。

    在文件中的 .spec.env 下添加以下值

    - name: MINIO_LOG_QUERY_AUTH_TOKEN
      valueFrom:
        secretKeyRef:
          key: MINIO_LOG_QUERY_AUTH_TOKEN
          name: <TENANT_NAME>-log-secret
    - name: MINIO_LOG_QUERY_URL
      value: http://<TENANT_NAME>-log-search-api:8080
    - name: MINIO_PROMETHEUS_JOB_ID
      value: minio-job
    - name: MINIO_PROMETHEUS_URL
      value: http://<TENANT_NAME>-prometheus-hl-svc:9001
    
    • namevalue 行中将 <TENANT_NAME> 替换为您的租户名称。

步骤

以下步骤使用 Kustomize 升级 MinIO 运营商。

对于使用 MinIO Kubernetes 插件安装的 5.0.1 到 5.0.14 版本的运营商,请按照以下 Kustomize 指示升级到 5.0.15 或更高版本。如果您使用 Helm 安装了运营商,请改用 使用 Helm 升级 指示。

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

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

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

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

    您可以通过检索命名空间中运营商 Pod 的对象规范来验证当前安装的运营商版本。以下示例使用 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:v6.0.4",
       "imagePullPolicy": "IfNotPresent",
       "name": "minio-operator"
    }
    

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

  3. 使用 Kustomize 升级运营商

    以下命令将运营商升级到 5.0.15 版本

    kubectl apply -k github.com/minio/operator/?ref=v5.0.15
    

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

    namespace/minio-operator configured
    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/console-sa unchanged
    serviceaccount/minio-operator unchanged
    clusterrole.rbac.authorization.k8s.io/console-sa-role unchanged
    clusterrole.rbac.authorization.k8s.io/minio-operator-role unchanged
    clusterrolebinding.rbac.authorization.k8s.io/console-sa-binding unchanged
    clusterrolebinding.rbac.authorization.k8s.io/minio-operator-binding unchanged
    configmap/console-env unchanged
    secret/console-sa-secret configured
    service/console unchanged
    service/operator unchanged
    service/sts unchanged
    deployment.apps/console configured
    deployment.apps/minio-operator configured
    
  4. 验证运营商升级

    您可以使用之前使用的相同 kubectl 命令检查新的运营商版本

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
    
  5. (可选) 连接到运营商控制台

    运营商控制台服务不会自动绑定或公开自身以供 Kubernetes 集群外部访问。相反,您必须配置一个网络控制平面组件(例如负载均衡器或 Ingress)来授予外部访问权限。

    出于测试目的或短期访问目的,可以通过 NodePort 公开运营商控制台服务,方法是使用以下补丁

    kubectl patch service -n minio-operator console -p '
    {
        "spec": {
            "ports": [
                {
                    "name": "http",
                    "port": 9090,
                    "protocol": "TCP",
                    "targetPort": 9090,
                    "nodePort": 30090
                },
                {
                    "name": "https",
                    "port": 9443,
                    "protocol": "TCP",
                    "targetPort": 9443,
                    "nodePort": 30433
                }
            ],
            "type": "NodePort"
        }
    }'
    

    应用路径后,您就可以通过任何 Kubernetes 工作节点上的端口 30433 访问该服务。

    nodePort 值追加到 Kubernetes 集群中工作节点的外部可访问 IP 地址。根据您是否使用 TLS 部署了运营商控制台,使用相应的 httphttps 端口。

  6. 检索用于登录的运营商控制台 JWT

要继续升级到 6.0.4,请参阅 升级 MinIO 运营商

使用以下命令检索登录运营商控制台所需的 JSON Web Token (JWT)

kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d

如果您的本地主机没有安装 jq 实用程序,您可以运行此命令的 kubectl 部分(在 | jq 之前)并找到输出中的 data.token 部分。

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

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

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

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

  2. 验证现有的运营商安装。

    使用 kubectl get all -n minio-operator 验证所有运营商 Pod 和服务的运行状况和状态。

    如果您将运营商安装到自定义命名空间,请指定该命名空间为 -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. 更新运营商存储库

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

    使用 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 运营商

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

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

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

    命令结果应返回成功,并且 REVISION 值会增加。

  5. 验证运营商升级

    运营商控制台服务不会自动绑定或公开自身以供 Kubernetes 集群外部访问。相反,您必须配置一个网络控制平面组件(例如负载均衡器或 Ingress)来授予外部访问权限。

    出于测试目的或短期访问目的,可以通过 NodePort 公开运营商控制台服务,方法是使用以下补丁

    kubectl patch service -n minio-operator console -p '
    {
        "spec": {
            "ports": [
                {
                    "name": "http",
                    "port": 9090,
                    "protocol": "TCP",
                    "targetPort": 9090,
                    "nodePort": 30090
                },
                {
                    "name": "https",
                    "port": 9443,
                    "protocol": "TCP",
                    "targetPort": 9443,
                    "nodePort": 30433
                }
            ],
            "type": "NodePort"
        }
    }'
    

    应用路径后,您就可以通过任何 Kubernetes 工作节点上的端口 30433 访问该服务。

    nodePort 值追加到 Kubernetes 集群中工作节点的外部可访问 IP 地址。根据您是否使用 TLS 部署了运营商控制台,使用相应的 httphttps 端口。

  6. 检索用于登录的运营商控制台 JWT

    使用以下命令检索登录运营商控制台所需的 JSON Web Token (JWT)

    kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d
    

    如果您的本地主机没有安装 jq 实用程序,您可以运行此命令的 kubectl 部分(在 | jq 之前)并找到输出中的 data.token 部分。

将 MinIO 运营商从 4.2.3 到 4.5.7 升级到 4.5.8

先决条件

此过程需要以下内容

  • 您有一个运行 4.2.3 到 4.5.7 版本的现有 MinIO 运营商部署

  • 您的 Kubernetes 集群运行 1.19.0 或更高版本

  • 您的本地主机安装了 kubectl,并配置了对 Kubernetes 集群的访问权限

步骤

此步骤将 MinIO 运营商从 4.2.3 到 4.5.7 版本升级到 4.5.8 版本。然后,您可以从 4.5.8 版本升级到 5.0.15 版本。

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

    定期升级 MinIO 可确保您的租户拥有最新的功能和性能改进。

    在将升级应用到生产租户之前,请在较低的环境(例如开发或 QA 租户)中测试升级。

    有关升级 MinIO 租户的步骤,请参阅 升级 MinIO 租户

  2. 验证现有的运营商安装。

    使用 kubectl get all -n minio-operator 验证所有运营商 Pod 和服务的运行状况和状态。

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

    您可以通过检索命名空间中运营商 Pod 的对象规范来验证当前安装的运营商版本。以下示例使用 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:v4.5.1",
       "imagePullPolicy": "IfNotPresent",
       "name": "minio-operator"
    }
    
  3. 下载 MinIO Kubernetes 插件的最新稳定版本

    您可以使用 Kubernetes Krew 插件管理器安装 MinIO 插件,也可以通过将插件二进制文件下载并安装到本地主机来手动安装。

    Krew 是 Kubernetes SIG CLI 小组 开发的 kubectl 插件管理器。有关特定说明,请参阅 krew安装文档。您可以将 Krew 插件用于 Linux、macOS 和 Windows 操作系统。

    您可以使用 Krew 使用以下命令安装 MinIO kubectl 插件

    kubectl krew update
    kubectl krew install minio
    

    如果您想使用 Krew 更新 MinIO 插件,请使用以下命令

    kubectl krew upgrade minio
    

    您可以将 MinIO kubectl 插件下载到本地系统路径。 kubectl CLI 会自动发现并运行兼容的插件。

    以下代码下载 MinIO Kubernetes 插件的最新版本并将其安装到系统路径

    curl https://github.com/minio/operator/releases/download/v5.0.14/kubectl-minio_5.0.14_linux_amd64 -o kubectl-minio
    chmod +x kubectl-minio
    mv kubectl-minio /usr/local/bin/
    

    上面的 mv 命令可能需要 sudo 提升,具体取决于经过身份验证的用户的权限。

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

    kubectl minio version
    

    输出应显示运营商版本为 5.0.14。

    您可以将 MinIO kubectl 插件下载到本地系统路径。 kubectl CLI 会自动发现并运行兼容的插件。

    以下 PowerShell 命令下载 MinIO Kubernetes 插件的最新版本并将其安装到系统路径

    Invoke-WebRequest -Uri "https://github.com/minio/operator/releases/download/v5.0.14/kubectl-minio_5.0.14_windows_amd64.exe" -OutFile "C:\kubectl-plugins\kubectl-minio.exe"
    

    确保插件文件夹的路径包含在 Windows PATH 中。

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

    kubectl minio version
    

    输出应显示运营商版本为 5.0.14。

  4. 运行初始化命令以升级运营商

    使用 kubectl minio init 命令升级现有的 MinIO 运营商安装

    kubectl minio init
    
  5. 验证运营商升级

    您可以通过查看使用之前步骤的运营商 Pod 的对象规范来检查运营商版本。

    端口转发

    运营商控制台服务 不会自动绑定或公开自身以供 Kubernetes 集群外部访问。相反,请配置一个网络控制平面组件(例如负载均衡器或 Ingress)来授予外部访问权限。

    出于测试目的或短期访问目的,可以通过 NodePort 公开运营商控制台服务,方法是使用以下补丁

    kubectl patch service -n minio-operator console -p '
    {
        "spec": {
            "ports": [
                {
                    "name": "http",
                    "port": 9090,
                    "protocol": "TCP",
                    "targetPort": 9090,
                    "nodePort": 30090
                },
                {
                    "name": "https",
                    "port": 9443,
                    "protocol": "TCP",
                    "targetPort": 9443,
                    "nodePort": 30433
                }
            ],
            "type": "NodePort"
        }
    }'
    

    补丁命令应输出 service/console patched。您现在可以通过任何 Kubernetes 工作节点上的端口 30433(HTTPS)或 30090(HTTP)访问该服务。

    例如,具有以下运营商节点的 Kubernetes 集群可以通过 https://172.18.0.2:30443 访问

    kubectl get nodes -o custom-columns=IP:.status.addresses[:]
    IP
    map[address:172.18.0.5 type:InternalIP],map[address:k3d-MINIO-agent-3 type:Hostname]
    map[address:172.18.0.6 type:InternalIP],map[address:k3d-MINIO-agent-2 type:Hostname]
    map[address:172.18.0.2 type:InternalIP],map[address:k3d-MINIO-server-0 type:Hostname]
    map[address:172.18.0.4 type:InternalIP],map[address:k3d-MINIO-agent-1 type:Hostname]
    map[address:172.18.0.3 type:InternalIP],map[address:k3d-MINIO-agent-0 type:Hostname]
    

    使用以下命令检索登录运营商控制台所需的 JWT 令牌

    kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d
    

    如果您的本地主机没有安装 jq 实用程序,您可以运行此命令的 kubectl 部分(在 | jq 之前)并找到输出中的 data.token 部分。

将 MinIO 运营商从 4.0.0 到 4.2.2 升级到 4.2.3

先决条件

此步骤假设

  • 您有一个运行 4.0.0 到 4.2.2 版本的现有 MinIO 运营商部署

  • 您的 Kubernetes 集群运行 1.19.0 或更高版本

  • 您的本地主机安装了 kubectl,并配置了对 Kubernetes 集群的访问权限

流程

此流程涵盖了将运行从 4.0.0 到 4.2.2 的任何版本的 MinIO Operator 部署升级到 4.2.3 所需的步骤。然后,您可以执行 将 MinIO Operator 5.0.15 升级到 6.0.4 以完成升级到 6.0.4。

从 4.0.0 - 4.2.2 安装到 6.0.4 没有直接升级路径。

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

    定期升级 MinIO 可确保您的租户拥有最新的功能和性能改进。在将升级应用于生产租户之前,请在较低的环境(例如 Dev 或 QA 租户)中进行测试。

    有关升级 MinIO 租户的步骤,请参阅 升级 MinIO 租户

  2. 检查每个租户池的安全上下文

    使用以下命令验证每个托管 MinIO 租户的规范

    kubectl get tenants <TENANT-NAME> -n <TENANT-NAMESPACE> -o yaml
    

    如果 spec.pools.securityContext 字段对于租户不存在,则租户 pod 可能以 root 身份运行。

    作为 4.2.3 及更高版本的一部分,pod 以有限的权限集运行,这些权限集是在 Operator 升级期间强制执行的。但是,以 root 身份运行 pod 的租户可能会由于安全上下文不匹配而无法启动。您可以设置一个显式安全上下文,允许 pod 以 root 身份运行这些租户

    securityContext:
      runAsUser: 0
      runAsGroup: 0
      runAsNonRoot: false
      fsGroup: 0
    

    您可以使用以下命令编辑租户并应用更改

    kubectl edit tenants <TENANT-NAME> -n <TENANT-NAMESPACE>
    # Modify the securityContext as needed
    

    有关 Kubernetes 安全上下文的更多信息,请参阅 Pod 安全标准

  3. 升级到 Operator 4.2.3

    下载 MinIO Kubernetes 插件 4.2.3 并使用它来升级 Operator。在浏览器中打开 https://github.com/minio/operator/releases/tag/v4.2.3,并下载与您的本地主机操作系统相对应的二进制文件。

    例如,运行 Intel 或 AMD 处理器的 Linux 主机可以运行以下命令

    wget https://github.com/minio/operator/releases/download/v4.2.3/kubectl-minio_4.2.3_linux_amd64 -o kubectl-minio_4.2.3
    chmod +x kubectl-minio_4.2.3
    ./kubectl-minio_4.2.3 init
    
  4. 验证所有租户和 Operator pod

    检查 Operator 和 MinIO 租户命名空间,以确保所有 pod 和服务都已成功启动。

    例如

    kubectl get all -n minio-operator
    kubectl get pods -l "v1.min.io/tenant" --all-namespaces
    
  5. 升级到 6.0.4

    按照 将 MinIO Operator 5.0.15 升级到 6.0.4 流程升级到最新的稳定 Operator 版本。

将 MinIO Operator 3.0.0 到 3.0.29 升级到 4.2.2

先决条件

此步骤假设

  • 您拥有运行 3.X.X 的现有 MinIO Operator 部署

  • 您的 Kubernetes 集群运行 1.19.0 或更高版本

  • 您的本地主机安装了 kubectl,并配置了对 Kubernetes 集群的访问权限

流程

此流程涵盖了将运行从 3.0.0 到 3.2.9 的任何版本的 MinIO Operator 部署升级到 4.2.2 所需的步骤。然后,您可以执行 将 MinIO Operator 4.0.0 到 4.2.2 升级到 4.2.3,然后执行 将 MinIO Operator 5.0.15 升级到 6.0.4

从 3.X.X 系列安装到 6.0.4 没有直接升级路径。

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

    定期升级 MinIO 可确保您的租户拥有最新的功能和性能改进。

    在将升级应用到生产租户之前,请在较低的环境(例如开发或 QA 租户)中测试升级。

    有关升级 MinIO 租户的步骤,请参阅 升级 MinIO 租户

  2. 验证租户 tenant.spec.zones

    使用以下命令验证每个托管 MinIO 租户的规范

    kubectl get tenants <TENANT-NAME> -n <TENANT-NAMESPACE> -o yaml
    
    • 确保每个 tenant.spec.zones 元素都具有设置为该区域名称的 name 字段。每个区域对于该租户必须具有唯一的名称,例如 zone-0zone-1 分别用于第一个和第二个区域。

    • 确保每个 tenant.spec.zones 都具有一个明确的 securityContext,描述 pod 在集群中运行的权限集。

    以下租户 YAML 片段示例设置了指定的字段

    image: "minio/minio:$(LATEST-VERSION)"
    ...
    zones:
    - servers: 4
      name: "zone-0"
      volumesPerServer: 4
      volumeClaimTemplate:
         metadata:
         name: data
         spec:
         accessModes:
            - ReadWriteOnce
         resources:
            requests:
               storage: 1Ti
      securityContext:
         runAsUser: 0
         runAsGroup: 0
         runAsNonRoot: false
         fsGroup: 0
    - servers: 4
      name: "zone-1"
      volumesPerServer: 4
      volumeClaimTemplate:
         metadata:
         name: data
         spec:
         accessModes:
            - ReadWriteOnce
         resources:
            requests:
               storage: 1Ti
      securityContext:
         runAsUser: 0
         runAsGroup: 0
         runAsNonRoot: false
         fsGroup: 0
    

    您可以使用以下命令编辑租户并应用更改

    kubectl edit tenants <TENANT-NAME> -n <TENANT-NAMESPACE>
    
  3. 升级到 Operator 4.2.2

    下载 MinIO Kubernetes 插件 4.2.2 并使用它来升级 Operator。在浏览器中打开 https://github.com/minio/operator/releases/tag/v4.2.2,并下载与您的本地主机操作系统相对应的二进制文件。例如,运行 Intel 或 AMD 处理器的 Linux 主机可以运行以下命令

    wget https://github.com/minio/operator/releases/download/v4.2.3/kubectl-minio_4.2.2_linux_amd64 -o kubectl-minio_4.2.2
    chmod +x kubectl-minio_4.2.2
    
    ./kubectl-minio_4.2.2 init
    
  4. 验证所有租户和 Operator pod

    检查 Operator 和 MinIO 租户命名空间,以确保所有 pod 和服务都已成功启动。

    例如

    kubectl get all -n minio-operator
    
    kubectl get pods -l "v1.min.io/tenant" --all-namespaces
    
  5. 升级到 4.2.3

    按照 将 MinIO Operator 4.0.0 到 4.2.2 升级到 4.2.3 流程升级到 Operator 4.2.3。然后,您可以升级到 6.0.4。