3 min to read
Introduction to MinIO - High Performance Object Storage
A comprehensive guide to MinIO installation and usage

Overview
MinIO is a high-performance distributed object storage system designed for scalability, security, and easy deployment.
Let’s explore its features and implementation.
What is MinIO?
MinIO is a high-performance distributed object storage system designed for scalability, security, and easy deployment.
It's commonly used for storing unstructured data like photos, videos, log files, backups, and container images.
Compatible with Amazon S3 cloud storage service, it's popular among enterprises and developers looking for an S3-compatible storage solution that can run on-premises or in private cloud environments.
It's commonly used for storing unstructured data like photos, videos, log files, backups, and container images.
Compatible with Amazon S3 cloud storage service, it's popular among enterprises and developers looking for an S3-compatible storage solution that can run on-premises or in private cloud environments.
Key Features
Scalability
- Connect multiple nodes for efficient petabyte-scale data management
- Distribute data across all nodes for improved fault tolerance and performance
High Availability and Durability
- Supports erasure coding and bitrot protection
- Continuous access even during partial infrastructure failures
Performance
- Designed for high-performance environments
- Handles numerous concurrent requests without latency
- Ideal for high-traffic applications like web and cloud services
S3 Compatibility
- Full compatibility with Amazon S3 API
- Seamless integration with existing tools and libraries
- Easy migration path to Amazon’s cloud
Security
- Encryption at rest (using AES-256)
- Transport encryption (TLS)
- Identity and access management through built-in identity server
- Integration with external identity providers using OpenID Connect or LDAP/AD
Multi-tenancy
- Supports multiple users or teams
- Strict isolation and control mechanisms
Deployment
- Deployable on various platforms including Kubernetes
- Supports virtual machines, bare metal, and containerized environments
Installation
Add MinIO Helm repository:
helm repo add minio https://charts.min.io/
helm repo list
NAME URL
minio https://charts.min.io/
Standard Installation
helm install my-minio minio/minio \
--namespace minio \
--create-namespace \
--set accessKey=rootuser,secretKey=rootpass123
Toy Setup
helm install --set resources.requests.memory=512Mi \
--set replicas=1 \
--set persistence.enabled=false \
--set mode=standalone \
--set rootUser=rootuser,rootPassword=rootpass123 \
--generate-name minio/minio \
--namespace minio \
--create-namespace
Verify Installation
k get po,svc,deploy -n minio
Configure Service Access
# Change console service to NodePort
kubectl patch svc minio-1724308499-console -n minio \
--type='json' \
-p='[{"op": "replace", "path": "/spec/type", "value": "NodePort"}]'
# Change API service to NodePort
kubectl patch svc minio-1724308499 -n minio \
--type='json' \
-p='[{"op": "replace", "path": "/spec/type", "value": "NodePort"}]'
Using MinIO Client (mc)
Installation
# For MacOS
brew install minio/stable/mc
Configure Client
mc alias set myminio http://10.0.71.51:31067 rootuser rootpass123
Basic Operations
# Create bucket
mc mb myminio/somaz-bucket
# List buckets
mc ls myminio
# Upload file
mc cp test.txt myminio/somaz-bucket
# Download file
mc cp myminio/somaz-bucket/test.txt .
Comments