minio/docs/multi-tenancy
Harshavardhana 3d9873106d
feat: distributed setup can start now with default credentials (#12303)
In lieu of new changes coming for server command line, this
change is to deprecate strict requirement for distributed setups
to provide root credentials.

Bonus: remove MINIO_WORM warning from April 2020, it is time to
remove this warning.
2021-05-17 08:45:22 -07:00
..
README.md feat: distributed setup can start now with default credentials (#12303) 2021-05-17 08:45:22 -07:00

README.md

MinIO Multi-Tenant Deployment Guide Slack Docker Pulls

This topic provides commands to set up different configurations of hosts, nodes, and drives. The examples provided here can be used as a starting point for other configurations.

  1. Standalone Deployment
  2. Distributed Deployment
  3. Cloud Scale Deployment

1. Standalone Deployment

To host multiple tenants on a single machine, run one MinIO Server per tenant with a dedicated HTTPS port, configuration, and data directory.

1.1 Host Multiple Tenants on a Single Drive

Use the following commands to host 3 tenants on a single drive:

minio server --address :9001 /data/tenant1
minio server --address :9002 /data/tenant2
minio server --address :9003 /data/tenant3

Example-1

1.2 Host Multiple Tenants on Multiple Drives (Erasure Code)

Use the following commands to host 3 tenants on multiple drives:

minio server --address :9001 /disk{1...4}/data/tenant1
minio server --address :9002 /disk{1...4}/data/tenant2
minio server --address :9003 /disk{1...4}/data/tenant3

Example-2

2. Distributed Deployment

To host multiple tenants in a distributed environment, run several distributed MinIO Server instances concurrently.

2.1 Host Multiple Tenants on Multiple Drives (Erasure Code)

Use the following commands to host 3 tenants on a 4-node distributed configuration:

export MINIO_ROOT_USER=<TENANT1_ACCESS_KEY>
export MINIO_ROOT_PASSWORD=<TENANT1_SECRET_KEY>
minio server --address :9001 http://192.168.10.1{1...4}/data/tenant1

export MINIO_ROOT_USER=<TENANT2_ACCESS_KEY>
export MINIO_ROOT_PASSWORD=<TENANT2_SECRET_KEY>
minio server --address :9002 http://192.168.10.1{1...4}/data/tenant2

export MINIO_ROOT_USER=<TENANT3_ACCESS_KEY>
export MINIO_ROOT_PASSWORD=<TENANT3_SECRET_KEY>
minio server --address :9003 http://192.168.10.1{1...4}/data/tenant3

Note: Execute the commands on all 4 nodes.

Example-3

Note: On distributed systems, root credentials are recommend to be defined by exporting the MINIO_ROOT_USER and MINIO_ROOT_PASSWORD environment variables. If no value is set MinIO setup will assume minioadmin/minioadmin as default credentials. If a domain is required, it must be specified by defining and exporting the MINIO_DOMAIN environment variable.

Cloud Scale Deployment

A container orchestration platform (e.g. Kubernetes) is recommended for large-scale, multi-tenant MinIO deployments. See the MinIO Deployment Quickstart Guide to get started with MinIO on orchestration platforms.