操作场景
之前已在生产环境稳定使用个人版共享服务的客户如果希望升级到独享的企业版实例,一方面需要将个人版内已有镜像数据导入至企业版实例内,另一方面也需要变更现有构建、发布系统中的镜像地址配置,来访问企业版实例。在实际生产场景中,镜像地址会被应用在构建平台、发布平台、Kubernetes 集群内应用 YAML 定义等多个环节,统一修改成本较高。
针对以上场景和问题,企业版推出个人版服务域名兼容功能,支持客户使用已有的个人版镜像地址及访问凭证来推送、拉取企业版实例内镜像,并支持智能回源,在企业版内无对应镜像时,自动回源请求个人版服务内对应镜像,最大限度降低镜像仓库迁移给客户运维、研发带来的负担,加速客户尽快切换至更加服务稳定、功能强大、高性能的企业版服务。
前提条件
已创建企业版实例。具体操作,请参见创建企业版实例。
已将个人版实例中的数据迁移到企业版实例中。具体操作,请参见 个人版实例镜像导入到企业版实例。
当前只有白名单用户才可以使用个人版域名访问企业版实例功能,您需要 提交工单 申请使用。
基础知识
个人版实例和企业版实例支持的域名如下所示:
个人版实例域名
不区分公网及内网域名,VPC 私有网络内访问,默认为内网链路。
主服务地域(广州、上海、南京、北京、成都、重庆):ccr.ccs.tencentyun.com
其他地域:具有独立服务及域名,如 中国香港地域:hkccr.ccs.tencentyun.com
企业版实例域名
区分公网及私网域名,并支持自定义域名
默认域名:{企业版实例名称}.tencentcloudcr.com。
内网专用域名:{企业版实例名称}-vpc.tencentcloudcr.com。
自定义域名:支持注册自定义域名。
以在广州地域个人版服务内命名空间 team-a 下 nginx:latest 镜像,迁移至企业版实例 company-a 为例:
个人版访问地址:ccr.ccs.tencentyun.com/team-a/nginx:latest。
企业版访问地址:company-a.tencentcloudcr.com/team-a/nginx:latest。
原理介绍
新建企业版实例时会默认下发支持个人版域名的证书,并支持处理个人版的认证鉴权请求。
客户仅需在私有网络环境内,将个人版域名解析至企业版的内网访问入口(请参考:配置内网访问控制),即可在私有网络内访问个人版镜像仓库地址时,自动访问企业版服务,并使用个人版服务的用户名+密码完成认证和鉴权。客户可选择使用 私有域解析 PrivateDNS 产品或是自行管理集群节点 Host 配置来实现域名解析。
当客户不再需要使用个人版域名访问企业版实例时,仅需取消私有网络内的强制解析,即可正常访问个人版服务。
使用限制
1. 在同一个地域只允许一个企业版实例开启使用个人版域名兼容功能。
2. 如果您使用的是公网环境,您需要手动配置域名解析到企业版实例访问入口。
3. 在使用个人版域名访问企业版服务时,会优先请求企业版里对应命名空间内的镜像仓库,因此请避免在企业版实例内使用 library、tke、public 等特殊命名空间名称,否则将导致 TKE 集群无法访问产品官方镜像造成基础服务异常。
操作指南
确认基础环境
1. 已开启个人版服务并使用。
2. 已购买企业版服务,并将个人版服务内部分镜像同步至企业版实例内。
3. 已有 TKE 集群(含 TKE Serverless 集群),且集群所在 VPC 已接入企业版实例,具体可参考 配置内网访问控制。
4. 已验证可在 TKE 集群内正常通过内网拉取个人版及企业版内镜像。
配置私有域解析
1. 前往 私有域解析 PrivateDNS控制台
2. 新建私有域
2.1 域名:tencentyun.com。
2.2 关联 VPC:选择企业版已接入的 VPC。
2.3 子域名递归解析:保持开启。
2.4 其他选项保持默认即可。
3. 配置私有域解析
3.1 点击新建的私有域进入详情页。
3.2 在 解析记录 中添加记录,配置如下
主机记录:如在使用主服务地域,则配置为 ccr.ccs,其他地域请填写对应的域名前缀,如 hkccr.ccs。
记录类型:CNAME。
记录值:企业版实例的域名,使用默认域名或自定义域名即可,需要确认 默认域名或自定义域名 已经在产品控制台内已配置自动解析。
其他保持默认即可。
3.3 其他选项保持默认即可。
验证访问效果
完成上述配置后,即可验证使用个人版域名访问企业版实例。
场景 1 :使用个人版域名拉取已迁移至企业版实例内镜像
1. 使用同步工具或手动推送镜像至企业版实例,如:company-a.tencentcloudcr.com/team-a/nginx:latest,对应个人版镜像仓库地址为:ccr.ccs.tencentyun.com/team-a/nginx:latest。
2. 登录集群节点手动拉取镜像,或通过创建新的工作负载来执行镜像拉取,需要注意:
镜像地址保持为:ccr.ccs.tencentyun.com/team-a/nginx:latest。
访问凭证保持为已配置的个人版访问凭证。
3. 验证集群可正常拉取到该镜像。
场景 2:使用个人版域名拉取尚未迁移至企业版实例内镜像
1. 个人版内已有镜像:ccr.ccs.tencentyun.com/team-b/apache:latest,尚未将该镜像同步至企业版内。
2. 登录集群节点手动拉取镜像,或通过创建新的工作负载来执行镜像拉取,需要注意:
镜像地址保持为:ccr.ccs.tencentyun.com/team-b/apache:latest。
访问凭证保持为已配置的个人版访问凭证。
3. 验证集群可正常拉取到该镜像。
场景 3:使用个人版域名推送镜像至企业版实例
1. 使用 Docker CLI 或是 CI 平台推送镜像,使用个人版地址:ccr.ccs.tencentyun.com/team-a/nginx:latest。
2. 若企业版实例内已有 team-a 命名空间,则可推送成本,否则将直接报错失败。
使用建议
适用场景
建议仅在以下场景中使用域名兼容功能:
构建环境、项目代码、部署应用中大量使用个人版镜像,切换到企业版独立域名成本高。
镜像构建、分发环境固定,一次性设置域名解析成本低。
如镜像分发场景较为复杂,且需要支持第三方用户、复杂网络场景访问企业版内镜像,不建议使用个人版域名兼容功能,避免扰乱生产环境部署。
灰度切换
建议在最初使用个人版域名访问企业版实例内镜像时,同时向个人版及企业版内推送镜像,以便在解析配置出现异常时,集群仍可临时切换至访问个人版服务。后续请逐渐将已有个人版镜像地址配置调整为企业版地址,并最终停止使用域名兼容功能。