PIGSTY

使用

MinIO 与 mcli 使用入门,如何访问 MinIO 服务?

MinIO 集群 配置 并通过 剧本 部署完成后,您可以按照以下说明开始使用和访问 MinIO 集群。


部署集群

使用 Pigsty 部署单节点 MinIO 实例非常简单。

minio: { hosts: { 10.10.10.10: { minio_seq: 1 } }, vars: { minio_cluster: minio } }

配置清单 中定义它,然后运行剧本:

./minio.yml -l minio

install.yml 剧本将自动创建清单中定义的 MinIO 集群,因此如果您选择默认的一次性安装,无需手动运行 minio.yml 剧本。

如果您计划部署生产级大规模多节点 MinIO 集群,我们 强烈 建议您在开始之前阅读 Pigsty MinIO 配置文档 和 MinIO 官方文档


访问集群

您必须通过 HTTPS 访问 MinIO,因此请确保默认的 minio 服务域名(sss.pigsty)指向正确的位置:

  1. 您可以在 node_etc_hosts 中添加静态解析记录或手动修改 /etc/hosts 文件
  2. 如果您正在使用 DNS 服务,可以在内部 DNS 服务器上添加记录
  3. 如果您正在使用基础设施节点上的 DNSMASQ,可以在 dns_records 中添加记录

建议使用第一种方法:静态 DNS 解析记录,以避免 MinIO 在生产环境中对 DNS 的额外依赖。

您必须将 MinIO 服务域名指向 MinIO 服务器节点的 IP 地址和服务端口,或负载均衡器的 IP 地址和服务端口。Pigsty 将使用默认域名 sss.pigsty 和默认端口 9000

例如,如果您使用 haproxy 来暴露 MinIO 服务 像这样,端口可能是 9002


添加别名

要使用 mcli 客户端访问 MinIO 服务器集群,您需要首先配置服务器别名:

mcli alias ls  # 列出 minio 别名(默认是 sss)
mcli alias set sss https://sss.pigsty:9000 minioadmin minioadmin              # root 用户
mcli alias set sss https://sss.pigsty:9002 minioadmin minioadmin              # root 用户,在负载均衡器端口 9002 上

mcli alias set pgbackrest https://sss.pigsty:9000 pgbackrest S3User.Backup    # 使用其他用户

在管理节点的管理用户上有一个预配置的名为 sss 的 MinIO 别名,您可以直接使用它。

关于 MinIO 客户端工具 mcli 的完整功能,请参考文档:MinIO Client


管理用户

您可以使用 mcli 在 MinIO 中管理业务用户,例如,您可以使用命令行创建两个默认业务用户:

mcli admin user list sss     # 列出所有用户
set +o history               # 隐藏 shell 历史
mcli admin user add sss dba S3User.DBA
mcli admin user add sss pgbackrest S3User.Backup
set -o history

管理桶

您可以使用 mcli 管理桶:

mcli ls sss/                         # 列出 'sss' 上的所有桶
mcli mb --ignore-existing sss/hello  # 创建名为 'hello' 的桶
mcli rb --force sss/hello            # 删除 'hello' 桶

管理对象

您可以使用 cli 执行对象 CRUD 操作,例如:

mcli cp /www/pigsty/* sss/infra/     # 将本地仓库内容上传到 infra 桶
mcli cp sss/infra/plugins.tgz /tmp/  # 从 minio 下载文件到本地
mcli ls sss/infra                    # 列出 infra 桶中的所有文件
mcli rm sss/infra/plugins.tgz        # 删除 infra 桶中的文件
mcli cat sss/infra/repo_complete     # 输出文件内容

详细信息请查看 教程:对象管理


使用 rclone

Pigsty 仓库中提供了 rclone,这是一个方便的云对象存储客户端,您可以使用它来访问 MinIO 服务。

yum install rclone; # el 兼容
dnf install rclone; # debian/ubuntu

mkdir -p ~/.config/rclone/;
tee ~/.config/rclone/rclone.conf > /dev/null <<EOF
[sss]
type = s3
access_key_id = minioadmin
secret_access_key = minioadmin
endpoint = sss.pigsty:9000
EOF

rclone ls sss:/

备份仓库

在 Pigsty 中,MinIO 默认用作 pgBackRest 的备份仓库。当您将 pgbackrest_method 修改为 minio 时,PGSQL 模块将自动将备份仓库切换到 MinIO。

pgbackrest_method: local          # pgbackrest 仓库方法:local,minio,[用户定义...]
pgbackrest_repo:                  # pgbackrest 仓库:https://pgbackrest.org/configuration.html#section-repository
  local:                          # 使用本地 posix fs 的默认 pgbackrest 仓库
    path: /pg/backup              # 本地备份目录,默认为 `/pg/backup`
    retention_full_type: count    # 按数量保留完整备份
    retention_full: 2             # 使用本地 fs 仓库时保留 2 个,最多 3 个完整备份
  minio:                          # pgbackrest 可选的 minio 仓库
    type: s3                      # minio 兼容 s3,因此使用 s3
    s3_endpoint: sss.pigsty       # minio 端点域名,默认为 `sss.pigsty`
    s3_region: us-east-1          # minio 区域,默认为 us-east-1,对 minio 无用
    s3_bucket: pgsql              # minio 桶名,默认为 `pgsql`
    s3_key: pgbackrest            # pgbackrest 的 minio 用户访问密钥
    s3_key_secret: S3User.Backup  # pgbackrest 的 minio 用户密钥
    s3_uri_style: path            # 对 minio 使用路径样式 uri 而不是主机样式
    path: /pgbackrest             # minio 备份路径,默认为 `/pgbackrest`
    storage_port: 9000            # minio 端口,默认为 9000
    storage_ca_file: /pg/cert/ca.crt  # minio ca 文件路径,默认为 `/pg/cert/ca.crt`
    bundle: y                     # 将小文件打包成单个文件
    cipher_type: aes-256-cbc      # 为远程备份仓库启用 AES 加密
    cipher_pass: pgBackRest       # AES 加密密码,默认为 'pgBackRest'
    retention_full_type: time     # 在 minio 仓库上按时间保留完整备份
    retention_full: 14            # 保留最近 14 天的完整备份

请注意,如果您通过负载均衡器使用 MinIO,您应该在此处使用相应的域名和端口号。