安裝文件
- minio:https://dl.min.io/server/minio/release/linux-amd64/minio
- mc:https://dl.min.io/client/mc/release/linux-amd64/mc
- kes:https://github.com/minio/kes/releases/latest/download/kes-linux-amd64
單機(jī)部署
- 用于客戶測(cè)試環(huán)境
- 只有一個(gè)節(jié)點(diǎn)钓丰,不支持集群部署
- 如后期想擴(kuò)展到集群术羔,可以在minio集群搭建好后凫碌,手動(dòng)創(chuàng)建相應(yīng)bucket闸迷,并上傳文件(或者有其他辦法教沾?)
下載文件
wget https://dl.min.io/server/minio/release/linux-amd64/minio
wget https://dl.min.io/client/mc/release/linux-amd64/mc
賦予執(zhí)行權(quán)限
chmod u+x minio
chmod u+x mc
打開(kāi)防火墻
firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --reload
啟動(dòng)
export MINIO_ACCESS_KEY=my_minio_ak
export MINIO_SECRET_KEY=my_minio_sk
nohup ./minio server /data --address=0.0.0.0:9000 1>minio.log 2>&1 &
配置mc
./mc alias set my-minio http://0.0.0.0:9000 my_minio_ak my_minio_sk
集群部署
- 用于客戶正式環(huán)境
- 支持bucket內(nèi)數(shù)據(jù)加密
- 最少4個(gè)節(jié)點(diǎn)式散,或者4個(gè)minio進(jìn)程
- 支持集群擴(kuò)展
KES部署
參考:https://github.com/minio/kes/wiki/Getting-Started
生成私鑰
openssl ecparam -genkey -name prime256v1 | openssl ec -out server.key
生成X.509證書(shū)
openssl req -new -x509 -days 3600 -key server.key -out server.crt \
-subj "/C=/ST=/L=/O=/CN=my-kes-server" -addext "subjectAltName = IP:KES_SERVER_IP"
- 默認(rèn)證書(shū)有效期10年
- KES_SERVER_IP為my-kes-server這個(gè)域名對(duì)應(yīng)的內(nèi)網(wǎng)IP
- CentOS上openssl版本(1.0.xx)過(guò)低植袍,可能會(huì)報(bào)錯(cuò):unknown option -addext惧眠,可以使用ubuntu(openssl 版本1.1.1f)等系統(tǒng)生成證書(shū)
配置hosts
在所有節(jié)點(diǎn)的hosts文件中,添加:
KES_SERVER_IP my-kes-server
- KES_SERVER_IP為my-kes-server這個(gè)域名對(duì)應(yīng)的內(nèi)網(wǎng)IP
添加證書(shū)到系統(tǒng)受信任列表
將server.key和server.crt拷貝至所有節(jié)點(diǎn)于个,然后執(zhí)行:
echo "#my minio CA `date '+%Y-%m-%d'`" >> /etc/pki/tls/certs/ca-bundle.crt
cat server.crt >> /etc/pki/tls/certs/ca-bundle.crt
啟動(dòng)KES
在第一個(gè)minio節(jié)點(diǎn)氛魁,執(zhí)行(需開(kāi)啟防火墻7373端口):
nohup ./kes server --addr=0.0.0.0:7373 --key=server.key --cert=server.crt \
--root=$(./kes tool identity of server.crt) --auth=off 1>kes.log 2>&1 &
創(chuàng)建secret key:
export KES_CLIENT_KEY=server.key
export KES_CLIENT_CERT=server.crt
./kes key create -k my-minio-key bGtscXdlbGthc3Bkb2lvcDEyMzgxMDI5Mzg5MWtqYWE=
- KES服務(wù)沒(méi)有數(shù)據(jù)持久化,重啟之后secret key會(huì)丟失厅篓,必須重新執(zhí)行生成操作
- secret key必須指定最后的加密key字段(即 bGtscXdlbGthc3Bkb2lvcDEyMzgxMDI5Mzg5MWtqYWE=秀存,該key由32位數(shù)字或字母做base64編碼生成,64或128位是否可用未做測(cè)試)羽氮,否則kes會(huì)生成新的加密key或链,導(dǎo)致之前加密的數(shù)據(jù)都無(wú)法解密
MinIO部署
打開(kāi)防火墻
在所有節(jié)點(diǎn),執(zhí)行:
firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --reload
啟動(dòng)minio
在所有節(jié)點(diǎn)档押,執(zhí)行:
export MINIO_KMS_KES_ENDPOINT=https://my-kes-server:7373
export MINIO_KMS_KES_KEY_FILE=server.key
export MINIO_KMS_KES_CERT_FILE=server.crt
export MINIO_KMS_KES_KEY_NAME=my-minio-key
export MINIO_ACCESS_KEY=my_minio_ak
export MINIO_SECRET_KEY=my_minio_sk
nohup ./minio server http://YOUR_MINIO_NODE1/data http://YOUR_MINIO_NODE2/data \
http://YOUR_MINIO_NODE3/data http://YOUR_MINIO_NODE4/data --address=0.0.0.0:9000 1>minio.log 2>&1 &
其他操作
mc初始化
在mc節(jié)點(diǎn)上澳盐,執(zhí)行:
./mc alias set hufu-minio http://YOUR_LOCAL_IP:9000 my_minio_ak my_minio_sk
加密bucket
在mc節(jié)點(diǎn)上,執(zhí)行:
./mc encrypt set sse-s3 hufu-minio/YOUR_BUCKET