Documentation

kubectl minio tenant expand

Description

Command Requires MinIO Operator

Use the following command to validate that the operator is online and available prior to running this command:

kubectl get deployments -A --field-selector metadata.name=minio-operator

Issue the kubectl minio init command to initiate the operator if it is not already running in the Kubernetes cluster.

Extends the total capacity of a MinIO Tenant by adding a new Pool. A Pool consists of an independent set of pods running the MinIO Server and MinIO Console. The new pool uses the same MinIO Server and Console Docker images as the existing Tenant pool(s).

Syntax

The following example expands a MinIO Tenant with a Pool consisting of 4 MinIO servers with 8 drives each and a total additional capacity of 32Ti:

kubectl minio tenant expand                            \
                     minio-tenant-1                    \
                     --servers          4              \
                     --volumes          8              \
                     --capacity         32Ti           \
                     --namespace        minio-tenant-1 \
                     --storage-class    local-storage

The command has the following syntax:

kubectl minio tenant expand            \
                     TENANT_NAME       \
                     --capacity        \
                     --servers         \
                     --volumes         \
                     --namespace       \
                     [--output]        \
                     [--pool]          \
                     [--storage-class]

Flags

The command supports the following flags:

TENANT_NAME
Required

The name of the MinIO tenant to expand.

--capacity
Optional
The total capacity of the new MinIO Tenant Pool. kubectl minio divides the capacity by the number of --volumes to determine the

amount of resources.requests.storage to set for each Persistent Volume Claim (PVC).

If the existing Persistent Volumes (PV) can satisfy the requested storage, kubectl minio tenant expand hangs and waits until the required storage exists.

--servers
Required

The number of minio servers to deploy in the new MinIO Tenant Pool.

Ensure that the specified number of --servers does not exceed the number of available nodes in the Kubernetes cluster.

--volumes
Required

The number of volumes in the new MinIO Tenant Pool. kubectl minio generates one Persistent Volume Claim (PVC) for each volume.

The number of volumes affects both the requested storage of each PVC and the number of PVC to associate to each MinIO Pod in the new Pool:

The command generates each PVC with Pod-specific selectors, such that each Pod only uses PV that are locally-attached to the node running that Pod.

If the specified number of volumes exceeds the number of unbound PV available in the cluster, kubectl minio tenant expand hangs and waits until the required PV exist.

--namespace
Optional

The namespace in which to create the new MinIO Tenant Pool. The namespace must match that of the MinIO Tenant being extended.

Defaults to minio.

--output
Optional

Outputs the generated YAML objects to STDOUT for further customization.

--output does not create the new MinIO Tenant Pool. Use kubectl apply -f <FILE> to manually create the MinIO tenant using the generated file.

--pool
Optional

The name to assign to the pool created for this expansion.

--storage-class
Optional

The name of the Kubernetes Storage Class to use when creating Persistent Volume Claims (PVC) for the new MinIO Tenant Pool. The specified --storage-class must match the storage-class of the Persistent Volumes (PVs) to which the PVCs should bind.

MinIO strongly recommends creating a Storage Class that corresponds to locally-attached volumes on the host machines on which the Tenant deploys. This ensures each pod can use locally-attached storage for maximum performance and throughput. See the Deploy MinIO Tenant tutorial for guidance on creating Storage Classes for supporting the MinIO Tenant.