转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。
1. 前言
MinIO 是一款高性能的对象存储,与 Amazon S3 云存储服务兼容,并且号称是世界上最快的对象存储服务器。
近期,因业务需求,需要将minio集群挂载到k8s的worker节点本地目录,往里写数据,并且每个节点都能共享这些数据。示意图如下:
2. minio集群和负载搭建
minio集群及负载均衡搭建:两种MinIO分布式集群部署方式
搭建好后,在minio的Bucktes中创建一个名为“test”的bucket,用于挂载到客户端去,可创建几个测试文件查看挂载效果。
3. 客户端安装及挂载
3.1 客户端安装(在每一台k8s worker节点操作)
# yum install -y s3fs-fuse
# echo "admin:admin@minio" > $HOME/.passwd-s3fs #minio的账号:密码
# chmod 600 $HOME/.passwd-s3fs
# mkdir /miniodata #创建挂载点
ps:$HOME/.passwd-s3fs文件中,admin是minio的账号;admin@minio是minio的密码。就是在两种MinIO分布式集群部署方式中搭建minio集群run.sh中配置的环境变量参数。
3.2 客户端挂载(在每一台k8s worker节点操作)
# s3fs -o passwd_file=$HOME/.passwd-s3fs -o url=http://10.98.66.66:9000 -o allow_other -o nonempty -o no_check_certificate -o use_path_request_style -o umask=000 test /miniodata
挂载命令中参数解说(参数根据实际调整):
# url=http://10.98.66.66:9000:是两种MinIO分布式集群部署方式中负载均衡的IP和端口,如果在nginx的配置文件中servername用的是域名,url就换成域名;
# allow_other: 允许其它用户操作;
# nonempty:如果挂载点下有文件/目录,s3fs(挂载命令)无法挂载到挂载点目录(会报错:s3fs: MOUNTPOINT directory /miniodata is not empty. if you are sure this is safe, can use the 'nonempty' mount option.),可以使用该参数,指定非空挂载,挂载后,挂载点下原来的文件会被覆盖;
# no_check_certificate:不检测证书;
# use_path_request_style:是对还不支持 virtual-host 请求风格的对象存储而提供的参数,指定该参数会使用传统的 API 调用风格。阿里云 OSS 和七牛对象存储可能不需指定该参数。;
# umask=000:给定挂载目录权限为777;
# test:上一部分在minio创建的bucket;
# /miniodata:客户端创建的挂载点;
3.3 挂载验证
执行完挂载命令后,已经可以看到已经挂载成功了,test下的测试文件也能看到
查看/miniodata目录下的文件,和minio集群的test桶下文件一样,整个挂载就完成了:
相关文章推荐:
对象存储MinIO的简介与部署
两种MinIO分布式集群部署方式
自定义一个对象【minio】
记录一次跨越16个月的minio版本升级与数据迁移
MinIO集群怎么接入Prometheus监控?(上)
MinIO集群怎么接入Prometheus监控?(下)