使用GA实现PAI-DSW跨域加速拉取海外模型或容器镜像

更新时间:
复制 MD 格式

当您使用海外容器镜像(如:docker.io镜像)创建交互式建模 PAI-DSW实例,或者在PAI-DSW实例中拉取海外模型时(如:huggingface.co模型),可能由于网络跨域的原因无法正常访问,为解决此问题,您可以创建全球加速GA(Global Accelerator)实例,使用其提供的覆盖全球的网络加速服务,使PAI-DSW具备跨域获取模型和镜像的网络访问能力。

重要提醒

请规范网络访问行为,如果访问的目标网站存在违法信息,将无法正常访问。

操作步骤

以下以加速huggingfacedocker为例介绍操作步骤,您可按需配置。需要加速的域名如下:

加速的资源

具体加速的域名

huggingface

huggingface.cocdn-lfs.hf.co(huggingfacecdn分发域名)

docker

docker.ioregistry-1.docker.ioauth.docker.io

步骤一:创建标准型全球加速实例

以下操作仅展示关键配置,全部参数说明参见创建和管理标准型全球加速实例

  1. 创建标准型实例。开通全球加速服务,并登录控制台,单击创建标准型按量付费实例,配置实例名称等基础信息,单击下一步

  2. 配置加速区域。加速区域选择DSW实例所在地域,带宽可根据业务需求设置,然后单击下一步

    分配带宽表格中,IP地址协议默认为IPv4公网质量类型默认为BGP(多线)。如果加速区域包含中国内地地域,需确保域名已完成 ICP 备案。

  3. 配置监听。填写监听名称,协议选择TCP端口配置为80,443。也可根据业务实际情况配置。

  4. 配置终端节点。

    • 地域:选择海外地域,建议选择美国(硅谷)

    • 终端节点配置:配置需要加速访问的域名。此处先配置一个,如需配置多个域名,后续可通过添加虚拟终端节点组配置。

      • 后端服务类型:选择自定义域名

      • 后端服务:填写需加速的域名,如:huggingface.co

      • 权重:默认即可。

  5. 配置审核。确认配置信息,然后提交

  1. 为加速 IP 配置访问控制

    全球加速为加速区域分配的加速 IP 是公网可达的。当您使用 TCP 四层监听加速 github.com 等公共域名时,该加速 IP 一旦对外暴露,可能被公网扫描或非授权访问转发至海外源站。建议为监听开启访问控制并配置白名单,仅放行 PAI-DSW 实例的公网出口 IP(例如 DSW 实例所在 VPC 的 NAT 网关 EIP)。

    1. 创建访问控制策略组:登录全球加速管理控制台,在左侧导航栏,选择标准型实例 > 访问控制,在访问控制页面,单击创建访问控制策略组,选择与加速 IP 一致的IP版本(IPv4 或 IPv6)。

    2. 添加策略组条目:单击目标访问控制策略组的操作列的管理访问控制策略组,单击添加条目,在添加策略组条目对话框,输入 PAI-DSW 实例的公网出口 IP。单击批量添加条目支持批量添加。

    3. 为监听开启白名单:在实例列表页面,单击目标全球加速实例操作列的配置监听。在监听页签下,单击待开启访问控制的监听ID,在监听详情页签下的访问控制区域,打开访问控制开关,访问控制方式选择白名单,关联已创建的访问控制策略组,将转发来自所选访问控制策略组中设置的IP地址或地址段的请求。

      白名单模式下,仅转发来自白名单IP的请求。请先在访问控制策略组中添加客户端出口IP,再开启白名单,并确认该出口IP稳定,避免误拦截正常业务。

步骤二:添加虚拟终端节点组并配置转发策略

  1. 在左侧菜单栏单击标准型实例 > 实例列表,然后单击刚刚创建的实例名称,单击监听,进入监听配置页面。

  2. 通过虚拟终端节点组添加其他需加速域名。单击已有的监听器名称进入监听配置页面,单击终端节点组。此时已存在步骤一中配置的域名为huggingface.co的默认终端节点组。

    其他每个需加速域名都单独添加虚拟终端节点组。以本文为例,还需添加的域名有cdn-lfs.hf.codocker.ioregistry-1.docker.ioauth.docker.io。单击添加虚拟终端节点组

    • 后端服务类型:选择自定义域名。

    • 后端服务:填写需加速的域名。

    • 权重:默认即可。

    配置示例:节点组名称填写cdn-lfs_hf_co地域选择美国(硅谷)保持客户端源IP选择不保持,完成后单击创建

    以相同方式添加其他需要加速的域名,创建完成后会有4个虚拟终端节点组。

  3. 配置监听器转发策略。在监听器配置页面单击转发策略,对5个需加速域名分别插入新策略

    • 域名匹配规则:选择精确匹配及通配符

    • 转发域名:填写需要加速的域名。

    • 转发至:选择域名配置对应的终端节点组类型和节点组。

    配置完成后会有5条转发策略:

    • 域名 auth.docker.io 转发至虚拟终端节点组 auth_docker_io

    • 域名 registry-1.docker.io 转发至虚拟终端节点组 registry-1_docker_io

    • 域名 docker.io 转发至虚拟终端节点组 docker_io

    • 域名 cdn-lfs.hf.co 转发至虚拟终端节点组 cdn-lfs_hf_co

    • 域名 huggingface.co 转发至默认终端节点组

步骤三:DSW使用全球加速

加速方式

方式一:修改DSW实例Hosts加速访问

方式二:通过PrivateZone加速访问

适用场景

在已创建的DSW实例中获取海外模型或其他资源。

在创建DSW实例时使用海外镜像创建,以及在DSW中获取海外模型或其他资源。

DSW是否需要配置专有网络、安全组、交换机

可选

必需

DSW是否需要配置专有网关、及SNAT

可选,当下载大型文件时网络速度可能不足,您可以通过专有网关提升公网访问速率

方式一:修改DSW实例Hosts加速访问

  1. 获取加速IP。在全球加速控制台,单击已创建实例名称 > 加速区域,任选一个加速IP

  2. 修改DSW实例中的hosts文件。打开DSW实例,在Terminal中执行vim /etc/hosts,在文件中添加加速IP和需要加速的域名,然后保存并退出。示例如下:

    120.27.23xxx0 huggingface.co
    120.27.238.xxx cdn-lfs.hf.co
    

方式二:通过PrivateZone加速访问

  1. 获取全球加速实例CNAME加速域名。在全球加速控制台,单击已创建实例名称,在实例信息页签中获取CNAME

  2. 获取DSW实例专有网络VPC信息。对于已存在的实例,单击实例名称,在实例配置信息页即可查看专有网络信息。

  3. PrivateZone中添加域名和解析记录。登录云解析DNS控制台,在PrivateZone用户域名页面单击添加域名

    huggingface.cocdn-lfs.hf.co为例,首先配置内置权威域名co,在生效于阿里云VPC内网中选择2中获取的DSW使用的VPC,单击确定

    如果还未创建DSW实例,则在后续创建实例时选择与此处PrivateZone相同的专有网络。

    然后,单击内置权威域名co名称进入配置页,单击添加记录。由于huggingface.cocdn-lfs.hf.co使用的是相同的权威域名co,因此依次将其添加到解析记录中

    • 记录类型:选择CNAME

    • 主机记录:填写域名除去权威域名的部分,即huggingfacecdn-lfs.hf

    • 记录值:填写1中获取的全球加速CNAME。

    按照相同的方法配置docker.ioregistry-1.docker.ioauth.docker.io,最后会有两条内置权威域名

相关文档