本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
如需在ACK集群中跨域拉取海外源容器镜像,您可以创建全球加速GA(Global Accelerator)实例,使用其提供的覆盖全球的网络加速服务。
前提条件
已创建ACK集群Pro版,且版本为1.24及以上。关于如何创建集群,请参见创建ACK托管集群;如需升级集群,请参见手动升级集群。
已通过kubectl工具连接集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
注意事项
请规范您的网络访问行为。如果您访问的目标网站存在违法信息,会出现无法正常访问的情况。
计费说明
使用本功能时,除ACK集群产生的相关费用外,还将产生GA实例的相关费用,包括实例费用、性能容量单位CU费用、网络传输带宽费用。详细信息,请参见全球加速实例的计费概述。
步骤一:创建标准型GA实例
标准型GA实例提供了一张多接入地域和多源站地域的全连接网络,该网络支持四层(TCP和UDP)和七层(HTTP和HTTPS)协议加速。您可以配置GA实例需要实现网络加速的海外地域、待拉取的镜像仓库访问地址(例如docker.io)等。
本次创建的标准型GA实例,其加速网络的线路默认为精品带宽跨境加速。
登录全球加速管理控制台。
在实例列表页面,单击创建加速实例> 标准型按量计费,按照页面提示在不同配置向导页进行配置,仔细阅读页面提示的注意事项,然后完成配置项的审核和提交。
本步骤基于一些主要配置项介绍如何创建一个按量付费的标准型GA实例。具体操作和配置项的详细说明,请参见创建和管理标准型全球加速实例。
配置
说明
实例基础配置
实例计费方式
默认显示按量付费,产生的费用包括:
关于实例费、性能容量单位CU费的更多信息,请参见按量付费全球加速实例计费。
关于流量费,请参见流量计费。
配置加速区域
加速区域
选择您ACK集群所在的区域作为加速区域。本示例选择杭州和上海。
分配带宽
带宽峰值:加速地域的带宽。本示例均为200 Mbps。
IP地址协议:接入全球加速服务的IP地址协议。本示例均为IPv4。
配置监听
协议
监听的网络传输协议类型。本示例配置为TCP。
端口
指定用来接收请求并向终端节点进行转发的监听端口,端口取值范围:1-65499。
每个监听最多可配置30个监听端口。端口之间使用半角逗号(,)分隔,例如80,90,8080。
本示例配置为
80,443
。配置终端节点组
地域
需要实现网络加速的海外地域。本示例配置为美国(弗吉尼亚)。
终端节点配置
终端节点是客户端请求访问的目标主机。您可以参照以下示例配置终端节点。
后端服务类型:本示例选择自定义域名。
后端服务:待拉取的镜像仓库Registry的访问域名地址。本示例配置为
docker.io
。权重:输入终端节点权重,权重取值范围:0~255。全球加速根据您配置的权重按比例将流量路由到终端节点。
警告如果某个终端节点的权重设置为0,全球加速将终止向该终端节点分发流量,请您谨慎操作。
本示例配置为
255
。
完成配置后,请根据页面提示进入GA实例的详情页。
在GA实例的详情页,单击加速区域页签,在区域列表的加速IP列,记录ACK集群所在区域的加速IP信息,供步骤三:配置域名解析记录使用。
步骤二:配置GA实例的转发策略
如果您需要为目标镜像的其他相关域名地址配置转发规则,您可以为监听再添加一个虚拟终端节点组。
为监听创建虚拟终端节点组后,您可以创建自定义转发策略并关联该虚拟终端节点组。关联后,监听可以根据转发策略将满足转发条件的访问请求转发至对应的默认终端节点组或虚拟终端节点组中,实现一个全球加速实例同时加速访问多个目标终端节点。关于如何创建转发策略,请参见添加和管理转发策略。
在GA实例的详情页,单击监听页签,然后在监听列表的ID和名称列单击监听的ID,进入监听的详情页。
单击终端节点组页签,然后单击添加虚拟终端节点组,按照页面提示完成配置。
其中,终端节点配置示例配置如下:
后端服务类型:选择自定义域名。
后端服务:需要拉取的镜像源所涉及的相关域名地址,例如
production.cloudflare.docker.com
。权重:保持为
255
。
在监听配置页面,单击转发策略页签,然后单击+插入新策略,按照页面提示配置新的转发策略。
主要配置项的示例如下:
域名:域名匹配规则选择精确匹配及通配符,转发域名为需要拉取的目标镜像源所涉及的相关域名地址,例如
production.cloudflare.docker.com
。转发动作:配置转发至虚拟终端节点组,选择前置步骤中所添加的虚拟终端节点组。
步骤三:配置域名解析记录
配置域名解析记录有两种方式,可以通过给ACK集群节点/etc/hosts
文件中增加解析记录,实现本地域名解析。还可以通过配置内网DNS解析 (PrivateZone)域名解析记录,实现内网DNS解析,这种方式配置生效后会产生计费。关于内网DNS解析 (PrivateZone)产品计费详情,请参见产品计费。
配置ACK集群节点本地域名解析记录
创建好转发策略后,您还需要在ACK集群节点中添加对应的域名解析记录,使得节点可以通过GA实例的加速IP访问待拉取镜像的域名地址。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在节点列表,勾选待拉取镜像的节点,在页面下方单击批量运维,然后选择操作类型为执行 Shell 命令,并单击确定。
选择执行的模板为ACS-ECS-BulkyRunCommand,支持批量在多台ECS实例上运行云助手命令,其余使用默认配置项即可,然后进入下一步。
根据页面提示,填写Shell脚本,在节点的
/etc/hosts
中批量添加对应的域名解析记录(A 记录),配置IP地址为步骤二:配置GA实例的转发策略获取的两个加速IP,域名URL为需要拉取的目标镜像的相关域名地址,完成参数的配置,创建本次任务。例如,您可以通过
echo
命令实现域名解析:等待任务完成后,您可以登录ECS实例,确认节点上已存在对应的域名解析记录,并测试节点是否可以正常拉取海外源容器镜像。
云解析PrivateZone配置
创建好转发策略后,您还需要配置云解析PrivateZone添加对应的域名解析记录,使得节点可以通过GA实例的加速IP访问待拉取镜像的域名地址。
获取目标GA实例的CNAME加速域名。
登录全球加速管理控制台。
在左侧导航栏,选择标准型实例。
在实例列表页面,找到目标基础型全球加速实例,单击实例ID。
在实例信息页面获取目标GA实例的CNANE加速域名。
获取目标ACK集群节点所属的虚拟专业网络VPC ID。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息。
在集群信息页面,单击基本信息页签,获取虚拟专有网络VPC ID。
配置云解析PrivateZone域名解析记录
配置访问域名DNS的CNAME解析记录为GA实例中加速域名。分别为
docker.io
、production.cloudflare.docker.com
,由于一级域名不同,需要创建两个内置权威域名分别为io
和cloudflare.docker.com
,以下以创建cloudflare.docker.com
内置权威域名为例。登录到 云解析DNS控制台。
点击左侧导航栏中 内网DNS解析(PrivateZone),右上角选择 配置管理模式,然后点击 内置权威,在此页签下点击 用户域名。
在 用户域名 页面,点击 添加域名(Zone) ,在对话框中输入
cloudflare.docker.com
,域名类型 选择 内置权威加速区,开启子域名递归解析代理,然后点击 确定。在内置权威页签,单击
cloudflare.docker.com
操作列下的解析记录。然后在解析设记录页签,单击添加记录。在添加记录对话框,设置参数。单击确定。
参数
配置
记录类型
选择CNAME,将域名指向一个域名。
主机记录
当内置权威域名(Zone)为
cloudflare.docker.com
时填写production
。当内置权威域名(Zone)为
io
时填写docker
。
记录值
填入步骤1中获取的CNAME加速域名。
TTL时间
缓存时间。数值越小,修改记录在各地生效时间越快,默认为1分钟。
在域名设置页签,单击域名生效范围图标。
在阿里云VPC内网选择框中,选择当前账号,然后选择标准VPC,并且选择目标集群实例所在地域,VPC选择步骤2中的专有网络。单击确认。
配置完成后,您可以登录ECS实例,测试节点是否可以正常拉取海外源容器镜像。