Expand an AIStor Deployment on Kubernetes
The following procedure adds a server pool to an existing AIStor deployment running on Kubernetes infrastructure. Each pool expands the total available storage capacity of the cluster while maintaining the overall availability of the cluster.
All commands provided below use example values. Replace these values with those appropriate for your deployment.
-
Retrieve and review the existing object store Helm chart.
The
objectStore.pools
key describes the current deployment topology and pool configuration. Each element in thepools
array describes a single server pool in the AIStor deployment.Review this file and take a timestamped backup as
object-store-NAME-values.yaml.TIMESTAMP-bak
before proceeding. -
Prepare new worker nodes.
Add or configure the new worker nodes for supporting AIStor. Ensure the worker nodes have the necessary storage and compute resources for supporting the target architecture.
-
Modify the
objectStore.pools
array with the new poolThe following example adds a new pool
pool-1
to an existing deployment with a single poolpool-0
. Each pool uses anodeSelector
to restrict deployment onto specific worker nodes based on label:objectStore: name: primary-object-store # name of the AIStor Server pools: - name: pool-0 servers: 8 # Number of servers/pods to deploy volumesPerServer: 8 # Number of Persistent Volumes per Server/Pod size: 2Ti # Size of each PV storageClassName: directpv-min-io # Storage Class assigned to each PV nodeSelector: { aistor-label: "primary-object-store-pool-0" } - name: pool-1 servers: 32 volumesPerServer: 32 size: 2Ti storageClassName: directpv-min-io nodeSelector: { aistor-label: "primary-object-store-pool-1" } services: minio: serviceType: NodePort nodePort: 31000 # Select an available NodePort in the supported range of 30000-32767
-
Deploy the chart with the updated values
Use the
helm upgrade
command to upgrade the chart with the newvalues.yaml
:helm upgrade primary-object-store minio/aistor-object-store \ -n aistor-primary-object-store \ -f primary-object-store-values.yaml
You can use
kubectl get events -n NAMESPACE --watch
to monitor the progress of expansion.Once the expansion completes, use the
mc admin info
command to validate the expanded topology and status. -
Next steps
After validating cluster health and expanded storage, you can update any load balancers, reverse proxies, or other network management tools with the new hostnames of the added server pool. This ensures that incoming connections balance appropriately across the expanded topology.