构建集群

更新时间:
复制 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核分

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

迁移场景说明

中心站迁移至地域版(Region 站)期间,请根据构建集群需求选择配置策略:

  • 继续使用中心站:如需使用默认公共构建集群(北京、杭州、香港),保持流水线配置在中心站。中心站提供预置公共构建集群,无需额外配置 VPC。

  • 已迁移至地域版:地域版不提供公共构建集群,需创建 VPC 托管构建集群或接入私有构建集群。VPC 构建集群要求 VPC 具备公网访问能力,否则云效将无法拉取构建任务和调度指令。当前 VPC 集群支持北京、杭州、上海、深圳地域。

  • 私有构建集群:接入可访问公网的私有 Linux 机器作为构建节点,构建时长和并发数不计入组织构建配额,需高级版。

云效默认构建集群

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

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

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

  • 云效默认构建集群支持 「默认环境」和「指定容器环境」。「默认环境」仅支持 Linux/amd64 架构,云效会根据任务类型默认使用不同的容器镜像,预装相应的SDK和环境,您也可以自行安装其他SDK或环境。「指定容器环境」支持 Linux/amd64、Linux/arm64 架构,云效提供官方常用镜像供选择使用、您也可以指定自己的镜像作为运行环境。此处配置的是流水线构建运行环境镜像,非业务应用镜像。业务应用镜像拉取地址请在 Kubernetes 部署步骤的 YAML 中通过变量配置,详见 Kubernetes Kubectl 发布。使用自己的镜像无法正常构建时,请执行如下命令进行排查:

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磁盘空间)规格,满足大项目构建环境场景。

若构建任务因内存不足报错,需增加内存、调整资源配置或修改构建规格,可按以下路径调整:进入流水线编辑页面,单击具体构建任务(如 Java 构建、Node.js 构建等),在任务高级设置面板中找到构建环境规格,按需选择更高档位(如 MEDIUM_2C4GLARGE_4C8G 等)以提升运行环境的内存和 CPU 配置。

如果依赖服务开启了白名单,请在白名单中添加以下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

如果您使用 Flow 构建集群向容器镜像服务 ACR 企业版实例推送镜像,需要在 ACR 企业版实例的公网白名单中添加以上 IP 地址,添加时请注意:

  • 使用 /32 后缀:ACR 企业版公网白名单要求填写 CIDR 格式的地址段(如 192.168.1.1/32192.168.1.0/24),单个 IP 地址需在末尾添加 /32 后缀。例如,112.126.70.240 需填写为 112.126.70.240/32

  • 同时添加两类 IP:ACR 企业版公网白名单为白名单放行机制,未添加的 IP 无法访问。使用 Flow 构建集群向 ACR 企业版推送镜像时,需要同时添加以下两类 IP 到白名单,缺少任意一类都会导致 docker logindocker push 失败:

    • Flow 服务端公网 IP 地址(用于调用 ACR 企业版 API)。

    • 对应地域构建集群公网 IP 地址(用于执行 docker push)。

    例如,使用云效北京构建集群向 ACR 企业版推送镜像时,需同时添加 Flow 服务端公网 IP(112.126.70.240/32123.56.255.38/3247.94.150.88/32)和北京构建集群公网 IP(47.93.89.246/3247.94.150.17/32)到白名单。如果不确定构建任务使用的是哪个地域的构建集群,建议将 Flow 服务端公网 IP 和所有地域构建集群的公网 IP 全部添加到白名单。

  • 操作路径:登录容器镜像服务 ACR 企业版控制台,选择目标实例后,进入访问控制 > 公网页签,单击添加公网白名单,按 /32 格式填写上述 IP 地址。

国内镜像仓库(如华北2(北京)华东1(杭州)等地域)建议使用云效北京构建集群云效杭州构建集群;海外镜像仓库(如中国香港地域)建议使用云效中国香港构建集群。构建集群与镜像仓库地域不匹配时(例如使用云效中国香港构建集群推送镜像至国内镜像仓库),跨境网络延迟会导致镜像推送变慢或推送失败。您可以在流水线构建任务的构建集群下拉框中,选择与镜像仓库地域匹配的构建集群。

海外地域构建集群依赖拉取超时

使用海外地域构建集群(如云效中国香港构建集群)拉取国内共用仓库或制品仓库的依赖时,可能因公网延迟较大导致依赖拉取超时,构建失败。

在流水线编辑页面,单击构建任务进入任务设置,在构建集群下拉框中将集群从云效中国香港构建集群切换为云效北京构建集群云效杭州构建集群,保存后重新触发流水线构建即可正常拉取依赖。

如果代码库、制品库等资源主要在国内地域,建议优先使用云效北京构建集群云效杭州构建集群,以获得更低的网络延迟和更稳定的构建体验。

云效托管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具备公网访问能力(需绑定公网 NAT 网关,配置 EIP 和 SNAT 条目),否则云效将无法拉取构建任务和调度指令

操作步骤

  1. 创建VPC服务连接

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

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

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

    4. 配置以下信息:

      • 自定义服务连接名

      • 配置服务授权/证书

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

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

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

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

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

    3. 填写基本信息:

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

      • 标签:用于分类和识别

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

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

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

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

      • 选择专有网络

      • 配置交换机安全组

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

  4. 使用与验证

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

    • VPC 是否具备公网访问能力:若创建集群后无法添加节点,或任务长时间停留在「申请环境」状态,通常是因为关联的 VPC 不具备公网出方向访问能力,导致云效无法向该 VPC 下发调度指令。请参考本文「准备工作」章节中的公网访问能力配置说明,为该 VPC 绑定公网 NAT 网关并配置 EIP 和 SNAT 条目,确保 VPC 具备公网出方向访问能力后重试。

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

    • 服务连接和RAM授权是否正确有效。服务连接的授权账号决定可见的 VPC 范围,使用哪个账号授权,就只能看到该账号下的 VPC 和企业实例。VPC 列表为空或找不到目标 VPC 时,检查服务连接的授权账号是否为拥有目标 VPC 的账号。

使用构建集群

进入流水线的编辑页面,在任务设置中,修改「构建集群」的选项,选择刚创建的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环境

资源隔离风险提示:将已部署业务服务(如 MySQL、容器应用等)的 ECS 加入私有构建集群,技术上不会影响原有服务的正常运行,但云效官方不建议构建机与其他生产服务混用。构建任务执行期间可能瞬时占用大量 CPU、内存、I/O 资源,导致同一台机器上运行的生产服务出现性能抖动甚至短暂不可用。请在接入前自行评估资源负载隔离风险,建议为构建任务单独准备机器,避免与生产服务共用。

新建私有构建集群

  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。

使用私有构建集群

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

说明

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

查看哪些流水线使用了私有构建集群

私有构建集群控制台不支持直接反向查询某个私有构建集群被哪些流水线使用,也未提供按集群 ID 批量查询流水线的 API。如需确认某个私有构建集群的使用情况,可手动排查:进入流水线列表,逐个打开目标流水线的编辑模式,检查 YAML 中的 runsOn 字段是否匹配目标集群 ID。runsOn 字段格式为 runsOn: group: private/{集群ID},集群 ID 可在全局设置 > 构建集群管理中查看。未指定 runsOn 的流水线默认使用公共构建集群。

常见问题

公共构建集群 Docker 构建报 CoreCLR 创建失败或内存不足怎么办?

问题现象:使用公共构建集群执行 Docker build 时,报 CoreCLR 创建失败,或提示内存不足(OOM)相关错误。

问题原因:云效公共构建集群的开启 Docker Daemon功能仅为开关,不支持单独设置 Docker Daemon 的内存限制参数;Docker 构建过程中可使用的内存由所选构建环境规格的整体资源决定。

解决方案

  1. 优先切换至更高档位的构建环境规格:进入流水线编辑页面,单击具体构建任务,在任务高级设置面板中将构建环境规格调整为更高档位(如 LARGE_4C8GXLARGE_8C16GXXLARGE_16C32G)。

  2. 若已选择最高规格仍无法满足需求,建议接入私有构建集群,使用自有 Linux 机器执行构建,以便自定义机器资源和 Docker 可用内存配置。

流水线申请运行环境报错 canceled 或指定镜像拉取失败如何排查?

问题现象:流水线申请运行环境失败,控制台可能显示 canceled 状态;实际常见原因是「指定容器环境」中配置的镜像拉取失败。

问题原因指定容器环境中填写的镜像地址无法拉取,例如镜像不存在、Tag 拼写错误或网络原因,导致运行环境申请失败。

解决方案

  1. 在本地 Docker 环境执行 docker pull <镜像地址:Tag>,验证镜像是否可正常拉取。

  2. 若拉取失败,确认镜像 Tag 是否存在或拼写正确。

  3. 尝试更换为已知可用的镜像版本(例如将 dotnetcore:10.0 改为 dotnetcore:9.0)重新触发流水线。

  4. 若更换镜像版本后仍失败,检查流水线 YAML 配置及网络白名单设置。

镜像仓库域名以 build-steps-public-registry 为前缀并按地域区分,如涉及跨地域拉取失败,可结合本文「海外地域构建集群依赖拉取超时」排查网络因素。

连接 GitHub、GitLab 等海外代码库失败或超时,如何选择构建集群?

问题现象:流水线连接 GitHub、GitLab 等海外代码库时,出现连接失败或长时间超时。

问题原因:由于跨境网络波动,使用云效北京构建集群云效杭州构建集群等内地构建集群直连 GitHub 等海外代码源时可能出现拉取失败或超时。注意与本文「海外地域构建集群依赖拉取超时」场景方向相反:该小节针对海外集群拉取国内依赖超时,本条针对内地集群连接海外代码库超时。

解决方案:将流水线的构建集群切换为云效中国香港构建集群,利用香港地域的网络优势提高连接成功率和稳定性。操作路径:进入流水线编辑页面,单击构建任务进入任务设置,在构建集群下拉框中选择云效中国香港构建集群,保存后重新触发流水线。

托管 VPC 构建集群是否支持中国香港地域?中国香港的 ACK/ACR 如何使用内网访问?

问题现象:用户在中国香港部署了 ACK 或 ACR,希望通过云效托管VPC构建集群以内网方式访问。

问题原因:当前云效托管VPC构建集群支持的地域为 [TODO: 需确认数值 - 托管VPC构建集群实际支持地域列表],暂不支持中国香港地域。(本文档「构建集群对比」对比表、「云效托管VPC构建集群」概述段落与「新建托管VPC构建集群」操作步骤三处对地域的描述目前不完全一致,最终支持范围以云效控制台创建托管VPC构建集群时地域下拉框的实际可选项为准。)

解决方案

  • 若可通过公网访问:直接使用公网构建集群(云效默认构建集群)访问中国香港的 ACK 或 ACR,无需内网直连。

  • 若必须使用内网访问,可选择以下方式之一:

    1. 打通新加坡(托管VPC构建集群支持地域)与中国香港之间的 VPC 对等连接或云企业网 CEN,实现内网互通后使用托管VPC构建集群访问。

    2. 使用私有构建集群,将自有机器部署在中国香港的 VPC 内,通过内网直接访问该 VPC 内的 ACK 或 ACR。

私有构建集群是否受地域限制?非支持地域如何使用?

问题现象:机器所在地域不在云效托管VPC构建集群的支持范围内,不确定能否使用私有构建集群

问题原因:私有构建集群通过公网与云效通信,用于 Runner 注册、任务下发、依赖下载及回调等,不受托管VPC构建集群的地域限制。

解决方案:只要机器能正常访问公网,即可在任意地域(含海外及国内所有地域)接入私有构建集群,无需额外的 VPC 对接配置。接入前请参考本文「机器接入前准备」章节,确认机器满足公网访问能力及操作系统/架构要求。

更多参考