This page documents several common procedures for managing an existing MinIO Tenant.
This procedure documents expanding a MinIO Tenant by adding a new Pool of MinIO Pods and storage resources.
MinIO automatically generates one Persistent Volume Claim (PVC) for each volume in the Pool. The Kubernetes cluster must have an equal number of unbound Persistent Volumes (PV). MinIO strongly recommends using locally-attached storage to maximize performance and throughput.
The following steps create the necessary local Persistent Volumes (PV) resources such that each MinIO Pod and their associated storage are local to the same Node.
You can skip this step if the cluster already has local PV resources
configured for use by the MinIO Tenant.
The following YAML describes a PV local volume:
apiVersion: v1
kind: PersistentVolume
metadata:
name: PV-NAME
spec:
capacity:
storage: 1Ti
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storage-class: local-storage
local:
path: /mnt/disks/ssd1
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- NODE-NAME
Field |
Description |
|---|---|
metadata:
name:
|
Set to a name that supports easy visual identification of the
|
nodeAffinity:
required:
nodeSelectorTerms:
- key:
values:
|
Set to the name of the node on which the physical disk is installed. |
spec:
storage-class:
|
Set to the |
spec:
local:
path:
|
Set to the full file path of the locally-attached disk. You can specify a directory on the disk to isolate MinIO-specific data. The specified disk or directory must be empty for MinIO to start. |
Create one PV for each volume in the new Pool. For example, given a
Kubernetes cluster with 4 available nodes with 4 locally attached drives,
create a total of 16 local PVs.
Issue the kubectl get PV command to validate the created PVs:
kubectl get PV
Use the kubectl minio tenant expand command to create the MinIO
Tenant.
The following example expands a MinIO Tenant with a Pool consisting of 4 Nodes with 4 locally-attached drives of 1Ti each:
kubectl minio tenant expand minio-tenant-1 \
--servers 4 \
--volumes 16 \
--capacity 16Ti \
--storage-class local-storage \
--namespace minio-tenant-1
The following table explains each argument specified to the command:
Argument |
Description |
|---|---|
The name of the MinIO Tenant which the command expands with the new pool. |
|
The number of |
|
The number of volumes in the new Tenant Pool. |
|
The total capacity of the Tenant Pool. |
|
The Kubernetes |
|
The Kubernetes namespace of the existing MinIO Tenant to which to add the new Tenant pool. |
Use the kubectl minio tenant info command to return a summary of
the MinIO Tenant, including the new Pool:
kubectl minio tenant info minio-tenant-1 \
--namespace minio-tenant-1
This procedure documents upgrading pods running on a MinIO Tenant.
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.
Use the kubectl minio tenant upgrade command to upgrade the Docker
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 Tags for a list of release tags.
MinIO Releases use RELEASE:YYYY-MM-DDTHH-MM-SSZ format.
Use the kubectl minio tenant delete command to delete a MinIO
Tenant and its associated resources.
The delete behavior of each Persistent Volume Claims (PVC) generated by the
Tenant depends on the
Reclaim Policy of its bound
Persistent Volume (PV):
For recycle or delete policies, the command deletes the PVC.
For retain, the command retains the PVC.
Deletion of the underlying PV, whether automatic or manual, results in the
loss of any objects stored on the MinIO Tenant. Perform all due diligence in
ensuring the safety of stored data prior to deleting the Tenant.
kubectl minio tenant delete TENANT_NAME \
--namespace TENANT_NAMESPACE
Replace TENANT_NAME with the name of the Tenant.
Replace TENANT_NAMESPACE with the namespace of the Tenant.
The command includes a confirmation prompt that requires explicit approval of the delete operation.