MinIO uses distributed erasure coding and supports scale-out only. Each scale-out adds a new pool; each pool requires a minimum of 2 nodes.
MinIO does not support scale-in. Once nodes are added to a distributed pool, they cannot be removed. KubeBlocks blocks scale-in OpsRequests for MinIO — any attempt will remain in Running state indefinitely without removing any nodes or data.
Add 2 replicas (e.g., from 2 to 4):
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: minio-scale-out
namespace: demo
spec:
clusterName: minio-cluster
type: HorizontalScaling
horizontalScaling:
- componentName: minio
scaleOut:
replicaChanges: 2
EOF
Monitor progress:
kubectl get opsrequest minio-scale-out -n demo -w
NAME TYPE CLUSTER STATUS PROGRESS AGE
minio-scale-out HorizontalScaling minio-cluster Succeed 2/2 2m
kubectl delete opsrequest minio-scale-out -n demo --ignore-not-found