0%

使用mc admin管理minio集群

在mc中添加集群

在控制台添加aksk

img

使用mc config host add <ALIAS> <ENDPOINT> ACCESS_KEY SECRET_KEY添加minio实例

img

使用命令测试与新添加的 MinIO 部署的连接:

mc admin info <ALIAS>

img

将webhook添加到Minio

MinIO 支持 使用命令和配置密钥在正在运行的进程上添加或更新 Webhook 端点。您必须重新启动该 过程才能应用任何新的或更新的配置设置。minio servermc admin config setnotify_webhookminio server

以下示例代码设置 与配置 Webhook 服务端点相关的_所有设置。必须要有的设置是 :notify_webhook endpoint

$mc admin config  set ALIAS/ notify_webhook:IDENTIFIER \
endpoint="<ENDPOINT>" \
auth_token="<string>" \
queue_dir="<string>" \
queue_limit="<string>" \
client_cert="<string>" \
client_key="<string>" \
comment="<string>"

● 替换IDENTIFIER为 Webhook 服务端点的唯一描述性字符串。此过程中的以下示例假定标识符为PRIMARY

● 如果指定的值IDENTIFIER与 MinIO 部署上的现有 Webhook 服务端点匹配,则新设置_将覆盖_ 该端点的任何现有设置。用于 查看 MinIO 部署上当前配置的 Webhook 端点。mc admin config get notify_webhook

● 替换ENDPOINT为 Webhook 服务端点的 URL。例如: https://webhook.example.com

有关每个设置的完整文档,请参阅 Webhook 存储桶通知配置设置。

识别存储桶通知的 ARN

<IDENTIFIER>在之前创建终端节点时定义了分配给存储桶通知的目标 ARN。以下步骤返回在部署中配置的 ARN。通过查找<IDENTIFIER>您指定的 ARN 来识别之前创建的 ARN。

查看 JSON 输出

  1. 复制并运行以下命令,替换ALIAS为部署的别名。
  2. mc admin info –json ALIAS
  3. 在 JSON 输出中,查找 key info.sqsARN
  4. 您需要的 ARN 是与您指定的密钥相匹配的值<IDENTIFIER>
  5. 例如,arn:minio:sqs::primary:webhook.

使用 jq 解析 JSON 中的值

  1. 安装jq
  2. 复制并运行以下命令,替换ALIAS为部署的别名。
  3. mc admin info –json ALIAS | jq .info.sqsARN
  4. 这将返回用于通知的 ARN,例如arn:minio:sqs::primary:webhook

img

img

img

img

mc config host  add hotfix-test http://10.73.195.24:19000 AK  SK       
mc admin config set hotfix-test/ notify_webhook:SECONDARY \
endpoint="http://10.73.195.24:19000"
mc event add hotfix-test/hotfix-test arn:minio:sqs::SECONDARY:webhook --event s3:ObjectCreated:*,s3:ObjectAccessed:*,s3:ObjectRemoved:*,s3:Replication:*,s3:ObjectRestore:*,s3:ObjectTransition:*
mc admin config set minio-domestic notify_webhook:PRIMARY \
endpoint="http://ksgame-public-minio-event-webhook-domestic.internal:80/webhook/" \ queue_dir="/data/logs/minio/event" \
queue_limit="100000"

mc操作远程集群

添加远程集群

$mc alias set  minio-test-1 http://ksgame-gamecloud-hotfix-minio-test-1.hb.txyun:9000  MINIOUSER MINIOPASSWD  Added  `minio-test-1` successfully  
$mc alias set minio-test-2 http://ksgame-gamecloud-hotfix-minio-test2-1.hb.txyun:9000 MINIOUSER MINIOPASSWD Added `minio-test-2` successfully.

验证 mc alias list, 如下输出代表成功

minio-test-1   
URL : http://ksgame-gamecloud-hotfix-minio-test-1.hb.txyun:9000
AccessKey : MINIOUSER
SecretKey : MINIOPASSWD
API : s3v4
Path : auto
minio-test-2
URL : http://ksgame-gamecloud-hotfix-minio-test2-1.hb.txyun:9000
AccessKey : MINIOUSER
SecretKey : MINIOPASSWD
API : s3v4
Path : auto

mc admin info, 如下输出代表成功

img

img

跨集群桶的单向复制

创建桶

# mc mb 创建桶 
# -p 存在则不执行,不存在则创建
$ mc mb -p minio-test-1/hotfix-test
$ mc mb -p minio-test-2/hotfix-test

验证

img

启用桶版本控制

对上一步创建的桶开启版本控制

mc version enable minio-test-1/hotfix-test mc version eanble minio-test-2/hotfix-test

为目标集群创建复制目标

使用mc replicate add命令添加复制规则,语法

mc replicate add  ALIAS/BUCKET \    --remote-bucket  'https://USER:PASSWORD@HOSTNAME:PORT/BUCKET' \    --replicate  "delete,delete-marker,existing-objects"  

使用该命令向每个 MinIO 部署添加新的复制规则。

● 替换ALIAS为原始 MinIO 部署的别名。该名称_必须_与上一步中创建远程目标时指定的存储桶匹配。

● 替换BUCKET为要从源部署上复制的存储桶的名称。

● 替换--remote-bucket来指定远程 MinIO 部署和ALIAS/BUCKET复制到的存储桶。

● 必须对应于远程部署上具有必要复制权限USER:PASSWORD的用户。

● 必须HOSTNAME:PORT解析为远程部署上可访问的 MinIO 实例。必须BUCKET存在并且满足所有其他复制要求

● 该标志启用以下复制功能:--replicate "delete,delete-marker,existing-objects"

删除的复制

现有对象的复制

请参阅参考资料 更完整的文档。省略任何字段即可禁用该组件的复制。mc replicate add --replicate

此处将minio-test-1集群的hotfix-test桶同步到minio-test-2的同名桶,执行:

mc replicate add  minio-test-1/hotfix-test   --remote-bucket  'http://MINIOUSER:MINIOPASSWD@ksgame-gamecloud-hotfix-minio-test2-1.hb.txyun:9000/hotfix-test'  --replicate  "delete,delete-marker,existing-objects" 

返回

img

使用

img

打开minio-test-1/hotfix-test桶配置页,可以看到同步相关配置

img

img

验证

打开minio-test-1及minio-test-2的hotfix-test桶,可以看到文件已经从minio-test-1集群同步至minio-test-2集群 使用mc ls ALIAS/BUCKET 可以验证目标桶是否存在对象

img

此时在minio-test-1上传一个test1.zip的压缩包

img

可以看到test1.zip被同步给了minio-test-2

img

● 使用该命令修改现有的复制规则。mc replicate update **”mc.****复制.更新”)

○使用带有标志的命令来禁用现有的复制规则。mc replicate update **”mc.****复制.更新”)--state "disable" **”mc.replicate.update.–****状态”)

○使用该命令删除现有的复制规则。mc replicate rm **”mc.replicate.rm”)

server 版本更新

此处以systemctl托管minio部署为例 使用mc admin info ALIAS 命令查看当前版本信息

img

更新节点上minio二进制文件

下载最新稳定的 MinIO 二进制文件:

wget  https://dl.min.io/server/minio/release/linux-amd64/minio  
chmod +x minio

使用ansible命令分发至各服务器/usr/local/bin 目录下,并覆盖现有二进制文件:

$ansible -i hosts2 hosts2 -m copy -a  "src=./bin/minio dest=/usr/local/bin/minio" -b --become-user=root  ksgame-gamecloud-hotfix-minio-test2-4.hb.txyun  | CHANGED => {    "changed": true,    "checksum": "abd60fdc8f830680f6a78bb50f757a28f1849f2c",    "dest":  "/usr/local/bin/minio",    "gid": 0,    "group": "root",    "md5sum":  "405051193782db9dbeb84f5fbd9f383d",    "mode": "0755",    "owner": "root",    "size": 97423360,    "src":  "/home/sre/.ansible/tmp/ansible-tmp-1695112504.53-187677157269723/source",    "state": "file",    "uid": 0  } 
ksgame-gamecloud-hotfix-minio-test2-1.hb.txyun | CHANGED => { "changed": true, "checksum": "abd60fdc8f830680f6a78bb50f757a28f1849f2c", "dest": "/usr/local/bin/minio", "gid": 0, "group": "root", "md5sum": "405051193782db9dbeb84f5fbd9f383d", "mode": "0755", "owner": "root", "size": 97423360, "src": "/home/sre/.ansible/tmp/ansible-tmp-1695112504.51-77545080547971/source", "state": "file", "uid": 0 }
ksgame-gamecloud-hotfix-minio-test2-2.hb.txyun | CHANGED => { "changed": true, "checksum": "abd60fdc8f830680f6a78bb50f757a28f1849f2c", "dest": "/usr/local/bin/minio", "gid": 0, "group": "root", "md5sum": "405051193782db9dbeb84f5fbd9f383d", "mode": "0755", "owner": "root", "size": 97423360, "src": "/home/sre/.ansible/tmp/ansible-tmp-1695112504.52-33563145091871/source", "state": "file", "uid": 0 }
ksgame-gamecloud-hotfix-minio-test2-3.hb.txyun | CHANGED => { "changed": true, "checksum": "abd60fdc8f830680f6a78bb50f757a28f1849f2c", "dest": "/usr/local/bin/minio", "gid": 0, "group": "root", "md5sum": "405051193782db9dbeb84f5fbd9f383d", "mode": "0755", "owner": "root", "size": 97423360, "src": "/home/sre/.ansible/tmp/ansible-tmp-1695112504.52-117741071403493/source", "state": "file", "uid": 0 }

$ansible -i hosts2 hosts2 -m shell -a "ls -lh /usr/local/bin/minio" -b --become-user=root
ksgame-gamecloud-hotfix-minio-test2-1.hb.txyun | CHANGED | rc=0 >> -rwxr-xr-x 1 root root 93M Sep 19 16:35 /usr/local/bin/minio
ksgame-gamecloud-hotfix-minio-test2-4.hb.txyun | CHANGED | rc=0 >> -rwxr-xr-x 1 root root 93M Sep 19 16:35 /usr/local/bin/minio
ksgame-gamecloud-hotfix-minio-test2-2.hb.txyun | CHANGED | rc=0 >> -rwxr-xr-x 1 root root 93M Sep 19 16:35 /usr/local/bin/minio
ksgame-gamecloud-hotfix-minio-test2-3.hb.txyun | CHANGED | rc=0 >> -rwxr-xr-x 1 root root 93M Sep 19 16:35 /usr/local/bin/minio


重新启动部署

运行命令以同时重新启动部署中的所有 MinIO 服务器进程。mc admin service restart

重新启动过程通常会在几秒钟内完成,并且_不会中断_正在进行的操作。

image-20231124202325194

提示重启完成

验证升级

再次使用mc admin info ALIAS 命令查看当前版本信息

img

确认版本已被更新

欢迎关注我的其它发布渠道