文档

使用自建镜像仓库创建ACS工作负载

更新时间:

拉取自建镜像仓库中的镜像时,可能会碰到因协议不同、证书认证失败或者使用了自建DNS服务器而导致镜像拉取失败的问题。本文介绍在自建镜像仓库采用HTTP协议和使用自签发证书或者自建DNS服务器的情况下,如何拉取自建镜像仓库中的镜像来创建ACS工作负载。

功能说明

拉取自建镜像仓库中的镜像时,可能会碰到“ErrImagePull”告警事件,出现镜像拉取失败的情况。在保证ACS实例与镜像仓库网络连通的前提下,问题的原因和解决方法如下:

场景

原因

解决方法

自建镜像仓库采用HTTP协议。

ACS默认使用HTTPS协议拉取镜像,协议不同导致镜像拉取失败。

配置ACS使用HTTP协议与镜像仓库进行交互。

自建镜像仓库采用HTTPS协议,但使用的证书是自签发证书。

使用自签发证书的情况下,拉取镜像时无法通过证书认证,导致镜像拉取失败。

配置跳过证书认证。

自建镜像仓库的域名使用自建的DNS服务器。

ACS默认使用阿里云DNS(100.100.2.136、100.100.2.138)解析镜像仓库,如果镜像仓库的域名记录存在您自建的DNS服务器,就会导致镜像拉取失败。

参见ACS Pod配置自定义DNS

配置说明

如果需要拉取自建镜像仓库的镜像,且自建镜像仓库采用HTTP协议,或者使用自签发证书时,需在容器组(Pod)上配置下列注解,以避免镜像拉取失败。

名称

类型

示例值

描述

registry.alibabacloud.com/plain-http-registry

String

"harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80"

拉取采用HTTP协议的自建镜像仓库中的镜像时,需配置该参数,使得ACS使用HTTP协议拉取镜像,避免因协议不同而导致镜像拉取失败。

registry.alibabacloud.com/insecure-registry

String

"harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80"

拉取使用自签发证书的自建镜像仓库中的镜像时,需要配置该参数来跳过证书认证,以避免因证书认证失败而导致镜像拉取失败。

说明

如果有多个容器的镜像需要从不同的镜像仓库中拉取,支持填写多个镜像仓库地址,各个地址之间采用英文半角逗号(,)隔开,例如harbor***.pre.com,192.168.XX.XX

下面以无状态应用为例:

  1. 登录容器计算服务控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态

  3. 无状态页面,单击使用镜像创建

  4. 在您填写完应用基本信息后,点击下一步

  5. 填写完容器配置后,点击下一步

  6. 高级配置页面中,根据您自己的需求,在Pod注解中填入上述配置,比如您需要配置registry.alibabacloud.com/plain-http-registryregistry.alibabacloud.com/insecure-registry,按照下图完成配置后,单击创建按钮。image