MinIO HA
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.
Requirements
- Kubernetes >= 1.23.0
- Kustomize >= v3.5.3
- prometheus-operator from KFD monitoring module
Prometheus Operator is necessary since we configure a
ServiceMonitorto make some metrics available fromminioon prometheus
Image repository and tag
- MinIO image: minio/minio
- MinIO repo: MinIO on Github
Configuration
MinIO HA is deployed in the following configuration:
- Three Pod MinIO statefulset with 2 PVCs per Pod
- Custom init Job to initialize buckets (lokianderrors) and default retention (7 days onerrorsbucket)
Deployment
You can deploy minio-ha by running the following command in the root of the project:
kustomize build | kubectl apply -f -