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:
- --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. - The total capacity of the new MinIO Tenant Pool.
- --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 ofPVC
to associate to each MinIO Pod in the new Pool:The command
kubectl minio
divides the--capacity
by the number of volumes to determine the amount ofresources.requests.storage
to set for eachPVC
.kubectl minio
determines the number ofPVC
to associate to eachminio
server by dividing--volumes
by--servers
.
The command generates each
PVC
with Pod-specific selectors, such that each Pod only usesPV
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 requiredPV
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 toSTDOUT
for further customization.--output
does not create the new MinIO Tenant Pool. Usekubectl apply -f <FILE>
to manually create the MinIO tenant using the generated file.
- --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 thestorage-class
of the Persistent Volumes (PVs
) to which thePVCs
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.