Documentation

Upgrade a MinIO Tenant

Important

For Tenants using a MinIO Image older than RELEASE.2024-03-30T09-41-56Z running with AD/LDAP enabled, you must read through the release notes for RELEASE.2024-04-18T19-09-19Z before starting this procedure. You must take the extra steps documented in the linked release as part of the upgrade procedure.

Upgrade the Tenant using the MinIO Kubernetes Plugin

The following procedure upgrades the MinIO Operator using the kubectl minio tenant upgrade command.

If you deployed the Tenant using Helm, use the Upgrade the Tenant using the MinIO Helm Chart procedure instead.

This procedure requires a valid installation of the MinIO Kubernetes Operator and assumes the local host has a matching installation of the MinIO Kubernetes Operator and plugin. This procedure assumes the latest stable Operator version 5.0.15.

You can install the MinIO plugin using either the Kubernetes Krew plugin manager or manually by downloading and installing the plugin binary to your local host:

Krew is a kubectl plugin manager developed by the Kubernetes SIG CLI group. See the krew installation documentation for specific instructions. You can use the Krew plugin for Linux, MacOS, and Windows operating systems.

You can use Krew to install the MinIO kubectl plugin using the following commands:

kubectl krew update
kubectl krew install minio

If you want to update the MinIO plugin with Krew, use the following command:

kubectl krew upgrade minio

You can validate the installation of the MinIO plugin using the following command:

kubectl minio version

The output should match 5.0.15.

You can download the MinIO kubectl plugin to your local system path. The kubectl CLI automatically discovers and runs compatible plugins.

The following code downloads the latest stable version 5.0.15 of the MinIO Kubernetes plugin and installs it to the system path:

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

The mv command above may require sudo escalation depending on the permissions of the authenticated user.

Run the following command to verify installation of the plugin:

kubectl minio version

The output should display the Operator version as 5.0.15.

You can download the MinIO kubectl plugin to your local system path. The kubectl CLI automatically discovers and runs compatible plugins.

The following PowerShell command downloads the latest stable version 5.0.15 of the MinIO Kubernetes plugin and installs it to the system path:

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

Ensure the path to the plugin folder is included in the Windows PATH.

Run the following command to verify installation of the plugin:

kubectl minio version

The output should display the Operator version as 5.0.15.

See Deploy the MinIO Operator for complete documentation on deploying the MinIO Operator.

Important

If you are upgrading the MinIO Operator, there may be additional changes to the tenant specs required. Refer to the MinIO Operator Upgrade for specifics on any changes necessary to the tenant spec. The required changes vary based on the Operator version you are upgrading from and to.

If required changes are not made to the tenant before upgrading the Operator, your tenant may not be accessible after the upgrade.

1) Validate the Active MinIO Version

Use the kubectl minio tenant info command to return a summary of the MinIO Tenant, including the new Pool:

kubectl minio tenant info TENANT_NAME \
  --namespace TENANT_NAMESPACE
  • Replace TENANT_NAME with the name of the Tenant.

  • Replace TENANT_NAMESPACE with the namespace of the Tenant.

The output includes the version of the MinIO Server used by all Pods in the Tenant.

2) Upgrade the MinIO Tenant

Use the kubectl minio tenant upgrade command to upgrade the container image used by all MinIO Pods in the Tenant. MinIO upgrades all minio server processes at once. This may result in downtime until the upgrade process completes.

kubectl minio tenant upgrade TENANT_NAME                      \
        --image     minio:minio:RELEASE:YYYY-MM-DDTHH-MM-SSZ  \
        --namespace TENANT_NAMESPACE
  • Replace TENANT_NAME with the name of the Tenant.

  • Replace RELEASE:YYYY-MM-DDTHH-MM-SSZ with the specific release to use. Specify minio/minio to use the latest stable version of MinIO.

  • Replace TENANT_NAMESPACE with the namespace of the Tenant.

See MinIO’s DockerHub Repository for a list of available release tags.

Upgrade the Tenant using the MinIO Helm Chart

This procedure upgrades an existing MinIO Tenant using Helm Charts.

If you deployed the Tenant using the MinIO Kubernetes Plugin, use the Upgrade the Tenant using the MinIO Kubernetes Plugin procedure instead.

  1. Verify the existing MinIO Tenant installation.

    Use kubectl get all -n TENANT_NAMESPACE to verify the health and status of all Tenant pods and services.

    Use the helm list command to view the installed charts in the namespace:

    helm list -n TENANT_NAMESPACE
    

    The result should resemble the following:

    NAME            NAMESPACE         REVISION        UPDATED                                 STATUS          CHART           APP VERSION
    CHART_NAME      TENANT_NAMESPACE  1               2023-11-01 15:49:58.810412732 -0400 EDT deployed        tenant-5.0.x   v5.0.x
    
  2. Update the Operator Repository

    Use helm repo update minio-operator to update the MinIO Operator repo. If you set a different alias for the MinIO Operator repository, specify that to the command. You can use helm repo list to review your installed repositories.

    Use helm search to check the latest available chart version after updating the Operator Repo:

    helm search repo minio-operator
    

    The response should resemble the following:

    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         5.0.15          v5.0.15         A Helm chart for MinIO Operator
    minio-operator/tenant           5.0.15          v5.0.15         A Helm chart for MinIO Operator
    

    The minio-operator/minio-operator is a legacy chart and should not be installed under normal circumstances.

  3. Run helm upgrade

    Helm uses the latest chart to upgrade the Tenant:

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

    The command results should return success with a bump in the REVISION value.

  4. Validate the Tenant Upgrade

    Check that all services and pods are online and functioning normally.