006.MinIO基础使用
图形界面基础使用
bucket
bucket创建
图形界面创建bucket。
特性:
Versioning
开启版本控制,开启版本控制则允许在同一键下保持同一对象的多个版本。Object Locking
对象锁定防止对象被删除,需要支持保留和合法持有,只能在创建桶时启用。Quita
配额限制bucket中的数据量。Retention
保留会施加规则,在一段时间内防止对象删除。为了设置桶保留策略,必须启用版本控制。
确认创建成功,查看bucket详情。
Anonymous:配置Access Poilcy为custom,可以自己定义那些前缀是只读,那些前缀是读写的等。
Events:事件,设置Bucket绑定那些事件通知。
Lifecycle:生命周期,配置bucket的生命周期。
类型选择Expiry代表是过期直接删除,选择Transition就是过期后转移到目标存储服务器,需要搭配Tiering使用。
Prefix:文件名前缀。
After:代表多少天后过期。
测试上传
测试上传文件。
创建AK
创建Access Keys
图形界面创建AK和SK。
强烈建议对锁创建的key进行记录:
xuq70VZxkfwPvDG5Mfga
t3FgyXTOhfyKowWFbMvFpTPJ9rJQh0RiTLEnJ2F5
也可将所创建的Key下载到本地。
配置权限
授予权限
Minio 的存储桶默认是不和任何 Acess Key 关联,同时 Minio 支持标准 S3 协议,可以在创建 bucket 和 ak 后给 Access Key 授予某个 Bucket 存储桶的访问权限,实现 Key 和 Bucket 的绑定。
Policy
MinIO使用基于策略的访问控制(PBAC)来定义经过身份验证的用户有权访问的授权操作和资源。
每个策略描述一个或多个操作和条件,这些操作和条件概括了一个用户或一组用户的权限。
MinIO PBAC是为了兼容AWS IAM策略语法、结构和行为而构建的。
每个用户只能访问内置角色显式授予的资源和操作。
默认情况下,MinIO拒绝访问任何其他资源或操作。
即通过策略来管理用户是否有权进行操作和可访问的资源等等。
- Policy语句
语句中的信息均含在一系列的元素内。
Version:指定要使用的策略语言版本。建议您使用最新的 2012-10-17 版本。
Statement:将该主要策略元素作为以下元素的容器。可以在一个策略中包含多个语句。
Sid(可选):包括可选的语句 ID 以区分不同的语句。
Effect:使用 Allow 或 Deny 指示策略是允许还是拒绝访问。
Principal(仅在某些情况下需要):如果创建基于资源的策略,必须指示要允许或拒绝访问的账户、用户、角色或联合身份用户。如果要创建 IAM 权限策略以附加到用户或角色,则不能包含该元素。主体暗示为该用户或角色。
Action:包括策略允许或拒绝的操作列表。
Resource(仅在某些情况下需要):如果创建 IAM 权限策略,必须指定操作适用的资源列表。如果创建基于资源的策略,则该元素是可选的。如果不包含该元素,则该操作适用的资源是策略附加到的资源。
Condition(可选):指定策略在哪些情况下授予权限。
更多IMA参考: IAM 中的策略和权限 。
User
User:MinIO用户由唯一的access key (username) 和 对应的 secret key (password)组成。
客户端必须通过指定现有MinlO用户的有效access key (username)和相应的secret key (password)来验证其身份。
Groups提供了一种简化的方法,用于管理具有通用访问模式和工作负载的用户之间的共享权限。
User通过所属组继承对数据和资源的访问权限。
MinlO使用基于策略的访问控制(PBAC)来定义经过身份验证的用户有权访问的授权操作和资源。
每个策略描述一个或多个操作和条件,这些操作和条件概括了一个用户或一组用户的权限。
每个用户只能访问内置角色显式授予的资源和操作。
默认情况下,MinlO拒绝访问任何其他资源或操作。
创建User。
Groups
Groups可以有一个附加的IAM策略,该组中具有成员资格的所有用户都继承该策略。
Groups支持更简化的MinIO租户用户权限管理,即可以通过用户组来管理用户组下的用户权限,多对多的关系,一个组下面有可以选择多个组员,一个组员可以属于多个用户组。
创建一个组。
确认创建成功。
设置Groups的Policy。
勾选已创建的Policy。
确认创建完成。
关联策略,关联用户成员,从而实现更方便的批量权限管理。
Monitoring
Metrics
Metrics指标,MinIO 支持 Prometheus 用于指标和警报。
Prometheus 是一个开源系统和服务监控系统 支持基于收集的指标进行分析和警报。
Prometheus 生态系统包括多个 integrations ,允许广泛的处理和存储范围收集的指标。
MinIO 发布了 Prometheus 兼容的集群获取endpoint和节点级指标。
看 指标 为了 更多信息。
对于警报,请使用 Prometheus Alerting Rules 和 Alert Manager 根据收集的指标触发警报。
MinIO 使用 Prometheus 兼容数据发布收集的指标数据结构。
任何与 Prometheus 兼容的抓取软件都可以获取和处理 MinIO 指标以进行分析、可视化和警报。
如下图所示,可以看到基本信息相关的监控指标。
Trace
追踪,选择那些Trace的调用,然后开启Trace,下面就会记录所有的Trace,如时间,名称。状态,等等。
Events
时间通知,MinIO桶通知允许管理员就某些对象或桶事件向受支持的外部服务发送通知。MinIO支持桶级和对象级S3事件,类似于Amazon S3事件通知。
本质是Minio操作完成后通过事件的形式对外进行通知。
Minio支持多种事件的通知,如下图所示:
Tiering
对象生命周期管理:Tiering由MinIO对象生命周期管理使用,它允许创建基于时间或日期的对象自动转换或到期规则。对于对象迁移,MinIO会自动将对象迁移到已配置的远端存储层。
对于对象到期,MinIO 会自动删除该对象。
即对象生命周期可以用户自定义管理,但是对象过期了处理方式,Minio提供了两种选择,要么直接删除该对象,要么把该对象转换到远端的存储服务上去。
MinIO支持创建对象转移的生命周期管理规则,MinIO可以自动将对象移动到远程存储“Tiering”:
MinIO支持以下Tier类型:
Site Replication‘
复制站点:网站复制,此特性允许将使用相同外部IDentity Provider (IDP)的多个独立MinIO站点(或集群)配置为副本。。
即复制一个副本出来,到目标网站,快速搭建集群,以及迁移,无需再繁琐的配置等。
如下图所示,填写对应的站点信息,包括名字、端地址、Access Key,Secret Key。
需要填写本站的,目标站的,目标站可以多个。
客户端使用
mc客户端安装
MinIO Client mc命令行工具提供了ls、cat、cp、mirror和diff等命令,支持文件系统和Amazon s3兼容的云存储服务。
mc命令行工具是为与AWS S3 API兼容而构建的,并在MinIO和AWS S3上测试了预期的功能和行为。
安装mc:
[root@master01 minio]# curl https://dl.min.io/client/mc/release/linux-amd64/mc \
--create-dirs \
-o /usr/local/bin/mc
[root@master01 minio]# chmod +x /usr/local/bin/mc
[root@master01 minio]# mc --autocompletion #mc自动补全
[root@master01 minio]# mc --help
连接minio:
使用mc alias set命令将Amazon s3兼容的服务添加到mc配置中,将alias替换为要关联到S3服务的名称。
mc命令通常需要alias作为参数来标识要对哪个S3服务执行,如果省略ACCESS_KEY和SECRET_KEY,执行命令时会提示在CLI中输入这些值。
[root@master01 minio]# mc alias set myminio https://api.linuxsb.com minio minio123
Added `myminio` successfully.
[root@master01 minio]# mc admin info myminio
bucket
- 创建bucket
[root@master01 ~]# mc mb myminio/mybucket02 #创建bucket
[root@master01 ~]# mc ls myminio #列出bucket
[2024-09-06 04:14:49 CST] 0B mybucket/
[2024-09-09 07:29:20 CST] 0B mybucket02/
- 删除bucket
[root@k8s-master ~]# mc rb myminio/mybucket02 #删除没有object的bucket
[root@k8s-master ~]# mc rb myminio/mybucket02 --force #强制删除bucket,即使含有文件
object
- 上传下载
[root@master01 ~]# echo "This is my test file!" > test01.txt
[root@master01 ~]# mc cp test01.txt myminio/mybucket/test01.txt #上传测试文件
[root@master01 ~]# mkdir testdir #创建测试目录
[root@master01 ~]# echo "This is my test02 file!" > testdir/test02.txt
[root@master01 ~]# mc cp testdir myminio/mybucket --recursive #上传测试目录,且递归上传
[root@master01 ~]# mc ls myminio/mybucket #查看minio存储
[2024-09-10 09:32:04 CST] 22B STANDARD test01.txt
[2024-09-10 09:32:45 CST] 0B testdir/
[root@master01 ~]# mkdir download
[root@master01 ~]# mc cp myminio/mybucket/test01.txt download/ #下载文件
[root@master01 ~]# mc cp myminio/mybucket/testdir download/ --recursive #下载目录,且递归下载
[root@master01 ~]# ll download/ #查看文件
total 4.0K
-rw-r--r-- 1 root root 22 Sep 10 09:33 test01.txt
drwxr-xr-x 2 root root 24 Sep 10 09:34 testdir
[root@master01 ~]# ll download/testdir/
total 4.0K
-rw-r--r-- 1 root root 24 Sep 10 09:34 test02.txt
- 删除
[root@master01 ~]# mc rm myminio/mybucket/test01.txt #删除文件
[root@master01 ~]# mc rm myminio/mybucket/testdir --recursive --force #删除目录,即使包含文件
[root@master01 ~]# mc ls myminio/mybucket #查看minio存储
Policy
查看policy
列出 MinIO 上的所有预设策略。
[root@master01 ~]# mc admin policy list myminio
diagnostics
mypolicy
readonly
readwrite
writeonly
consoleAdmin
删除policy
[root@master01 ~]# mc admin policy remove myminio listbucketsonly
创建policy
创建一个新的policy。
[root@master01 ~]# vim listbucketsonly.json #编写新的策略规则
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
[root@master01 ~]# mc admin policy create myminio listbucketsonly ./listbucketsonly.json
User管理
- 创建用户
[root@master01 ~]# mc admin user add myminio newuser newuser123
Added user `newuser` successfully.
[root@master01 ~]# mc admin user add myminio newuser02 newuser123
Added user `newuser02` successfully.
[root@master01 ~]# mc admin user add myminio newuser03 newuser123
Added user `newuser03` successfully.
- 禁用用户
[root@master01 ~]# mc admin user disable myminio newuser
Disabled user `newuser` successfully.
- 启用用户
[root@master01 ~]# mc admin user enable myminio newuser
Enabled user `newuser` successfully.
- 给用户关联策略
[root@master01 ~]# mc admin policy attach myminio listbucketsonly --user newuser
Attached Policies: [listbucketsonly]
To User: newuser
- 创建用户组及关联用户
创建用户组,并关联用户。
[root@master01 ~]# mc admin group add myminio somegroup newuser
Added members `newuser` to group `somegroup` successfully.
[root@master01 ~]# mc admin group add myminio somegroup newuser02
Added members `newuser02` to group `somegroup` successfully.
- 给用户组关联策略
[root@master01 ~]# mc admin policy attach myminio listbucketsonly --group somegroup
Attached Policies: [listbucketsonly]
To Group: somegroup
- 列出用户
列出用户,或以json格式列出。
[root@master01 ~]# mc admin user list myminio
enabled newuser listbucketsonly
enabled newuser02
enabled newuser03
[root@master01 ~]# mc admin user list myminio --json
{
"status": "success",
"accessKey": "newuser02",
"userStatus": "enabled"
}
{
"status": "success",
"accessKey": "newuser03",
"userStatus": "enabled"
}
{
"status": "success",
"accessKey": "newuser",
"policyName": "listbucketsonly",
"userStatus": "enabled",
"memberOf": [
{
"name": "somegroup",
"policies": [
"listbucketsonly"
]
}
]
}
- 显示用户信息
显示用户详细信息。
[root@master01 ~]# mc admin user info myminio newuser
AccessKey: newuser
Status: enabled
PolicyName: listbucketsonly
MemberOf: [somegroup]
- 删除用户
[root@master01 ~]# mc admin user remove myminio newuser03
Removed user `newuser03` successfully.
Groups管理
- 创建用户组并添加用户
- 从组中移除用户
[root@master01 ~]# mc admin group remove myminio somegroup newuser02
Removed members {newuser02} from group somegroup successfully.
- 列出用户组
[root@master01 ~]# mc admin group list myminio
mygroups
somegroup
- 禁用用户组
[root@master01 ~]# mc admin group disable myminio somegroup
Disabled group `somegroup` successfully.
- 启用用户组
[root@master01 ~]# mc admin group enable myminio somegroup
Enabled group `somegroup` successfully.
- 显示用户组信息
[root@master01 ~]# mc admin group info myminio somegroup
Group: somegroup
Status: enabled
Policy: listbucketsonly
Members: newuser
- 删除用户组
只有当用户组为空,即用户组里不存在用户时,才可删除。
[root@master01 ~]# mc admin group remove myminio somegroup
mc: <ERROR> Could not perform remove operation. The specified group is not empty - cannot remove it. (Specified group is not empty - cannot remove it).
[root@master01 ~]# mc admin group info myminio somegroup #查看用户组信息
Group: somegroup
Status: enabled
Policy: listbucketsonly
Members: newuser
[root@master01 ~]# mc admin group remove myminio somegroup newuser #删除仅存的用户
Removed members {newuser} from group somegroup successfully.
[root@master01 ~]# mc admin group remove myminio somegroup #再次删除用户组
Removed group somegroup successfully.
config管理
[root@master01 ~]# mc admin config export myminio #获取集群配置
[root@master01 ~]# mc admin config export myminio > my-serverconfig #获取集群配置并重定向至文件
集群管理
查看集群信息
显示debug调试
[root@master01 ~]# mc admin info --debug myminio
json格式显示
指定显示格式。
[root@master01 ~]# mc admin info myminio --json
重启minio服务
service命令提供了一种重新启动和停止所有 MinIO 服务器的方法。
[root@master01 ~]# mc admin policy --help
[root@master01 ~]# mc admin service restart myminio
Service status: ▰▰▱ [DONE]
Summary:
┌───────────────┬─────────────────────────────┐
│ Servers: │ 4 online, 0 offline, 0 hung │
│ Restart Time: │ 1.133381597s │
└───────────────┴─────────────────────────────┘
curl工具使用
curl工具参考: curl客户端使用 。
006.MinIO基础使用的更多相关文章
- 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序
006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...
- 006 SpringCloud 学习笔记2-----SpringCloud基础入门
1.SpringCloud概述 微服务是一种架构方式,最终肯定需要技术架构去实施. 微服务的实现方式很多,但是最火的莫过于Spring Cloud了.SpringCloud优点: - 后台硬:作为Sp ...
- java基础-006
37.JDBC JDBC是允许用户在不同数据库之间做选择的一个抽象层.JDBC允许开发者用JAVA写数据库引用程序,而不需要关心底层特定数据库的细节. 38.驱动(Driver) 在JDBC中的角色 ...
- 006.Ceph对象存储基础使用
一 Ceph文件系统 1.1 概述 Ceph 对象网关是一个构建在 librados 之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关 . Ceph 对象存 ...
- 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境
在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了. 第一步:安装交叉编译工具 a) 安装SDCC sudo apt-get install sdcc b)测试SDC ...
- 006 python的面向对象基础
1.类 描述具有相同属性与方法的对象的集合. 2.创建类 使用class来创建一个新类,class之后为类的名称并以冒号结尾 3.程序 #!/usr/bin/python # -*- coding: ...
- 算法Sedgewick第四版-第1章基础-006一封装输出(文件)
1. package algorithms.util; /*********************************************************************** ...
- 《零基础入门学习Python》【第一版】视频课后答案第006讲
python中被看作假:FALSE none 0 ‘ ’ " " ( ) [ ] { },其他一切都被解释为真 测试题答案: 0.Python 的 floor 除法现在使用 ...
- Python基础教程(006)--Python的特点
前言 了解Python背景,明白Python在目前社会中的标准库是有成千上万的Python爱好者共同维护的. 知识点 Python是完全面相对象的语言 函数,模块,数字,字符串都是对象,在Python ...
- 006.前端开发知识,前端基础CSS(2020-01-21)
来源:第五天 01盒子水平居中 一.盒子中文字控制: 1.text-align: center; /*可以让盒子内容(文字 行内元素 行内块元素)居中对齐*/ 二.让盒子水平居中对齐: 方法1.ma ...
随机推荐
- 【原创软件】第6期:极简SciHub论文下载器
一.背景 因为科研需求下载英文论文,省得自己去找有效的scihub网址,特此写了一个基于c#和wpf的小软件. 二.使用方法 只需要输入doi即可,点击[打开浏览器下载论文]即可跳转浏览器进行下载.下 ...
- 权威技术社区InfoQ列网易数帆为年度最有价值技术团队,技术实力获广泛认可
近日,权威技术社区InfoQ公布数字化转型技术服务商网易数帆为2020年最有价值技术团队,并被授予"最佳技术社区驱动力奖",认可网易数帆在技术领域的突出成就和实力. Inf ...
- oeasy教您玩转vim - 82 - # 函数function
函数 function 回忆 关于宏,我们回忆一下 qa 开始录制宏 q 结束录制宏 @a 应用宏 qA 追加录制宏 控制寄存器内容其实就是控制宏 宏还有一些特性 可以多文件执行宏 可以并发运行宏 ...
- Prometheus 基于Python Django实现Prometheus Exporter
基于Python Django实现Prometheus Exporter 需求描述 运行监控需求,需要采集Nginx 每个URL请求的相关信息,涉及两个指标:一分钟内平均响应时间,调用次数,并且为每个 ...
- Python在linux系统和window系统相对路径导致找不到文件报错
文件路径 project1 -dir1 --test1.py -dir2 --test2.text -main.py test1.py from pathlib import Path "& ...
- windows10 idea springboot项目部署
windows10 idea springboot项目部署 一,springboot项目 本次项目在原项目的基础之上进行了二次开发:添加了index.html页面 根据配置文件配置数据库 先创建数据库 ...
- 【MySQL】查询是否连续5次失败
场所房间表 场所编号和房间号联合唯一, 一对多关系 场所编号关联商家ID,一对一关系 CREATE TABLE `aisw_room` ( `ID` int(11) NOT NULL AUTO_INC ...
- 【Canal】01 入门 & Kafka模式
什么是Canal (卡耐尔) ? Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件 原理基于MySQL的binlog从库监听 一.MySQL ...
- 传奇人物:“Linux之父”林纳斯·托瓦兹(Linus Torvalds)
偶然看到一个视频: https://www.youtube.com/watch?v=H32IXRkPjHA 林纳斯·托瓦兹(Linus Torvalds)是当之无愧的技术领袖.尤其是那句Just fo ...
- 强化学习baseline论文—— rainbow算法中给出实验结果的54个atari2600游戏名称列表
alien amidar assault asterix asteroids atlantis bank_heist battle_zone beam_rider berzerk bowling bo ...