
MinIO教程(2)使用客户端工具mc实现对象与集群管理
一、MinIO Client介绍
mc是 MinIO 官方提供的命令行客户端工具,该工具支持 Bucket 操作、对象同步、用户权限管理、Prometheus 集成、健康状态检查、纠删码修复等丰富功能,并且命令风格简单,是MinIO集群在日常运维、对象管理、权限控制、监控接入等任务中必不可少的工具。
二、MinIO 集群管理
1、别名管理
配置别名(alias)是使用 mc 管理 MinIO 集群的第一步,通过配置好的别名才可以让客户端知道后续需要操作的集群信息
创建别名
当运行该条命令时,实际是告诉mc客户端这么一件事:为MinIO集群起一个别名叫myminio,而这个MinIO集群的地址是http://10.128.35.242:9000,使用账号/密码为tanglu/123456789。在后续的集群管理中就都可以使用myminio这个名字来简化信息
mc alias set myminio http://10.128.35.242:9000 tanglu 123456789
查看别名
#显示出已经创建过的别名 mc alias list
删除别名
#删除指定别名,不会影响数据 mc alias remove myminio
2、BUCKET管理
由于在上一步中已经创建好了别名,后续对象管理都可以基于别名来完成,bucket类似于数据库中的库的概念,对象会存放在bucket中,通过不同的bucket可以实现数据隔离
#创建 bucket mc mb <alias>/<bucket> #显示指定别名下的bucket mc ls <alias> #删除一个bucket,被删除的bucket不能有数据 mc rb <alias>/<bucket>
3、对象管理
各种对象就相当于是数据库中的表和数据了,它们都存放于bucket中
# 查看对象元数据
mc stat <alias>/<bucket>/<object路径>
#上传对象
mc cp [本地路径] <alias>/<bucket>/<object路径>
# 下载对象
mc cp <alias>/<bucket>/<object路径> [本地路径]
# 查看对象内容,只适用于文本类数据
mc cat <alias>/<bucket>/<object路径>
# 删除对象
mc rm <alias>/<bucket>/<object路径>
4、用户管理
MinIO 中的用户就是一组 Access Key / Secret Key 认证凭据,将用户与访问策略绑定可以实现权限控制
#在指定集群中创建用户和密码
mc admin user add <alias> <username> <password>
#查看指定集群中用户信息(权限状态)
mc admin user info <alias> <username>
#列出指定集群中所有用户
mc admin user list <alias>
#禁用指定集群中用户(暂停访问)
mc admin user disable <alias> <username>
#启用指定集群中用户(恢复访问)
mc admin user enable <alias> <username>
#删除指定集群中用户
mc admin user remove <alias> <username>
#为账户创建服务账户,可避免暴露主账号密码,命令运行后会生成对应的Access key和Secret key
mc admin user svcacct add <alias> <username>
5、Policy(策略)管理
策略是以 JSON 形式定义的访问控制规则,策略并不属于某个用户,但可以通过绑定的形式(attach)与用户或用户组结合。MinIO默认提供了readonly(全局只读)、readwrite(全局可读写)、writeonly(全局只写)、consoleAdmin(管理员权限)、diagnostics(诊断权限)几种常用策略。如果默认权限无法满足安全管理要求,可以通过自定义权限的方式来实现精细化管理
#查看指定集群所有策略 mc admin policy list <alias> #查看策略的具体内容 mc admin policy info <alias> <policy> #为指定集群创建自定义策略 mc admin policy create <alias> <策略名> <策略文件名.json> #绑定指定策略到指定用户 mc admin policy attach <alias> <策略名> --user <username> #移除用户绑定策略 mc admin policy detach <alias> --user <username> #删除策略 mc admin policy remove <alias> <policy>
在创建自定义策略时,有一个策略文件需要单独配置,即上面的<策略文件名.json>,策略文件中就是具体的约束规则。语法结构如下:
Version:策略语法的办法,目前统一为2012-10-17
Statement:包含一个或多个权限声明,声明中包含以下几个常见参数:
· Effect:这个声明是允许或拒绝(通常为 "Allow")
· Action:被允许或拒绝的具体操作,可以是一个或多个操作,支持通配符(如 s3:GetObject)
· Resource:操作涉及的具体资源,可以是单一或多个资源,同样支持通配符(如arn:aws:s3:::my_bucket/my_object)
Condition:声明生效的条件,如只对某个IP段生效
{ "Version": "2012-10-17", #策略语言的版本日期,默认即可 "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", #具体策略,比如s3:ListBucket是列出、s3:GetObject是读取、s3:PutObject是写入等 "s3:ListBucketMultipartUploads" ], "Effect": "Allow", #策略影响,allow是允许,deny是拒绝 "Resource": "arn:aws:s3:::tanglu" #策略对哪个bucket有效 }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::tanglu/*" #通配桶下所有对象 } ] }
6、集群管理
查看集群状态
包括集群数据量、磁盘与挂载情况等
mc admin info <alias>
查看集群负载
类似 top 命令,展示当前活跃请求,包括源 IP、请求路径、响应时间、用户名、请求方法等,可以用于排查是哪个客户端造成高并发或者查看最慢的请求行为
mc admin top <alias>
集群对象修复
用于手动触发对象修复,如节点宕机恢复后需要进行数据同步
mc admin heal <alias>
mc admin heal -r [alias_name]/[bucket_name]
集群监控
生成 Prometheus 抓取的性能指标配置,支持Server、Node、Bucket、Resources四个级别
mc admin prometheus generate <alias> #输出示例: - job_name: 'minio' static_configs: - targets: ['minio1:9000', 'minio2:9000']
猜你喜欢

运维技术 MinIO教程(1)对象存储基本概念与安装部署
一、对象存储简介对象存储(Object Storage)是一种以对象为基本单位进行数据的存储系统,广泛用于存储图片、音视频、日志、备份等非结构化数据,并在私有云、混合云和边缘计算等场景中得到广泛应用。...
文章评论