MinIO is a popular distributed object storage system that allows organizations to deploy highly available and scalable storage infrastructure. In order to achieve high availability (HA) for MinIO, a cluster of multiple MinIO nodes must be deployed, with each node having access to its own set of PVCs.
- Kubernetes >=
1.23.0
- Kustomize >=
v3.5.3
- prometheus-operator from KFD monitoring module
Prometheus Operator is necessary since we configure a
ServiceMonitor
to make some metrics available fromminio
on prometheus
- MinIO image:
minio/minio
- MinIO repo: MinIO on Github
MinIO HA is deployed in the following configuration:
- Three Pod MinIO statefulset with 2 PVCs per Pod
- Custom init Job to initialize buckets (
loki
anderrors
) and default retention (7 days onerrors
bucket)
You can deploy minio-ha by running the following command in the root of the project:
kustomize build | kubectl apply -f -
For license details please see LICENSE