Skip to content

替换衡石minio

在使用HENGSHI SENSE服务过程中,可以根据业务需要替换HENGSHI自带的minio。本文讲述使用Aws S3和Aliyun OSS替代衡石minio的过程。

准备工作

在进行配置前,请在aws s3或aliyun oss完成如下准备工作。

  1. 创建access_key和secret_access_key

    aws操作参考: 管理IAM用户的访问密钥

    aliyun操作参考: 访问控制/创建AccessKey

  2. access_key和secret_access_key 配置权限可访问衡石使用的Bucket

AWS策略参考

json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListAllAndLocation",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws-cn:s3:::*"
        },
        {
            "Sid": "FullAccessToSpecificBucket",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws-cn:s3:::[Your-Bucket-Name]",
                "arn:aws-cn:s3:::[Your-Bucket-Name]/*"
            ]
        }
    ]
}

阿里云策略参考

json
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oss:*",
      "Resource": [
        "acs:oss:oss-*:*:[Your-Bucket-Name]",
        "acs:oss:oss-*:*:[Your-Bucket-Name]/*"
      ]
    }
  ]
}

详细配置请参考官方文档

Amazon S3 基于身份的策略示例

Aliyun OSS 基于身份的策略示例

  1. endpoint(访问域名)

    aws访问域名参考: Endpoints and ARNs(中国)

    aws访问域名参考: Endpoints and ARNs(全球)

    aliyun访问域名参考: OSS访问域名和数据中心

修改MINIO相关配置

单机部署: 在文件${HS_HOME}/conf/hengshi-sense-env.sh 中修改如下配置项 (以下7个选项都必须要配置)

shell
export MINIO_ROOT_USER=[access_key]
export MINIO_ROOT_PASSWORD=[secret_access_key]
export MINIO_SERVER_HOST=[endpoint]
export MINIO_SERVER_PORT=[endpoint_port] # endpoint是http协议填写80 https填写443
export OBJECT_REGION_CODE=[region_code] # region 必须要配置
export OBJECT_ROOT_BUCKET_NAME=[bucket_name]

export HS_MINIO_IF_EXTERNAL=true # 声明使用外部对象存储替代衡石minio

Docker部署: 在docker-compose.yml同级目录目下的文件.env 中修改如下配置项 (以下7个选项都必须要配置)

shell
MINIO_ROOT_USER=[access_key]
MINIO_ROOT_PASSWORD=[secret_access_key]
MINIO_SERVER_HOST=[endpoint]
MINIO_SERVER_PORT=[endpoint_port] # endpoint是http协议填写80 https填写443
OBJECT_REGION_CODE=[region_code] # region 必须要配置
OBJECT_ROOT_BUCKET_NAME=[bucket_name]

HS_MINIO_IF_EXTERNAL=true # 声明使用外部对象存储替代衡石minio

集群部署: 在${HS_HOME}/ansible/vars.yml 中修改如下配置项 (以下7个选项都必须要配置)

shell
#------- hengshi_config will overwrite the 'deperacated' vars above ----------
hengshi_config:
- export HS_HENGSHI_PORT=8081
- export HS_PG_PORT=54320
....
- export MINIO_ROOT_USER=[access_key]
- export MINIO_ROOT_PASSWORD=[secret_access_key]
- export MINIO_SERVER_HOST=[endpoint]
- export MINIO_SERVER_PORT=[endpoint_port] # endpoint是http协议填写80 https填写443
- export OBJECT_REGION_CODE=[region_code]
- export OBJECT_ROOT_BUCKET_NAME=[bucket_name]
- export HS_MINIO_IF_EXTERNAL=true # 声明使用外部对象存储替代衡石minio

K8s部署:在部署hengshi的命名空间下hengshi-sense的configmap中 修改如下配置项 (以下7个选项都必须要配置)

shell
data:
  ENABLE_REFERENCE_DATASET: 'true'
  EVEREST_HISTORY_LOG_RESERVED_DAYS: '1'
  ....
  MINIO_ROOT_USER: "[access_key]"
  MINIO_ROOT_PASSWORD: "[secret_access_key]"
  MINIO_SERVER_HOST: "[endpoint]"
  MINIO_SERVER_PORT: "[endpoint_port]" # endpoint是http协议填写80 https填写443
  OBJECT_REGION_CODE: "[region_code]" # region 必须要配置
  OBJECT_ROOT_BUCKET_NAME: "[bucket_name]"
  HS_MINIO_IF_EXTERNAL: true # 声明使用外部对象存储替代衡石minio

注意: 修改参数后需要重新启动HENGSHI SENSE才能生效。

衡石分析平台使用手册