首页 > 其他分享 >006.MinIO基础使用

006.MinIO基础使用

时间:2024-09-12 13:53:40浏览次数:1  
标签:somegroup MinIO mc admin master01 基础 myminio 006 root

图形界面基础使用

bucket

bucket创建

图形界面创建bucket。

022

023

特性:

  • Versioning
    开启版本控制,开启版本控制则允许在同一键下保持同一对象的多个版本。

  • Object Locking
    对象锁定防止对象被删除,需要支持保留和合法持有,只能在创建桶时启用。

  • Quita
    配额限制bucket中的数据量。

  • Retention
    保留会施加规则,在一段时间内防止对象删除。为了设置桶保留策略,必须启用版本控制。

确认创建成功,查看bucket详情。

024

035

Anonymous:配置Access Poilcy为custom,可以自己定义那些前缀是只读,那些前缀是读写的等。

036

Events:事件,设置Bucket绑定那些事件通知。

037

Lifecycle:生命周期,配置bucket的生命周期。
类型选择Expiry代表是过期直接删除,选择Transition就是过期后转移到目标存储服务器,需要搭配Tiering使用。

Prefix:文件名前缀。
After:代表多少天后过期。

038

039

测试上传

测试上传文件。

033

034

创建AK

创建Access Keys

图形界面创建AK和SK。

025

强烈建议对锁创建的key进行记录:

xuq70VZxkfwPvDG5Mfga
t3FgyXTOhfyKowWFbMvFpTPJ9rJQh0RiTLEnJ2F5

026

027

也可将所创建的Key下载到本地。

028

配置权限

授予权限

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。

040

Groups

Groups可以有一个附加的IAM策略,该组中具有成员资格的所有用户都继承该策略。
Groups支持更简化的MinIO租户用户权限管理,即可以通过用户组来管理用户组下的用户权限,多对多的关系,一个组下面有可以选择多个组员,一个组员可以属于多个用户组。

创建一个组。
041

042
确认创建成功。
043

设置Groups的Policy。

044

勾选已创建的Policy。

045

确认创建完成。
046

关联策略,关联用户成员,从而实现更方便的批量权限管理。

Monitoring

Metrics

Metrics指标,MinIO 支持 Prometheus 用于指标和警报。
Prometheus 是一个开源系统和服务监控系统 支持基于收集的指标进行分析和警报。
Prometheus 生态系统包括多个 integrations ,允许广泛的处理和存储范围收集的指标。

MinIO 发布了 Prometheus 兼容的集群获取endpoint和节点级指标。
看 指标 为了 更多信息。
对于警报,请使用 Prometheus Alerting Rules 和 Alert Manager 根据收集的指标触发警报。

MinIO 使用 Prometheus 兼容数据发布收集的指标数据结构。
任何与 Prometheus 兼容的抓取软件都可以获取和处理 MinIO 指标以进行分析、可视化和警报。

如下图所示,可以看到基本信息相关的监控指标。

047

Trace

追踪,选择那些Trace的调用,然后开启Trace,下面就会记录所有的Trace,如时间,名称。状态,等等。
048

Events

时间通知,MinIO桶通知允许管理员就某些对象或桶事件向受支持的外部服务发送通知。MinIO支持桶级和对象级S3事件,类似于Amazon S3事件通知。

本质是Minio操作完成后通过事件的形式对外进行通知。

049

Minio支持多种事件的通知,如下图所示:

050

Tiering

对象生命周期管理:Tiering由MinIO对象生命周期管理使用,它允许创建基于时间或日期的对象自动转换或到期规则。对于对象迁移,MinIO会自动将对象迁移到已配置的远端存储层。

对于对象到期,MinIO 会自动删除该对象。
即对象生命周期可以用户自定义管理,但是对象过期了处理方式,Minio提供了两种选择,要么直接删除该对象,要么把该对象转换到远端的存储服务上去。

051

MinIO支持创建对象转移的生命周期管理规则,MinIO可以自动将对象移动到远程存储“Tiering”:
MinIO支持以下Tier类型:

052

Site Replication‘

复制站点:网站复制,此特性允许将使用相同外部IDentity Provider (IDP)的多个独立MinIO站点(或集群)配置为副本。。

即复制一个副本出来,到目标网站,快速搭建集群,以及迁移,无需再繁琐的配置等。

053

如下图所示,填写对应的站点信息,包括名字、端地址、Access Key,Secret Key。
需要填写本站的,目标站的,目标站可以多个。

054

客户端使用

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

055

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     #获取集群配置并重定向至文件

集群管理

查看集群信息

mc工具

显示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客户端使用

标签:somegroup,MinIO,mc,admin,master01,基础,myminio,006,root
From: https://www.cnblogs.com/itzgr/p/18410023

相关文章

  • 0基础女生可以学习网络安全吗?
    众所周知,网络安全是一个不断增长和发展的领域,随着科技的进步和数字化时代的到来,对网络安全专业人才的需求也在不断增加。但在大家的认知中,IT行业大多不适合女生,因此很多小姐姐会纠结要不要学网络安全,那么0基础女生学网络安全合适吗?具体请看下文。0基础女生学习网络安全是......
  • 【H2O2|全栈】关于CSS(2)CSS基础(二)
    目录CSS基础知识前言准备工作选择器的组合盒模型示例网页代码后代选择器亲代选择器相邻兄弟选择器后续兄弟选择器多个元素选择器 通配符选择器优先级其他应用伪类锚链接的属性列表的属性list-style-typelist-style-positionlist-style-image伪元素表格......
  • 【编程基础知识】mysql中的insert into ... on DUPLICATE key和replace into的性能对
    一、概述在MySQL中,INSERTINTO...ONDUPLICATEKEYUPDATE和REPLACEINTO都是用来处理插入或更新数据的语句,但它们在性能和行为上有所不同。二、REPLACEINTOREPLACEINTO语句在遇到唯一键或主键冲突时,会先删除旧记录,然后插入新记录。这意味着它会执行两次操作:删除......
  • MySQL基础(10)- 子查询
    目录一、子查询的例子和分类1.举例需求:谁的工资比Abel的高?2.称谓的规范3.子查询的分类二、单行子查询1.单行比较操作符2.子查询中的空值问题3.非法使用子查询三、多行子查询1.多行子查询的操作符2.空值问题四、相关子查询1.基础相关子查询2.EXISTS与NOTEXISTS......
  • 二、SD基础绘画参数详解
    基础绘画参数详解通过上一篇文章1的学习,相信你成功利用AI技术绘制出第一幅令人满意的作品,我们已经迈出了探索数字艺术的第一步。现在,是时候深入了解WebUI这个强大的工具了。我们将逐步学习如何调整和优化画图的相关参数,书写模型的提示词,使我们能够更精细地控制创作过程,从而......
  • MySQL基础(9)- 聚合函数
    目录一、常见聚合函数1.AVG/SUM2.MAX/MIN3.COUNT二、GROUPBY的使用1.查询各个部门的平均工资,最高工资2.查询各个job_id的平均工资3.查询各个department_id,job_id的平均工资4.查询各个部门的平均工资,按照平均工资升序排列三、HAVING的使用 1.查询各个部门中......
  • Java-数据结构-二叉树-基础 (o゚▽゚)o
    文本目录:❄️一、树形结构:  ▶ 1、概念:▶ 2、特殊的概念: ▶ 3、树的表示形式:❄️二、二叉树:  ▶ 1、概念:   ▶2、两种特殊的二叉树:     ➷1)、满二叉树:      ➷ 2)、完全二叉树:  ▶3、二叉树的性质:    ➷ 1)性质一:  ......
  • JAVA线程基础——ThreadLocal的使用和原理
    一、ThreadLocal        多线程访问同一个共享变量时特别容易出现并发问题,特别是在多个线程需要对一个共享变量进行写入时。为了保证线程安全,一般使用者在访问共享变量时需要进行适当的同步,如图1-3所示。        同步的措施一般是加锁,这就需要使用者对锁有......
  • JAVA基础:抽象类,接口,instanceof,类关系,克隆
    1JDK中的包JDK=JRE+开发工具集(javac.exe)JRE=JVM+java类库JVM=java虚拟机jdk中自带了许多的包(类),常用的有java.lang该包中的类,不需要引用,可以直接使用。例如:Object,System,Stringjava.utiljava.sqljava.netjava.iojava.text2抽象方法......
  • SD入门教程一:Stable Diffusion 基础(技术篇)
    前言在开篇的时候就大致讲了SD和VAE,那么今天我们具象化地再来讲讲StableDiffusion(稳定扩散)。严格说来它是一个由几个组件(模型)构成的系统,而非单独的一个模型。我以最常见的文生图为例,解释下StableDiffusion的整体架构和工作原理。本次教程将使用AI绘画工具StableD......