- Kubernetes cluster with nginx-ingress
- NFS share on your NAS (NFSv4)
- TLS secret(s) already present (Let's Encrypt, managed separately)
- Namespace created
kubectl create namespace minio
kubectl create secret generic minio-root-credentials \
--from-literal=rootUser=<admin> \
--from-literal=rootPassword=$(openssl rand -base64 32) \
-n minioMake sure the following is set up on your NAS:
- Export path exists (e.g.
/minio) - NFSv4 enabled
- Permissions set:
# On the NAS
chown -R 1000:1000 /minio
chmod -R 775 /minioAt a minimum, adjust these values in values.yaml:
nfs:
server: "192.168.1.100" # IP of your NAS
path: "/minio" # NFS export pathAs well as the ingress hosts, TLS secrets and MINIO_BROWSER_REDIRECT_URL in the minio: block.
cd minio
helm dependency update
helm install minio . -n minio -f values.yamlhelm upgrade minio . -n minio -f values.yaml┌─────────────────────────────────────────────────────┐
│ Umbrella Chart │
│ │
│ ┌──────────────┐ ┌──────────────────────────────┐ │
│ │ nfs-pv.yaml │ │MinIO Subchart (charts.min.io)| │
│ │ nfs-pvc.yaml │ │ │ │
│ │ │ │ - Standalone Deployment │ │
│ │ NFS ──────────►│ - S3 API Service │ │
│ │ PV/PVC │ │ - Console Service │ │
│ │ │ │ - Ingress (API) │ │
│ └──────────────┘ │ - ConsoleIngress (Web UI) │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼
api.minio.example.com console.minio.example.com
(S3 compatible) (Web UI)
- MinIO Chart v5.4.0 Bug: There is a known bug where
replicasis hardcoded to 16 in standalone mode (GitHub Issue #21480). If this occurs, either downgrade to v5.3.0 or manually scale the StatefulSet to 1 replica. - NFS + MinIO: Not officially recommended, but works reliably in standalone mode, especially with NFSv4.
helm uninstall minio -n minio
# PV has Retain policy, delete manually if desired:
kubectl delete pv <release-name>-minio-nfs-pv