MinIO适配华为云&OBS心得

举报
yd_235395946 发表于 2024/11/15 18:30:02 2024/11/15
【摘要】 本任务的主要目的是让MinIO支持华为云 OBS服务,拓展华为云OBS服务的影响力,方便MinIO的用户使用华为云服务时能够顺利对接OBS服务。同时,该任务也可以为一线的项目迁移时候的改造适配打下基础,方便用户在云上做方案选型的时候,可以选择华为云OBS服务,缩短开发周期,保证项目迁移进度,降低开发上云成本。

前一阵,在网上闲逛时,偶然发现华为云发布一些列的对接华为云的任务(https://developer.huaweicloud.com/programs/opensource/contributing/)。在任务中,我找了一个比较简单的任务入手。那就是MinIO适配OBS开源开发任务

1       任务流程

1.1       任务的目的

本任务的主要目的是让MinIO支持华为云 OBS服务,拓展华为云OBS服务的影响力,方便MinIO的用户使用华为云服务时能够顺利对接OBS服务。同时,该任务也可以为一线的项目迁移时候的改造适配打下基础,方便用户在云上做方案选型的时候,可以选择华为云OBS服务,缩短开发周期,保证项目迁移进度,降低开发上云成本

1.2       报名流程

  1. 在喜欢的任务上进行报名,填写自己的申请,留下自己的邮箱,之后华为官方会发送任务计划书到邮箱内。
  2. 开通开发者空间,进行实名认证,加入沃土云创计划个人方向。
  3. 进入激励管理》开源共创,进入任务,此时在需求分析节点,提交之前发送到邮箱内的任务计划书。
  4. 提交任务计划书之后,审批后进入开发阶段,阅读任务计划书,了解需要开发的内容。
  5. 此时需要申领服务器,主要是Gaussdb,华为云CCE(类似k8s),CodeArts(ci/cd)。
  6. 开发完整之后,在CCE上进行验证,在CodeArts上进行部署。
  7. 测试完成后,可以申请任务验收。将自己的代码分支博文等信息打包成zip文件进行上传。
  8. 后面就是等发钱啦。

1.3       开发代码

图片2.png


1.4       上云第一步-购买OBS

  • 在华为云官网,点击产品,选择对象存储服务,点击购买

图片1.png


  • 选择以下选项,进行提交
    区域:广州(选离自己最近的城市)
    资源包类型:标准存储多AZ
    规格:按照自己需要的大小(我选的是40G

1.5       上云第二步-购买CCE

在华为云官网,点击产品,输入cce,选择cce,点击购买。

图片3.png


  • 执行以下步骤,进行提交

页面顶部控制栏,选择地区,也就是上云第一步购买Gaussdb的地区
集群类型:cce turbo
计费模式:按需付费
集群名称:(随便写)
集群版本:v1.29
集群规模:50
集群 master 实例数:单实例
虚拟私有云:默认(购买Gaussdb使用的虚拟私有云,必须保持一致,否则访问数据库不通)
容器子网(Pod CIDR):默认(购买Gaussdb使用的虚拟子网,必须保持一致,否则访问数据库不通)
其他默认,点击提交。进入插件选择页面。
保持默认插件,点击插件配置,点击确认配置,点击提交。

1.6       新建节点

在左侧找到节点池,新建节点。注意这里使用的cpu,内存等都需要更大一点,否则cce的集群会启动失败

1.7       配置CodeArts

根据华为云提供的文档(https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/blob/main/zh_CN/docs/cicd-pipeline.md),配置CodeArts

注意点:

在选择通用git时,没有扩展点,需要新建扩展点(添加代码的git路径和分支)

demo项目没有Dockerfile,需要自己编写Dockerfile,我的如下,基本可以复用

FROM golang:alpine AS builder

LABEL stage=gobuilder

ENV CGO_ENABLED 0

ENV GOPROXY https://goproxy.cn,direct

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk update --no-cache && apk add --no-cache tzdata

WORKDIR /build

ADD go.mod .

ADD go.sum .

RUN go mod download

COPY . .

RUN go build -ldflags="-s -w" -o /app/object object/object.go

FROM scratch

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai

ENV TZ Asia/Shanghai

WORKDIR /app

COPY --from=builder /app/object /app/object

CMD ["./object"]

2       验收材料

1. 开源软件fork地址:不涉及

2. 开源软件修改记录(可以有多个修改记录):

不涉及

3. 推送上游社区PR(包括代码、文档、可以有多个):

不涉及

4. 验证DEMO地址:https://gitcode.com/moseszane168/opensource-demo-minio-for-obs-241113/overview

5. 验证DEMO修改记录(可以有多个修改记录,只包含和本任务验证强相关的提交记录,比如添加依赖、增加配置文件、演示开源软件功能使用的代码等):

博客地址:https://bbs.huaweicloud.com/blogs/439612

 

验收细则

评分说明

是否为验收必选项

结果(通过/不通过)

开发者举证

功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发

完成OBS适配功能验证。

 

参考资源清单和测试结果。

代码质量:适配华为三大根技术生态的代码质量经过工具检测达标

不涉及

 

 

提供相关文档,比如部署文档、使用文档、配置文档等

不涉及

 

 

合入到开源项目主仓:代码推送上游社区

不涉及

 

 

Deomo设计&开发:完成功能演示Demo的开发

举证提供DEMO仓库地址和DEMO开发提交记录。

 

参考(1)(2

Demo部署&验证:完成功能演示DEMO基于华为云鲲鹏环境的部署和功能验证

提供DEMO部署验证结果的关键截图进行举证。提供DEMO运行环境和资源的规格清单。

 

参考资源清单和测试结果。

发布博客:发布博客介绍适配心得。

提供博客的地址。

 

参考(3

制作单机版无高危开源镜像。

上架云商店。

 

 

单机版镜像上架时支持模板部署。

 

 

 

制作集群版无高危开源镜像

上架云商店。

 

 

集群版镜像上架时支持模板部署

 

 

3       资源清单

3.1 CCE

产品名称

集群类型

集群版本

集群规模

云容器引擎CCE

Turbo集群

V1.29

50

3.2 ECS

产品名称

CPU架构

实例类型

公共镜像

镜像版本

弹性云服务器

鲲鹏计算

鲲鹏通用计算增强型

Huawei Cloud EulerOS

Huawei Cloud EulerOS 2.0标准版 64ARM(10GiB)

3.3 OBS

产品名称

资源包类型

桶类别

对象存储服务OBS

存储包

标准存储多AZ

4 测试结果

4.1 验证思路

使用https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/issues/26

中方案一:通过 S3 兼容 API 验证方案是指利用 OBS 提供的 S3 兼容 API 进行交互

测试代码直接和MinIO进行交互,数据最终存入OBS。

4.2 创建对象接口

图片4.png

4.3 获取对象接口

图片5.png

4.4 复制对象接口

图片6.png


4.5 删除对象接口

图片7.png

4.6 获取桶内所有对象接口

图片8.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。