Pool Expansion
Add storage capacity to a RustFS Tenant by appending a storage pool.
All pools in a Tenant form one RustFS cluster. Add capacity by appending a new pool to spec.pools; do not change the shape of an existing pool.
Existing pools are immutable
Do not change servers or persistence.volumesPerServer on an existing pool. The Operator creates an immutable StatefulSet for each pool.
Check the Tenant
kubectl -n storage-a get tenant tenant-a
kubectl -n storage-a get pods,pvc -l rustfs.tenant=tenant-aConfirm that the Tenant is Ready and the cluster has enough compute and storage capacity.
Add a pool
Append the following entry to the existing spec.pools list in tenant.yaml. Keep all existing entries unchanged.
- name: pool-1
servers: 2
persistence:
volumesPerServer: 2
volumeClaimTemplate:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100GiThis pool creates four PVCs: two servers multiplied by two volumes per server. Apply the complete Tenant manifest:
kubectl apply -f tenant.yamlWatch the expansion
kubectl -n storage-a get tenant tenant-a -w
kubectl -n storage-a get pods,pvc \
-l rustfs.pool=pool-1Wait for the Tenant to return to Ready before making another topology change. Increasing an existing PVC size is a separate Kubernetes storage operation and depends on the StorageClass.