First you need to pick a pool that you need to decommission.
mc admin decommission start myminio/ https://minio-ss-0-{0...3}.minio-hl..svc.cluster.local/export{0...3}
Then monitor the status of the decommissioned pool
mc admin decom status myminio/
More details documentation available here
After the pool says completed you can remove the pool from your tenant.yaml
and apply the change using kubectl apply -f <tenant.yaml>
.
Tenant CRD does not mandate spec.pools[].Name
to be non-empty, however to safely perform decommission of a pool
it is mandatory to have a spec.pools[].Name
. if a spec.pools[].Name
is empty for any pool
removal of that pool
is rejected. Following changes are necessary in such scenarios to proceed with removal of the pool
.
First figure out what is the current autogenerated ssName
(statefulset name) of the individual pools:
kubectl get tenants -n <namespace> <tenant_name> | jq '.status.pools[].ssName'
A practical example:
~ kubectl get tenants -n ns-1 all-nodes -o json | jq '.status.pools[].ssName'
"worker-ss-0"
"worker-ss-1"
In this case your tenant name is worker
and pools are ss-0
and ss-1
, proceed to make following changes to your tenant.yaml
spec:
pools:
...
- name: "ss-0"
...
...
- name: "ss-1"
...
...
NOTE: This applies to helm chart users as well