Skip to content

镜像仓库地址与可用区

平台为每个可用区提供相互独立的 Registry。各可用区的平台实例使用同一个平台内部 Registry 域名 cr.infini-ai.com,但访问的是各自可用区中独立的 Registry。平台根据发起请求的实例所在可用区,将请求连接到该可用区的 Registry;域名相同不表示镜像数据共享,镜像也不会自动跨可用区同步。

警告

同一域名,各可用区 Registry 独立

在可用区 A 的平台实例中使用 cr.infini-ai.com/<tenant>/<repository>:<tag> 时,访问可用区 A 的 Registry;在可用区 B 的平台实例中使用完全相同的地址时,访问可用区 B 的 Registry。

这意味着,完整镜像地址不会显示实际访问的是哪个可用区。要确认镜像所属可用区,请在镜像中心的自定义镜像列表中查看 可用区 列;不要通过 Registry 域名、租户命名空间、仓库名或 tag 推断。

因此,即使完整镜像地址完全相同:

  • 在可用区 A 推送的镜像不会自动出现在可用区 B;
  • 分别从 A、B 向同一 tag 推送,会写入两个独立仓库,该 tag 可以对应不同的镜像摘要;
  • 如需访问其他可用区,必须使用镜像中心提供的目标可用区 Registry 公网访问地址,不能通过修改或复用平台内部 Registry 域名来选择目标可用区。

平台如何选择 Registry

图中的两个“平台内部 Registry 域名”显示为相同字符串,但平台根据请求来自哪个实例,将请求连接到该实例所在可用区的 Registry。此行为是平台提供的访问规则;不要根据域名推断其底层使用了哪一种 Kubernetes、DNS 或网络实现。

选择访问地址

命令运行位置目标 Registry使用的地址登录方式
平台实例当前实例所在可用区平台内部 Registry 域名 cr.infini-ai.com按照如何登录平台内部 Registry完成当前可用区的登录准备
平台实例其他可用区镜像中心提供的目标可用区 Registry 公网访问地址使用镜像中心提供的目标可用区登录凭证
本地设备或平台外部服务器任一平台可用区镜像中心提供的目标可用区 Registry 公网访问地址使用镜像中心提供的目标可用区登录凭证

cr.infini-ai.com 不是公网访问入口。在平台外部,不保证可以解析或连接。平台内部域名解析失败、连接超时或无法登录时,先确认命令是否在平台实例中运行,以及实例是否已开启 Docker 容器 功能。

如何登录平台内部 Registry

通过已开启 Docker 容器 功能的实例登录平台内部 Registry 域名时,访问的是当前实例所在可用区的 Registry。登录当前可用区不表示已经登录其他可用区,也不能让平台外部设备使用相同域名访问。

正常情况下无需手动登录

平台已为 Docker CLI 配置当前可用区 Registry 的登录凭证。可直接运行 docker pulldocker push,不要把 docker login 当作必需的初始化步骤。

如需确认凭证配置文件存在,可运行以下命令;不要直接输出文件内容:

language-shell
test -s "${DOCKER_CONFIG:-/tmp/docker-config}/config.json" \
  && echo "Registry credential ready"

如果已经执行过 docker logout cr.infini-ai.com,请重启实例。重启后,平台会重新写入 Registry 凭证,无需手动运行 docker login

确认镜像所属可用区

在镜像中心的自定义镜像列表中查看 可用区 列。完整镜像地址不会显示镜像实际存储在哪个可用区;同一个地址在不同可用区的实例中,会访问各自可用区的 Registry。因此,不要通过 Registry 域名、租户命名空间、仓库名或 tag 判断镜像所属可用区。

创建开发机、任务或推理服务时,所选算力资源和自定义镜像必须位于同一可用区。如果目标镜像没有出现在创建页面中,请依次检查:

  1. 镜像的可用服务是否包含当前服务。
  2. 镜像所属可用区是否与算力资源所在可用区一致。
  3. 目标可用区中是否确实存在该镜像及 tag。
  4. 需要比较两个可用区中的同名 tag 时,分别查看其镜像摘要,不要只比较地址字符串。

向其他可用区迁移镜像

平台不会在可用区之间自动同步镜像。要从可用区 A 向可用区 B 迁移镜像:

  1. 在镜像中心选择目标可用区 B。
  2. 获取页面提供的目标可用区 B Registry 公网访问地址和登录凭证。
  3. 在能够读取源镜像的设备或实例上,登录目标可用区 B 的公网 Registry 地址。
  4. 按页面给出的目标地址重新标记镜像并执行 docker push
  5. 返回镜像中心,确认镜像显示在可用区 B,并检查可用服务配置。

详细步骤参见导入或跨可用区迁移镜像

常见问题

在可用区 B 找不到可用区 A 已推送的镜像

这是可用区隔离的预期结果。即使镜像地址字符串完全相同,可用区 A 和 B 仍对应独立的 Registry 存储。请将镜像推送到目标可用区,或直接在目标可用区重新构建镜像。

在平台外部无法解析或连接平台内部 Registry 域名

平台内部 Registry 域名不是公网访问入口。在镜像中心选择目标可用区,改用页面提供的 Registry 公网访问地址和登录凭证。

相同 tag 在两个可用区中运行结果不同

两个可用区中的同名 tag 可以对应不同镜像摘要。分别查看两个可用区中的镜像摘要,并使用不可变 tag 或摘要固定需要严格一致的镜像版本。

后续操作