首页 > 其他分享 >生产环境minio 部署

生产环境minio 部署

时间:2023-03-22 15:04:13浏览次数:40  
标签:http minio 部署 app 环境 192.168 nginx proxy

minio分布式集群的详细搭建

1,准备工作

4台服务器 ,每台服务器 ,挂载一个硬盘

以下 不重启识别硬盘

echo "- - -" > /sys/class/scsi_host/host0/scan

echo "- - -" > /sys/class/scsi_host/host1/scan

echo "- - -" > /sys/class/scsi_host/host2/scan

1、 基础准备

192.168.40.180挂载磁盘路径:/app/minio/miniodata

192.168.40.181挂载磁盘路径:/app/minio/miniodata

192.168.40.182挂载磁盘路径:/app/minio/miniodata

192.168.40.61挂载磁盘路径:/app/minio/miniodata

生产环境强烈建议至少四台机器,这也是官方的建议要求,这样的话就可以做到挂掉一台机器集群依然可以读写,挂掉两台机器集群依然可读,本文仅以四台机器为例子说明如何搭建集群

2 下载软件包

官网
https://min.io/download#/linux


wget https://dl.min.io/server/minio/release/linux-amd64/minio

3 创建minio用户(密码根据实际情况设置)并增加sudo权限

groupadd -g 10002 minio;useradd -d /home/minio -g 10002 -u 10002 -m minio;echo 'minio:Huawei12#$' | chpasswd;chage -M 99999 minio;usermod -G wheel minio

1、 创建minio的data路径

mkdir -p /app/minio/miniodata
chown -R minio:minio /app/minio

1、 上传minio.tar.gz到/home/minio下,

解压并编辑编写集群启动脚本run.sh,

其中MINIO_ACCESS_KEY、MINIO_SECRET_KEY根据实际情况设置

Minio用户编写集群启动脚本(所有节点配置文件相同)

其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败

[root@master minio]# cat run.sh 
#!/bin/bash
export MINIO_ACCESS_KEY=yR3eJ5mF5bK5vE2oA7aE
export MINIO_SECRET_KEY=yH4cH8zI7gL6wG4zE0fB6xS1xN7dN2

/home/minio/minio server \
http://192.168.40.180/app/minio/miniodata http://192.168.40.181/app/minio/miniodata \
http://192.168.40.182/app/minio/miniodata http://192.168.40.61/app/minio/miniodata

[root@master minio]# pwd
/home/minio


=========================如果修改端口 使用下面方法,各节点修改======================
[root@master ~]# cat /home/minio/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=yR3eJ5mF5bK5vE2oA7aE
export MINIO_SECRET_KEY=yH4cH8zI7gL6wG4zE0fB6xS1xN7dN2

/home/minio/minio server --console-address "192.168.40.180:9001" --address "192.168.40.180:9000" \
http://192.168.40.180/app/minio/miniodata http://192.168.40.181/app/minio/miniodata \
http://192.168.40.182/app/minio/miniodata http://192.168.40.61/app/minio/miniodata

==========================

1、 编写服务脚本(root用户),如需要修改的话请编辑,否则保持默认值即可

其中,“WorkingDirectory”为启动脚本目录,“ExecStart”为指定集群启动脚本

[root@master minio]# cat minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
User=minio
WorkingDirectory=/home/minio/
ExecStart=/home/minio/run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

将修改好的内容复制到其他节点

[minio@master ~]$ pwd
/home/minio

scp -rq * [email protected]:/home/minio/
scp -rq * [email protected]:/home/minio/
scp -rq * [email protected]:/home/minio/
6、  启动测试
1)将下载好的minio文件赋予权限
sudo chmod +x /home/minio/minio
2)赋予启动脚本文件权限
sudo chmod +x /home/minio/run.sh


3)依次启动每个服务器的minio
sudo cp /home/minio/minio.service /usr/lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start minio
sudo systemctl enable minio



4)浏览器输入集群任意节点地址+9000端口,即可访问minio,用户名密码为前面设置的“MINIO_ACCESS_KEY”和“MINIO_SECRET_KEY”,可创建“bucket”并上传文件测试

基于nginx实现loadbalancer

官网下载最新版本
https://nginx.org/en/download.html

将nginx-1.23.1.tar.gz上传到与NGINX规划所在主机上
新建目录:mkdir -p /app/nginx,然后上传
解压:cd /app/nginx ; tar -zxvf nginx-1.23.1.tar.gz
编译安装前,安装依赖包:
yum -y install gcc gcc-c++ autoconf automake make openssl openssl-devel pcre-devel
编译nginx:
cd /app/nginx/nginx-1.23.1
./configure --prefix=/app/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
(如果报找不到文件的错,则看下/app/nginx目录下的文件)
安装:
make && make install
先测试下Nginx,然后如果是少文件,则创建。然后启动Nginx


ln -s /app/nginx/sbin/nginx /usr/local/sbin/

测试命令:nginx -t -c ./conf/nginx.conf
启动命令:nginx -c ./conf/nginx.conf


nginx 配置如下

[root@master nginx]# cat conf/nginx.conf
user nginx;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}


include /usr/share/nginx/modules/*.conf;



http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

upstream minio {
server 192.168.40.180:9000;
server 192.168.40.181:9000;
server 192.168.40.182:9000;
server 192.168.40.61:9000;
}

upstream console {
ip_hash;
server 192.168.40.180:9001;
server 192.168.40.181:9001;
server 192.168.40.182:9001;
server 192.168.40.61:9001;
}


server {
listen 80;
listen [::]:80;
server_name minio.sfere.local;

# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# To disable buffering
proxy_buffering off;

location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;

proxy_pass http://minio;
}
}
server {
listen 19001;
listen [::]:19001;
server_name minio.sfere.local;

# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# To disable buffering
proxy_buffering off;

location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;

# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;

proxy_connect_timeout 300;

# To support websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

chunked_transfer_encoding off;

proxy_pass http://console;
}
}

}

启动测试ok

​http://192.168.40.180:19001/​

minio挂载在本地

minio挂载在本地
1.安装s3fs: sudo apt install s3fs



2.获取Access Key和Secret Key,修改${HOME}/.passwd-s3fs,写入:

Access Key:Secret Key


chmod 600 ${HOME}/.passwd-s3fs


sudo vim /etc/fuse.conf,取消user_allow_other前的注释



3.

s3fs -o passwd_file=${HOME}/.passwd-s3fs -o url=http://minio服务器地址:9000 -o allow_other -o nonempty -o no_check_certificate -o use_path_request_style -o umask=022 桶名称 需要mount的文件夹地址

黄世宇/Shiyu Huang's Personal Page:https://huangshiyu13.github.io/


标签:http,minio,部署,app,环境,192.168,nginx,proxy
From: https://blog.51cto.com/zhaochengsheng/6142631

相关文章

  • MongoDB 数据库部署和应用
    推荐步骤:➢在Centos01上部署MongoDB服务器客户端登录验证➢在Centos01的MongoDB配置文件通过控制文件控制MongoDB服务,配置MongoDB身份验证➢在Centos01......
  • K8s学习(一)从零开始搭建kubernetes集群环境(虚拟机/kubeadm方式)
    K8s学习(一)从零开始搭建kubernetes集群环境(虚拟机/kubeadm方式) 1Kubernetes简介(k8s)传统部署:互联网早期会直接将应用程序部署在物理机上或者虚拟操作系统中,如部署到to......
  • IIS 部署网站 Log4net日志没有写入
    前提:Log4net日志写入是开启状态,并且相关的配置文件完整无异常 可能原因:网站文件相关用户没有写入的权限操作步骤右键网站=》编辑权限=》安全=》选择User用户=》编辑=......
  • Docker 源和Dockerfile配置及常用镜像部署
    Docker安装和常用命令请看这篇博客Docker源/etc/docker/daemon.json是docker的配置文件,默认没有,需要我们手动创建手动修改vi/etc/docker/daemon.json并填入以下......
  • three.js加载环境贴图
     three.js加载环境贴图 HDR的全称是HighDynamicRange,即高动态范围;动态范围是指图像中所包含的从“最亮”至“最暗”的比值,也就是图像从“最亮”到“最暗”之间灰度......
  • 新电脑新环境新征程
    上星期至今,换了电脑,重新安装了全新系统,全新的开发环境和全新数据库以及office:Windows10Enterprise22H2: VisualStudioEnterprise2022: MicrosoftSQLServer......
  • Centos安装部署netcore 包含Nginx,Supervisor等
    安装.NETCoreSDK安装libicu依赖yuminstalllibunwindlibicu注册dotnet的repository您需要注册Microsoft签名密钥并添加Microsoft产品提要sudorpm-Uvhhttps://packag......
  • .netcore 在Linux(Centos)使用Docker方式部署
    运行环境假设你已经安装好了.netcore运行环境,未配置可以看这篇​​[linux(centos)搭建.netcore运行环境]​​centos:7.2cpu:1核2G内存1M带宽docker:18.06.1-ce安装docke......
  • docker-compose 部署文件预览服务-kkFileView
    docker-compose部署文件预览服务1.docker-compose文件准备docker-compose-fileview.ymlversion:'3.2'services:fileview:image:keking/kkfileview:lates......
  • AD域环境下办公机系统时间不准确
    事件起因:某部门一同事电脑时间和AD域控时间相差3分钟,虽然说时间相差5分钟内问题不大,但是本着有问题就解决的原则,还是花了点时间去查资料解决。(小小吐槽一下,在我看来域控......