前言

此文讲解Minio控制台详细教程,可能会涉及到有些知识大家可能不懂情况。

需要知道Minio兼容的是AMS S3对象存储服务。需要知道AMS S3对象存储服务是什么,里面涉及的到配置如何去配等等。

https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies.html

登录Minio看板

部署的ip+端口号访问。

输入部署时设置的minio_access_key(用户名)minio_secret_key(密码)

至此登录成功。

Buckets(桶)

创建Bucket

如图所示创建一个bucket

解读一下:

  1. bucket name:bucket名字。
  2. versioning: 版本控制允许在同一个键下保留同一个对象的多个版本。
  3. object locking:对象锁定防止对象被删除。需要支持保留和合法持有。只能在创建桶时启用。
  4. quota:配额用于限制桶内的数据量。
  5. retention:保留是指在一段时间内防止对象删除的规则。为了设置桶保留策略,必须启用版本控制。

测试文件上传

如下图所示:点击object browser选择你要上传的bucket然后点击upload。

选择上传文件还是上传文件夹

至此我们就上传了第一文件了。

Bucket相关的配置

Summary(概要):主要是展示当前bucket相关的配置。

Access Poilcy:一共有三个值,private,public,custom。私有代表需要通过验签且生成的url只有7天有效期。公共代表不需要验签通过http://127.0.0.1:端口/test/minio.jpg永久可以访问。自定义就是可以自己定义那些前缀是只读,那些前缀是读写的等等。这个在Anonymous里面可以配置。

Encyption: 就是配置是否加密。

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

Events:事件,主要是给这个Bucket绑定那些事件通知,下面会讲到如何使用。

Lifecycle(生命周期):就是配置生命这个bucket的生命周期。

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

After:代表多少天后过期

Prefix:文件名前缀。

Anonymous:配置

Policies(策略)配置

如图所示点击Policies,然后点击create policies来创建策略。

策略是什么?

如下图所示,翻译过来的意思就是MinIO使用基于策略的访问控制(PBAC)来定义经过身份验证的用户有权访问的授权操作和资源。每个策略描述一个或多个操作和条件,这些操作和条件概括了一个用户或一组用户的权限。MinIO PBAC是为了兼容AWS IAM策略语法、结构和行为而构建的。每个用户只能访问内置角色显式授予的资源和操作。默认情况下,MinIO拒绝访问任何其他资源或操作。

说白了就是管理权限的,通过策略来管理用户是否有权进行操作和可访问的资源等等。

使用的语法AWS IAM策略语法

https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies.html

详细了解请点击上述连接。

语法中的元素来自AMS IAM官方讲解的非常清楚,每个元素是干嘛的,怎么使用等等。

Minio的默认初始化的策略

如上图所示,Minio搭建完成后默认给我们初始化了几个策略,如只读阿,读写阿,只写阿等等,其实这些策略已经够我们日常使用了。

下图是只读策略,看一下策略语法,很容易理解

解读:

version – 使用的策略语法的版本,AWS IAM建议使用最新版本也就是2012-10-17版本。

Effect – 有两个值可选,Allow或Deny指的是策略是允许还是拒绝访问。

Action – 策略允许或被拒绝的操作方法,此字段需要搭配Effect使用,例如Effect选择的是Allow,他的意思就是允许操作的方法,反之拒绝操作的方法。Action里面的值看下图就知道了是对应的S3的方法。

Resource – 可操作的资源,如图是所有资源可操作,意思就是可以操作所有的bucket数据等等。

Identity(身份)

Users(用户)

官网解释:用户MinIO用户由唯一的接入密钥(用户名)和对应的密钥(密码)组成。客户端必须通过指定现有MinlO用户的有效访问密钥(用户名)和相应的密钥(密码)来验证其身份。组提供了一种简化的方法,用于管理具有通用访问模式和工作负载的用户之间的共享权限。用户通过所属组继承对数据和资源的访问权限。MinlO使用基于策略的访问控制(PBAC)来定义经过身份验证的用户有权访问的授权操作和资源。每个策略描述一个或多个操作和条件,这些操作和条件概括了一个用户或一组用户的权限。每个用户只能访问内置角色显式授予的资源和操作。默认情况下,MinlO拒绝访问任何其他资源或操作。

首先,创建一个用户。点击Creat User

用户名称,密码用于登录验证身份等等,选择的策略,策略可以勾选多个,策略即权限。点击save就创建成功。

Groups(用户组)

官方解释:组一个组可以有一个附加的IAM策略,该组中的所有成员都继承该策略。组支持更简化的MinlO Tenant上的用户权限管理。就是可以通过用户组来管理用户组下的用户权限,多对多的关系,一个组下面有可以选择多个组员,一个组员可以属于多个用户组。

首先,创建一个组。

创建成功后,返回到上一层,勾选上用户组,然后点击Assign Policy来附加策略。

OpenId

官方解释:MinlO支持使用OpenID Connect (OIDC)兼容的身份提供者(IDP),如Okta, KeyCloak, Dex,谷歌或Facebook进行用户身份的外部管理。配置外部IDP可启用单点登录工作流,其中应用程序在访问MinIO之前根据外部IDP进行身份验证。大概就是可以通过OpenId来实现单点登录,以及外部的验权,配合目前流行的权限框架实现此功能。

如KeyCloak框架,这块想要了解的可以去网上看看,在这里就不过多的讲解了。

https://blog.csdn.net/qq276726581/article/details/124855958

官网文档:了解有关OpenlD连接配置的更多信息点击下此连接。

https://min.io/docs/minio/linux/operations/external-iam.html?ref=con#minio-external-iam-oidc

LDAP

官方解释:创建配置MinlO支持使用Active Directory或LDAP (AD/LDAP)服务进行用户身份的外部管理。配置外部身份提供程序(IDP)启用单点登录(SSO)工作流,其中应用程序之前根据外部IDP进行身份验证accessing Minlo。MinIO查询配置的Active Directory / LDAP服务器,以验证应用程序指定的凭据,并可选地返回用户所属的组列表。MinIO支持两种模式(查找绑定模式和用户名绑定模式)来执行这些查询MinlO建议使用Lookup-Bind模式作为验证AD/LDAP凭据的首选方法。用户名绑定模式是仅为向后兼容而保留的传统方法。

目前看官方的解释是仅为向后兼容所保留的,后续版本可能也会废除,了解即可。

想要学习的同学,可以参考下列链接进行学习。

https://zhuanlan.zhihu.com/p/147768058

https://min.io/docs/minio/linux/operations/external-iam.html?ref=con#minio-external-iam-ad-ldap

Monitoring(监控)

Metrics(指标)

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

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

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

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

因为本地没有Prometheus没办法给大家演示集成Prometheus后的监控大屏。这块我会陆续去学习,沉淀相关知识。有兴趣的同学可以去官网或者网上学习了解。

Trace(追踪)

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

Events(事件通知)

官方解释:MinIO 存储通知允许管理员将通知发送到 支持特定对象或存储桶事件的外部服务。 MinIO 支持存储和对象级别的 S3 事件,类似于 Amazon S3 Event Notifications.

其实就是存储对象的操作完成后可以通过事件的形式去通知。支持多种事件的通知,如下图所示。

redis和Mysql的事件通知

首先点击redis图标,配置相关redis的配置,点击Save后需要重启服务。

解读:

adress:你的redis地址加端口号。例如:127.0.0.1:6379。注意别忘记端口号了。

Key:你取的redis的key名称。

Password: redis的密码。

Mysql的事件创建

点击Mysql,填写Mysql相关的ip,端口号,用户名,密码,数据库名称。

一定要记住下面的表名称也要配置,要不然就报错。其他的不需要配可了解,点击Save后需要重启服务。

这就是我们刚才配置的redis,Mysql事件通知。还没完,还没完!!!往下继续看。

点击菜单栏的Buckets选择你要发事件的bucket,点击Events后,点击Subscribe To Events。

选择事件的ARN,选择只能单选,选择如图Mysql。

下面勾选你要通知的事件类型,PUT,GET,DELETE。然后Save。

至此我们的事件通知就配置好了,看一下效果。

去上传一个文件后查看相应的Mysql,Redis事件通知。

Mysql的效果

Redis的效果

Tiering(对象生命周期管理)

官方解释:MinIO 对象生命周期管理允许为时间或日期创建规则 基于对象的自动转换或到期。 对于对象过渡, MinIO 自动将对象移动到配置好的远程存储层。 对于对象到期,MinIO 会自动删除该对象。

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

如下图所示,Minio支持多种对象转移类型。这里就不给大家演示了,因为目前本人没有其他的远端oss。

Site Replication(复制站点)

官方解释:网站复制,该特性允许将多个使用相同外部身份提供程序(IDP)的独立MinlO站点(或集群)配置为副本。

就是可以复制一个副本出来,到目标网站,方便搭建集群,以及迁移什么的,无需再繁琐的配置等等。

首先,添加复制站点。

如下图所示,填写对应的站点信息,主要是取个名字,端地址,然后Access Key,Secret Key。

需要填写本站的,目标站的,目标站可以多个。