组件接入

更新时间: 2024-01-09 11:16:39

组件,即一个Helm Chart包,包含了一个业务应用相对完整的业务能力。组件接入流程,是整体出包流程的第一步。通过该流程,产品方的组件将会上传本地组件到组件库中,为后续产品集成做准备。

1. 创建组件

当前,该步骤目前不需要手工创建。在后面第三步提交之后,系统会自动产生一个组件。

2. 生成Helm Chart

一个组件对应一个Helm Chart包。如何生成,请参见Helm官方文档

3. 提交组件

生成好的组件包,可以通过一个命令行工具上传到ADP平台。具体分成如下4步:

  1. 下载二进制命令行工具(选择合适的平台)。

    https://public-bins.oss-cn-shanghai.aliyuncs.com/zlink/release/latest/zlink_darwin_amd64
    # https://public-bins.oss-cn-shanghai.aliyuncs.com/zlink/release/latest/zlink_linux_amd64
    # https://public-bins.oss-cn-shanghai.aliyuncs.com/zlink/release/latest/zlink_windows_amd64.exe 
    mv zlink_darwin_amd64 zlink
  2. 准备好云账号的AccessKey ID和AccessKey Secret,并设置好本地环境变量。

    export ADP_ACCESSKEYID=LTAI4G8*****
    export ADP_ACCESSKEYSECRET=neh7rw*****
  3. 确认该云账号已开通对应的ACR个人版实例。

  4. 推送一个标准的Helm Chart。

    ./zlink push -c yourHelmChartDir

    该命令行使用说明:

    • yourHelmChartDir是一个标准的Helm Chart。

    • Zlink工具会自动识别Chart里的内容并填充一些必要字段。如果缺失某些字段,会交互式提示您输入,并把信息记录到元数据中。

    • Zlink工具会扫描Chart中的镜像写到元数据中,并提示您镜像是否全面,防止一些Operator镜像没有写到编排文件中。

    说明

    可以将该命令集成到CICD流程中,实现自动提交。

Zlink在上传Chart时会自动对Chart中的镜像进行安全扫描,如果发现安全漏洞会默认终止上传流程并给出安全漏洞提示,如果想暂时忽略漏洞或者延期修复的可以通过使用如下命令参数跳过镜像安全扫描阶段

./zlink push -c yourHelmChartDir --scan=false

Zlink在第一次上传Chart成功后,会在Chart文件目录里生成component.yaml的元数据描述文件,如果需要指定该业务组件支持的os架构类型,可以以标准YAML格式直接编辑component.yaml文件中的spec.platforms字段然后重新使用zlink push上传业务组件。组件支持多架构可以使用数组来指定,默认缺省os架构类型为linux/amd64,自定义系统架构示例如下

apiVersion: apps/v1
kind: Component
metadata:
  name: test
spec:
  # 忽略其他配置内容
  platforms:
  - architecture: amd64
    os: linux
  - architecture: arm64
    os: linux

标注多架构上传成功后在ADP上的示例如下

多架构

4. 镜像同步

SRC_REGISTRY_USER=your_registry_user_***** SRC_REGISTRY_PASSWORD=your_password_***** \ 
LOGLEVEL=debug ./zlink push -c alpine --sync

Helm Chart中的镜像如果没有被放到ACR上或者放到了公网机器无法访问的镜像仓库那云上是无法拉取到镜像的

Zlink帮你同步镜像

SRC_REGISTRY_USER SRC_REGISTRY_PASSWORD两个环境变量指定Helm Chart中源仓库的认证信息。 --sync 参数通知Zlink去同步镜像,默认不同步。

目的镜像仓库的账号密码不需要您提供,Zlink会根据AccessKey ID和AccessKey Secret去获取临时密钥,然后上传镜像到阿里云镜像仓库中。

5. 组件版本锁

为了防止某些情况下,组件内容被错误覆盖,平台提供了版本锁功能. 当锁处于开启状态时,如果组件的版本已经存在,则无法使用Zlink(>=1.4.3)进行push操作,将会得到下面的报错

image

点击组件详情,在版本切换Tab右侧开启版本锁即可

image

已经开启版本锁的组件,在名称右侧会有图标提示

image

6. 在线验证环境持续集成部署

对于在线上验证环境频繁调试的场景,每次上传新的组件版本后还要调整产品编排,重新部署产品,为了简化这一流程,提高该场景下的操作效率,我们在Zlink工具中提供了持续集成部署的能力,能够通过Zlink命令触发产品latest版本在线上验证环境的自动部署动作。

前置条件:

  • 当前产品存在latest版本

  • latest版本需已关联在线验证环境,且验证环境已经成功完成了初始化

命令格式:

zlink deploy -p ${产品名称}

#如果需要等待部署结果
zlink deploy -p ${产品名称} --wait

产品名称可在以下位置获取:

image

阿里云首页 云原生应用交付平台 相关技术圈