98 lines
4.9 KiB
YAML
98 lines
4.9 KiB
YAML
---
|
|
#==============================================================#
|
|
# File : minio.yml
|
|
# Desc : pigsty: 4 node x 4 disk MNMD minio clusters
|
|
# Ctime : 2023-01-07
|
|
# Mtime : 2025-12-12
|
|
# Docs : https://pigsty.io/docs/minio
|
|
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
|
|
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
|
|
#==============================================================#
|
|
|
|
# One pass installation with:
|
|
# ./deploy.yml
|
|
#==============================================================#
|
|
# 1. minio-1 @ 10.10.10.10:9000 - - (9002) svc <-x 10.10.10.9:9002
|
|
# 2. minio-2 @ 10.10.10.11:9000 -xx- (9002) svc <-x <----------------
|
|
# 3. minio-3 @ 10.10.10.12:9000 -xx- (9002) svc <-x sss.pigsty:9002
|
|
# 4. minio-4 @ 10.10.10.12:9000 - - (9002) svc <-x (intranet dns)
|
|
#==============================================================#
|
|
# use minio load balancer service (9002) instead of direct access (9000)
|
|
# mcli alias set sss https://sss.pigsty:9002 minioadmin S3User.MinIO
|
|
#==============================================================#
|
|
# https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html
|
|
# MINIO_VOLUMES="https://minio-{1...4}.pigsty:9000/data{1...4}/minio"
|
|
|
|
|
|
all:
|
|
children:
|
|
|
|
# infra cluster for proxy, monitor, alert, etc..
|
|
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
|
|
|
|
# minio cluster with 4 nodes and 4 drivers per node
|
|
minio:
|
|
hosts:
|
|
10.10.10.10: { minio_seq: 1 , nodename: minio-1 }
|
|
10.10.10.11: { minio_seq: 2 , nodename: minio-2 }
|
|
10.10.10.12: { minio_seq: 3 , nodename: minio-3 }
|
|
10.10.10.13: { minio_seq: 4 , nodename: minio-4 }
|
|
vars:
|
|
minio_cluster: minio
|
|
minio_data: '/data{1...4}'
|
|
minio_buckets: # list of minio bucket to be created
|
|
- { name: pgsql }
|
|
- { name: meta ,versioning: true }
|
|
- { name: data }
|
|
minio_users: # list of minio user to be created
|
|
- { access_key: pgbackrest ,secret_key: S3User.Backup ,policy: pgsql }
|
|
- { access_key: s3user_meta ,secret_key: S3User.Meta ,policy: meta }
|
|
- { access_key: s3user_data ,secret_key: S3User.Data ,policy: data }
|
|
|
|
# bind a node l2 vip (10.10.10.9) to minio cluster (optional)
|
|
node_cluster: minio
|
|
vip_enabled: true
|
|
vip_vrid: 128
|
|
vip_address: 10.10.10.9
|
|
vip_interface: eth1
|
|
|
|
# expose minio service with haproxy on all nodes
|
|
haproxy_services:
|
|
- name: minio # [REQUIRED] service name, unique
|
|
port: 9002 # [REQUIRED] service port, unique
|
|
balance: leastconn # [OPTIONAL] load balancer algorithm
|
|
options: # [OPTIONAL] minio health check
|
|
- option httpchk
|
|
- option http-keep-alive
|
|
- http-check send meth OPTIONS uri /minio/health/live
|
|
- http-check expect status 200
|
|
servers:
|
|
- { name: minio-1 ,ip: 10.10.10.10 ,port: 9000 ,options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
|
|
- { name: minio-2 ,ip: 10.10.10.11 ,port: 9000 ,options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
|
|
- { name: minio-3 ,ip: 10.10.10.12 ,port: 9000 ,options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
|
|
- { name: minio-4 ,ip: 10.10.10.13 ,port: 9000 ,options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
|
|
|
|
vars:
|
|
version: v4.0.0 # pigsty version string
|
|
admin_ip: 10.10.10.10 # admin node ip address
|
|
region: default # upstream mirror region: default|china|europe
|
|
infra_portal: # infra services exposed via portal
|
|
home : { domain: i.pigsty } # default domain name
|
|
|
|
# domain names to access minio web console via nginx web portal (optional)
|
|
minio : { domain: m.pigsty ,endpoint: "10.10.10.10:9001" ,scheme: https ,websocket: true }
|
|
minio10 : { domain: m10.pigsty ,endpoint: "10.10.10.10:9001" ,scheme: https ,websocket: true }
|
|
minio11 : { domain: m11.pigsty ,endpoint: "10.10.10.11:9001" ,scheme: https ,websocket: true }
|
|
minio12 : { domain: m12.pigsty ,endpoint: "10.10.10.12:9001" ,scheme: https ,websocket: true }
|
|
minio13 : { domain: m13.pigsty ,endpoint: "10.10.10.13:9001" ,scheme: https ,websocket: true }
|
|
|
|
minio_endpoint: https://sss.pigsty:9002 # explicit overwrite minio endpoint with haproxy port
|
|
node_etc_hosts: ["10.10.10.9 sss.pigsty"] # domain name to access minio from all nodes (required)
|
|
|
|
#----------------------------------------------#
|
|
# PASSWORD : https://pigsty.io/docs/setup/security/
|
|
#----------------------------------------------#
|
|
grafana_admin_password: pigsty
|
|
haproxy_admin_password: pigsty
|
|
minio_secret_key: S3User.MinIO
|
|
... |