Upgrade a MinIO Tenant
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_NAMEwith the name of the Tenant.Replace
TENANT_NAMESPACEwith 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_NAMEwith the name of the Tenant.Replace
RELEASE:YYYY-MM-DDTHH-MM-SSZwith the specific release to use. Specifyminio/minioto use the latest stable version of MinIO.Replace
TENANT_NAMESPACEwith 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.
Verify the existing MinIO Tenant installation.
Use
kubectl get all -n TENANT_NAMESPACEto verify the health and status of all Tenant pods and services.Use the
helm listcommand 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
Update the Operator Repository
Use
helm repo update minio-operatorto update the MinIO Operator repo. If you set a different alias for the MinIO Operator repository, specify that to the command. You can usehelm repo listto review your installed repositories.Use
helm searchto 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-operatoris a legacy chart and should not be installed under normal circumstances.Run
helm upgradeHelm 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
REVISIONvalue.Validate the Tenant Upgrade
Check that all services and pods are online and functioning normally.