Minio服务配置
注意
Minio这里提供的部署方式,是用于学习了解如果在K8S环境部署,方便在客户的环境部署时有个参考,在Rancher中我们提供的Ceph进行对象存储,如需使用,请进行联系获取 AK/SK
进行调用,不建议再部署Minio来占用资源
1、创建密文卷
创建minio-pwd
密文卷、通过密文卷来配置MINIO_ROOT_PASSWORD
属性值
2、服务部署
部署服务,公共的操作参考mysql配置,这里不再重复。
名称:dmm-minio (自定义,该名称同时做为服务名)
Docker镜像:172.16.102.2:5000/library/bitnami/minio:2022.12.12
容器端口:9000(Restful API调用接口,基于S3定义的接口)、9001(minio控制台端口)
环境变量:
TZ:Asia/Shanghai (指定时区)
MINIO_ROOT_USER:admin(登录root账号)
MINIO_ROOT_PASSWORD:xxxx(登录密码)
容器路径:/data
子路径:data
(先这样配置,启动会失败,子路径是用于跟初始化容器对应)
创建PVC,根据实际情况选择容量大小
3、添加初始化容器
初始化容器的目的是先创建一个目录,然后将权限提升,再启动minio数据库容器时才有权限将数据写入目录。
通过应用右侧的菜单选择添加Sidecar
名称:minio-data-directory-init (这个名称随意)
Sidecar类型:Init容器
Docker镜像:172.16.102.2:5000/library/busybox:1.36.0 (选择busybox是因为该容器很小,只有2M多)
添加映射,在创建的PVC添加
容器路径:/minio (这个也随意,保持跟镜像中的路径目录一致,这个目录是在
busybox
容器创建,我们目的是为了创建一个PG的数据目录,把这个目录写到对象存储中)命令:
sh -c 'mkdir -p /minio/data && chmod 777 /minio/data'
这个命令的目的是在容器路径/minio
(这个需要一致)下创建一个data
目录,同时把该目录权限提升到最大(该权限可自行调整,只要容器有权限写入数据即可)
4、验证访问
通过暴露的9001
对应的端口,不知道是哪个随便点点,总共也就两个,正常的话有一个会打开minio的登录页面
通过设置的MINIO_ROOT_USER
、MINIO_ROOT_PASSWORD
对应用的账号密码进行登录
5、用户权限配置
在minio中创建的用户是不能直接分配到某个bucket
上,默认的几个策略只有管理员、只读、只写、读写,这些策略是针对于所有bucket,如果我们只想上某个用户读写、只读某一bucket,就需要新建策略。
- 创建策略
策略文件编写,这里主要编写
Action
与Resource
Action:
s3:GetObject:获取文件内容(可以下载)
s3:List*:列出bucket下所有文件目录
s3:PutObject:写文件
s3:DeleteObject:删除文件
s3:* 所有文件与桶的操作
Resource:
arn:aws:s3:::waf/*:waf桶下所有资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:List*",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::waf/*"
]
}
]
}
- 创建用户
输入用户名与密码(用于登录或api访问)
Select Policy:指定策略(这里选择
waf-readwrite-policy
,只对waf桶可以读写)
通过waf
账号登录后,就只有waf
这个桶的R/W
读写权限