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.11.
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.11.
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.11 of the MinIO Kubernetes plugin and installs it to the system path:
curl https://github.com/minio/operator/releases/download/v5.0.11/kubectl-minio_5.0.11_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.11.
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.11 of the MinIO Kubernetes plugin and installs it to the system path:
Invoke-WebRequest -Uri "https://github.com/minio/operator/releases/download/v5.0.11/kubectl-minio_5.0.11_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.11.
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. Specifyminio/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.
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
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 usehelm 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.11 v5.0.11 A Helm chart for MinIO Operator minio-operator/tenant 5.0.11 v5.0.11 A Helm chart for MinIO Operator
The
minio-operator/minio-operator
is a legacy chart and should not be installed under normal circumstances.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.Validate the Tenant Upgrade
Check that all services and pods are online and functioning normally.