构建集群

更新时间:
复制 MD 格式

流水线执行需要依赖构建集群来完成代码编译和打包等任务。Flow 提供托管型默认构建集群以快速启动CI/CD流程,同时支持企业接入自有服务器资源,搭建私有化构建集群,灵活适配不同业务场景的定制化需求。

构建集群对比

公共构建集群

VPC托管构建集群

私有构建集群

构建机来源

云效提供

云效提供

用户自己准备主机

构建机覆盖地域

北京、杭州、香港

上海、北京、深圳、杭州

取决于用户主机

操作系统

Linux

Linux

Linux/Windows/macOS

网络连接方式

必须通过公网连接代码库、镜像仓库、制品库、云主机、k8s集群等

既能通过公网,也可以支持VPC私有网络连接,取决于用户的VPC设置

取决于用户主机的网络设置

弹性

支持弹性伸缩,当多个流水线任务并行时,每个任务都是独立的容器环境

支持弹性伸缩,当多个流水线任务并行时,每个任务都是独立的容器环境

不支持弹性,主机的资源是有限的,多任务并发时可能会出错

规格

可以选择规格,支持1C/2C/4C/8C/16C

可以选择规格,支持1C/2C/4C/8C/16C

不支持,取决于用户主机的规格

计费方式

按流水线核分统一收费,核分计算系数是1,例如1核构建了1分钟,结算的核分是1核分

按流水线核分统一收费,核分计算系数是0.8,例如1核构建了1分钟,结算的核分是0.8核分

不会计算流水线核分,但是基础版不支持私有构建机

云效默认构建集群

云效默认构建集群是云效预置的构建集群,该集群只能通过公网连接代码库、制品库、镜像仓库和其他云资源。

进入流水线 Flow首页,选择。在构建集群管理页面,可以看到 Flow 提供了云效北京构建集群云效杭州构建集群云效中国香港构建集群三个默认构建集群

  • 每个构建任务分配一个全新容器环境,任务结束后回收。

  • 云效默认构建集群支持 「默认环境」和「指定容器环境」。「默认环境」仅支持 Linux/amd64 架构,云效会根据任务类型默认使用不同的容器镜像,预装相应的SDK和环境,您也可以自行安装其他SDK或环境。「指定容器环境」支持 Linux/amd64、Linux/arm64 架构,云效提供官方常用镜像供选择使用、您也可以指定自己的镜像作为运行环境。使用自己的镜像无法正常构建时,请执行如下命令进行排查:

curl -s https://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/specified_container_checker/container_checker.sh | sh -s -- <镜像地址>
  • 构建环境规格默认 1C1G,Node相关任务 4C8G,其他任务 3C6G;此外,「指定容器环境」支持指定构建环境规格,支持按需选择 SMALL_1C2G(30GB磁盘空间)、MEDIUM_2C4G(30GB磁盘空间)、LARGE_4C8G(50GB磁盘空间)、XLARGE_8C16G(50GB磁盘空间)、XXLARGE_16C32G(50GB磁盘空间)规格,满足大项目构建环境场景。

如果依赖服务开启了白名单,请在白名单中添加以下Flow构建机的IP地址:

Flow 服务端公网 IP 地址

112.126.70.240,123.56.255.38,47.94.150.88

Flow 云效北京构建集群公网 IP 地址

47.93.89.246,47.94.150.17

Flow 云效北京构建集群内网 IP 地址

10.0.0.0/8,192.168.0.0/16

Flow 云效杭州构建集群公网 IP 地址

47.96.173.226,116.62.173.28

Flow 云效杭州构建集群内网 IP 地址

100.0.0.0/8

Flow 云效中国香港构建集群公网 IP 地址

47.57.70.87,47.242.65.197,47.90.29.115,47.57.136.136

云效托管VPC构建集群

云效托管 VPC 构建集群支持在企业专有网络(VPC)内部执行构建任务,可安全访问代码库、制品库、镜像仓库及其他私有云资源,实现从代码拉取到部署的全流程在 VPC 内完成,保障数据传输的安全性与隔离性。

说明
  • 托管VPC构建集群无预置资源,需用户手动创建后方可使用。

  • 当前支持华东2(上海)、华北2(北京)、华南1(深圳)地域。

安全优势

对于有更高网络安全要求的用户,托管 VPC 构建集群提供以下能力:

  • 构建任务运行时挂载用户 VPC 的弹性网卡(ENI)。

  • 使用用户 VPC 的网络栈,具备内网访问能力。

  • 可直接访问 VPC 内部资源,如 RDS、ECS、自建中间件等。

  • 避免敏感信息通过公网暴露,提升整体安全性。

基本原理

通过创建与用户 VPC 关联的构建集群,云效可在执行流水线构建任务时,挂载用户 VPC 的弹性网卡(ENI),使构建环境接入用户专有网络。任务运行过程中将使用 VPC 网络,具备访问 VPC 内部资源(如数据库、ECS 实例、自建服务等)的能力,满足高安全性和内网互通需求。

image

新建托管VPC构建集群

准备工作

在创建托管 VPC 构建集群前,请提前准备以下资源:

  • 已创建阿里云专有网络(VPC)和对应的交换机(vswitch)

  • 配置好安全组规则

  • 确保VPC具备公网访问能力,否则云效将无法拉取构建任务和调度指令

操作步骤

  1. 创建VPC服务连接

    1. 进入流水线Flow首页,单击

    2. 在服务连接管理页面,单击新建服务连接

    3. 在弹框中,选择服务连接类型专有网络(VPC),单击下一步

    4. 配置以下信息:

      • 自定义服务连接名

      • 配置服务授权/证书

      • 设置该服务连接的使用范围

    5. 配置完成后,单击创建

  2. 创建托管VPC构建集群:

    1. 创建服务连接后,在左侧导航栏单击构建集群管理。

    2. 切换至云效托管VPC构建集群页签,单击新建构建集群

    3. 填写基本信息:

      • 构建集群名称:自定义名称

      • 标签:用于分类和识别

      • 公开性:设置是否对项目成员公开

      • 成员:指定可使用该构建集群的成员或角色

    4. 单击下一步。进入VPC关联配置:

      • 选择地域:目前仅支持上海地域

      • 选择专有网络

      • 配置交换机安全组

      确保所选择的专有网络能够正常访问云效站点、代码库、制品库、镜像仓库及其他云资源。
  3. 配置完成后,单击保存

  4. 使用与验证

    创建完成后,即可在流水线的构建任务中选择该 托管 VPC 构建集群 作为执行环境。若在使用中出现申请环境卡住的问题,请检查:

    • VPC 是否具备公网访问能力

    • 安全组是否放行必要的出方向流量

    • 服务连接和RAM授权是否正确有效

使用构建集群

进入流水线的编辑页面,在任务设置中,修改「构建集群」的选项,选择刚创建的VPC构建集群,保存后运行流水线,云效会给任务自动分配一个全新的构建环境,并且连接关联的VPC,完成构建和部署。

说明

托管VPC构建集群使用的是云效的计算资源,因此构建核分需要纳入计费统计。

私有构建集群

如果对构建环境有特殊需求,云效 Flow 支持接入您自己的机器作为私有构建集群,支持阿里云ECS或其他自有主机。云效 Flow 使用容器化构建方式,流水线任务会随机调度到私有构建集群的一台机器上,并启动相应的容器环境执行任务。

机器接入前准备

请确保机器满足以下条件:

  • 机器可访问公网。

    用于云效 Runner 安装回调、流水线构建任务依赖下载及回调等。
  • 机器操作系统/架构满足以下要求:

    Linux

    • 支持以下 Linux 发行版本:CentOS 6+ 及以上、Ubuntu 16.04+ 及以上、 Alibaba Cloud Linux 2/3。

    • 架构:支持 Linux/amd64、Linux/arm64 架构。

    • 构建环境:支持默认VM环境默认环境(需要机器安装并启动了 Docker Daemon:https://docs.docker.com/engine/install/ 。验证 Docker 运行状态:在主机上执行命令sudo docker ps; echo $?,输出为0则 Docker 运行状态正常)

    • 推荐配置:48G及以上。

    Windows

    • 支持以下 Windows 版本:Windows 2012、Windows 2016、Windows 2019 、Windows 2022。

    • 架构:支持 Windows/amd64 架构。

    • 构建环境:支持默认VM环境

    macOS

    • 支持以下 macOS 版本:macOS Sonoma(14.0)、macOS Ventura(13.0) 、macOS Monterey(12.0)。

    • 架构:支持 macOS/amd64 、macOS/arm64 架构。

    • 构建环境:支持默认VM环境

新建私有构建集群

  1. 进入流水线 Flow首页。

  2. 依次单击,进入云效私有构建集群页签。

  3. 单击新建构建集群,填写构建集群名称标签,并配置公开性和有权限使用此构建集群的成员

  4. 完成后单击确定即可新建一个构建集群。

接入新节点

  1. 进入流水线 Flow首页。

  2. 依次单击,进入云效私有构建集群页签。

  3. 找到目标构建集群,单击进入详情页,单击接入新节点

接入 Linux 构建机

支持手动安装Runner阿里云ECS两种方式接入Linux构建机:

  • 手动安装Runner:直接复制Runner安装命令在待接入的机器上执行,Runner安装成功后,新机器将自动添加至当前集群,请刷新主机列表后查看。

    接入新节点对话框中选择操作系统类型(如 Linux),按提示先检查前提条件,再复制安装命令到主机执行。注意安装命令存在有效时限(约 15 分钟倒计时),超时需重新获取。

    执行安装命令后,终端输出安装全过程日志,最终显示 service startedservice status running 表示 Runner 安装成功并已启动。示例输出如下。

    [INFO] arch=x86_64
    [INFO] version=v0.0.6
    [INFO] pkg_endpoint=http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com
    [INFO] tenant=be-yxctbiii2ml4aydisrlfozvk
    [INFO] register_token=VoiMCHPXXrdfSsxmxmUu
    [INFO] wonder_endpoint=https://gray-devops-build.aliyuncs.com
    [INFO] scan_interval=5
    [INFO] concurrency=50
    [INFO] runner_group_uuid=HY8UhW1PmS2hpw27
    [INFO] install yunxiao-runner v0.0.6
    [INFO] download yunxiao-runner from http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/runner-v0.0.6-linux-amd64.tar.gz
    [INFO] wget -t 3 -O /tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/runner-v0.0.6-linux-amd64.tar.gz
    --2023-03-13 13:08:26-- http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/runner-v0.0.6-linux-amd64.tar.gz
    Resolving agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com (agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com)... 59.110.185.37
    Connecting to agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com (agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com)|59.110.185.37|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 13453535 (13M) [application/x-gzip]
    Saving to: '/tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz'
    
    /tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64. 100%[====>] 12.83M  --.-KB/s    in 0.1s
    
    2023-03-13 13:08:27 (91.7 MB/s) - '/tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz' saved [13453535/13453535]
    
    [INFO] unpack downloaded package
    [INFO] tar -xvzf /tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz -C /usr/local/share/yunxiao-runner
    ./
    ./v0.0.6/
    ./v0.0.6/runner
    [INFO] register tenant runner
    [INFO] /usr/local/share/yunxiao/v0.0.6/runner register --url https://gray-devops-build.aliyuncs.com --token VoiMCHPXXrdfSsxmxmUu --tenant=be-yxctbiii2ml4aydisrlfozvk --workspace /root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner --scanInterval 5 --concurrency 50 --configPath /root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner/config --runnerGroupUUID=HY8UhW1PmS2hpw27 --autoUpgrade=true
    INFO[2023-03-13T13:08:27+08:00] [Register] options: {"URL":"https://gray-devops-build.aliyuncs.com","Token":"VoiMCHPXXrdfSsxmxmUu","Tenant":"be-yxctbiii2ml4aydisrlfozvk","Workspace":"/root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner","ScanInterval":5,"Concurrency":50,"RunnerGroupUUID":"HY8UhW1PmS2hpw27","ConfigPath":"/root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner/config","InstanceId":"","InstanceName":"","AutoUpgrade":true,"UpgradeInterval":1200}
    INFO[2023-03-13T13:08:27+08:00] Runner config file not exists, generating...
    INFO[2023-03-13T13:08:27+08:00] bind to HY8UhW1PmS2hpw27
    INFO[2023-03-13T13:08:27+08:00] POST /api/v2/runner/register, time spent 0.19 s
    INFO[2023-03-13T13:08:27+08:00] register runner=a64e87f067fd496b9c946db45f2a144f
    INFO[2023-03-13T13:08:27+08:00] Runner register success.
    [INFO] install runner system service
    [INFO] /usr/local/share/yunxiao/v0.0.6/runner install --tenant=be-yxctbiii2ml4aydisrlfozvk
    INFO[2023-03-13T13:08:27+08:00] service type linux-systemd
    INFO[2023-03-13T13:08:27+08:00] Aliyun yunxiao runner-v0.0.6-be-yxctbiii2ml4aydisrlfozvk service,linux-systemd installed
    [INFO] start runner service
    [INFO] /usr/local/share/yunxiao/v0.0.6/runner start --tenant=be-yxctbiii2ml4aydisrlfozvk
    INFO[2023-03-13T13:08:27+08:00] service type linux-systemd
    INFO[2023-03-13T13:08:00] Aliyun yunxiao runner-v0.0.6-be-yxctbiii2ml4aydisrlfozvk service started
    INFO[2023-03-13T13:08:00] Aliyun yunxiao runner-v0.0.6-be-yxctbiii2ml4aydisrlfozvk service status running
    [root@iZ2zecoxyny4bhymwfvdjmZ ~]#
  • 阿里云ECS:如果待接入机器为阿里云ECS,你还可以通过选择阿里云ECS接入方式直接添加,云效Flow会自动帮你安装Runner。

    • 选择服务连接。

    • 选择待添加机器所在地域。

    • 可添加主机列表勾选待添加机器。

    • 单击确定即可自动添加机器进入构建集群。

接入 Windows 构建机

支持手动安装Runner阿里云ECS两种方式接入Windows构建机:

  • 手动安装Runner:Windows机器上,打开PowerShellAdministrator用户执行Runner安装命令。Runner安装成功后,新机器将自动添加至当前集群,请刷新主机列表后查看。

  • 阿里云ECS:如果待接入机器为阿里云ECS,你还可以通过选择阿里云ECS接入方式直接添加,云效Flow会自动帮你安装Runner。

    • 选择服务连接

    • 选择待添加机器所在地域

    • 可添加主机列表勾选待添加机器。

    • 单击确定即可自动添加机器进入构建集群。

接入 macOS 构建机

支持手动安装Runner方式接入macOS构建机:在macOS机器上,直接复制Runner安装命令在待接入的机器上执行,Runner安装成功后,新机器将自动添加至当前集群,请刷新主机列表后查看。

执行安装命令前,需检查待接入节点配置是否满足前提条件。安装命令存在有效期限制,过期后需重新获取。

构建集群管理

进入,找到目标构建集群,单击进入详情页。

  • 查看构建集群主机列表,展示实例ID、IP、主机名、操作系统/架构、占用情况、Runner状态、安装进度等信息。

  • 重装Runner:当机器Runner状态异常时,可重装Runner。

  • 移除节点:仅将节点从当前构建集群解除绑定,不会删除真实机器或卸载Runner。

  • 设置集群:修改构建集群名称、标签等。

  • 删除集群:仅解除节点绑定并删除集群数据,不会删除真实机器或卸载Runner。

使用私有构建集群

进入目标流水线编辑页面,选择企业创建好的私有构建集群。流水线运行时,任务会随机调度到一台构建机器上并启动相应的容器环境执行。私有构建集群的构建时长和并发任务数不计入企业构建配额。

说明

使用私有构建集群的构建环境,任务执行期间,流水线任务构建环境分配给用户使用,构建环境使用权限归属用户,任务执行脚本由用户自定义。

更多参考