Modern applications access data through REST API. Minio aggregates PVs into scalable distributed object storage, with Amazon S3 REST API.
Minio provides data protection and high availability, within a tenant, and withstands half the number of node failures. Kubernetes provides high availability across tenants and racks. Perform rolling upgrades in batches, with no downtime.
Kubernetes makes it easy to deploy and manage multiple Minio tenants. Each tenant may run a different Minio version and upgrade at its own pace. Kubernetes handles resource management and scheduling among the tenants.
Manage Minio configuration and credentials, using Kubernetes ConfigMaps and Secrets, when deployed via Helm Chart. In addition, you may use Kubernetes auto-scaling for Minio lambda function.
Minio uses Persistent volume to store data. At the time of deployment, Minio server makes a claim (PVC) for disk space and memory. Kubernetes fulfills the claim by mapping it to a matching Persistent Volume (PV). Even if a Minio container goes down, Kubernetes makes sure the PV mapped to it, follows to the new node where replacement Minio container is getting deployed.
To scale, simply spin up new Minio instance to cater to the new tenant. With Kubernetes, launching a new Minio instance is as easy as helm install stable/minio.
Minio can be accessed from within the Kubernetes cluster or from outside the cluster. Kubernetes services allow private or public access to Minio deployment, via clusterIP and externalIP. When deployed as a helm package, external IP is automatically provisioned. Use
kubectl get svc to find the IP address information.