从个人版实例镜像迁移到企业版需要变更镜像域名,变更成本往往较大,为此企业版推出兼容个人版域名功能。通过该功能,您无需变更镜像域名,即可使用个人版域名访问企业版实例。本文介绍如何使用个人版域名访问企业版实例。

前提条件

背景信息

个人版实例和企业版实例支持的域名如下所示:
  • 个人版实例域名(以杭州地域为例)
    • 中国站公网默认域名:registry.cn-hangzhou.aliyuncs.com
    • 中国站私网默认域名:registry-vpc.cn-hangzhou.aliyuncs.com
    • 国际站公网默认域名:registry-intl.cn-hangzhou.aliyuncs.com
    • 国际站私网默认域名:registry-intl-vpc.cn-hangzhou.aliyuncs.com
  • 企业版实例域名(以杭州地域为例)
    • 公网默认域名:<企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com
    • 私网默认域名:<企业版实例名称>-registry-vpc.cn-hangzhou.cr.aliyuncs.com
    • 自定义域名:支持您已注册域名。

原理介绍

目前,个人版域名兼容功能实际上是在您的私有环境中将个人版域名解析到企业版实例访问入口(公网、VPC)。
  • 云上:系统会自动通过PrivateZone添加个人版VPC域名并解析到企业版VPC地址;如果您希望在云上通过个人版公网域名进行访问,您需要手动设置PrivateZone将个人版域名解析到企业版公网地址(云上更推荐VPC访问方式);
  • 线下:您需要自行设置域名解析到企业版实例。镜像推拉时,系统会根据地址中的命名空间名来分发流量,若命名空间在您的企业版实例中存在,流量走企业版实例,否则走个人版实例。

使用限制

  • 在同一个地域只允许一个企业版实例开启使用个人版域名兼容功能。
  • 如果您使用个人版域名拉取其他用户在个人版上的镜像,仅支持拉取其他用户的个人版公开镜像。
  • 当您的企业版实例中的命名空间名称与个人版实例中的命名空间相同时,您将不能拉取该个人版实例命名空间的镜像。因此请勿使用acs等ACK特定字符串作为您企业版的命名空间名称,避免无法访问ACK官方容器镜像。
  • 如果您使用的是公网环境,您需要手动配置域名解析到企业版实例访问入口。
  • 如果您想要使用RAM用户登录、拉取镜像,您还需要在企业版实例设置访问凭证,然后授予相应资源的操作权限。具体操作,请参见配置仓库的RAM访问控制

适用场景

场景 使用个人版域名兼容方案 使用企业版域名方案
  • 构建环境、项目代码、部署应用中大量使用个人版镜像,切换到企业版独立域名成本高。
  • 镜像构建、分发环境固定,一次性设置域名解析成本低。
建议 不建议
分发场景复杂,设置域名解析成本高,例如镜像需要提供给第三方使用。 不建议 建议
需要使用到本地域其他用户私有个人版镜像。 不建议 建议

步骤一:开启个人版域名兼容功能

  1. 登录容器镜像服务控制台
  2. 在顶部菜单栏,选择所需地域。
  3. 实例列表页面单击目标企业版实例。
  4. 在企业版实例管理页面左侧导航栏选择仓库管理 > 域名管理
  5. 域名管理页面打开个人版域名兼容开关。
  6. 配置解析对话框选中确认知晓以上提示,开启个人版域名兼容,然后单击确定
    开启个人版域名兼容功能成功后,可以看到在域名管理页面新增两条个人版域名。以杭州地域为例,将会新增个人版公网域名registry.cn-hangzhou.aliyuncs.com和个人版私网域名registry-vpc.cn-hangzhou.aliyuncs.com。
    注意 开启个人版域名兼容功能需要数秒时间,在此期间将无法操作命名空间和网络访问控制功能。

步骤二:设置域名解析

在使用个人版域名访问企业版实例之前,您需要配置域名解析,不同类型域名,操作不同:
  • 如果您使用的是私网,云解析PrivateZone中会为您绑定的VPC自动进行域名解析,您无需进行其他操作。
  • 如果您使用的是公网,您需要将手动将本地所在主机网段添加到公网白名单中,并设置域名解析。本文以公网为例。
  1. 添加公网白名单并获取公网域名。
    1. 登录容器镜像服务控制台
    2. 在顶部菜单栏,选择所需地域。
    3. 在左侧导航栏,选择实例列表
    4. 在企业版实例管理页面选择仓库管理 > 访问控制
    5. 访问控制页面单击公网页签。
      公网页签下获取域名地址
    6. 打开访问入口开关,然后单击添加公网白名单
    7. 添加公网白名单对话框中,输入本地所在主机的网段和备注信息,单击确定
  2. 在本地执行以下命令,获取域名IP。
    Ping <域名地址>

    在返回结果中获取域名IP。

  3. 在本地hosts中绑定以下内容,然后保存。
    <域名IP> <个人版公网域名>

步骤三:使用个人版域名访问企业版实例

开启个人版域名兼容功能后,您可以使用个人版域名登录企业版实例,并将镜像推送至企业版实例的镜像仓库中。

  1. 域名管理页面获取公网域名,本文以registry.cn-hangzhou.aliyuncs.com为例。
  2. 在Docker客户端执行以下命令,登录企业版实例。
    docker login registry.cn-hangzhou.aliyuncs.com
    在返回结果中输入账号和密码,然后显示login succeeded,表示登录成功。
  3. 推送镜像。
    1. 执行以下命令,给镜像打标签。
      docker tag <镜像ID> registry.cn-hangzhou.aliyuncs.com/<命名空间的名称>/<镜像仓库的名称>:<镜像版本号>
    2. 执行以下命令,推送镜像至企业版实例。
      docker push registry.cn-hangzhou.aliyuncs.com/<命名空间的名称>/<镜像仓库的名称>:<镜像版本号>
      在企业版实例镜像仓库页面单击目标镜像仓库名称,选择镜像版本,在镜像版本页面可以看到推送的镜像,说明使用个人版域名访问企业版实例成功。