拉取自建镜像仓库中的镜像时,可能会碰到因协议不同或者证书认证失败而导致镜像拉取失败的问题。本文介绍在自建镜像仓库采用HTTP协议和使用自签发证书的情况下,如何拉取自建镜像仓库中的镜像来创建ECI实例或者镜像缓存。
功能说明
拉取自建镜像仓库中的镜像时,可能会碰到“ErrImagePull”告警事件,出现镜像拉取失败的问题。在保证ECI与镜像仓库网络连通性的前提下,问题原因和解决方法如下:
场景 | 原因 | 解决方法 |
自建镜像仓库采用HTTP协议。 | ECI默认使用HTTPS协议拉取镜像,协议不同导致镜像拉取失败。 | 配置ECI使用HTTP协议与镜像仓库进行交互。 |
自建镜像仓库采用HTTPS协议,但使用的证书是自签发证书。 | 使用自签发证书的情况下,拉取镜像时无法通过证书认证,导致镜像拉取失败。 | 配置跳过证书认证。 |
配置说明
调用CreateContainerGroup接口创建ECI实例,或者调CreateImageCache接口创建镜像缓存时,如果需要拉取自建镜像仓库的镜像,且自建镜像仓库采用HTTP协议,或者使用自签发证书时,需配置PlainHttpRegistry或InsecureRegistry参数来避免镜像拉取失败。
仅支持通过OpenAPI配置,控制台暂不支持。
名称 | 类型 | 示例值 | 描述 |
PlainHttpRegistry | String | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | 取值为自建镜像仓库地址。 拉取采用HTTP协议的自建镜像仓库中的镜像时,需配置该参数,使得ECI使用HTTP协议拉取镜像,避免因协议不同而导致镜像拉取失败。 |
InsecureRegistry | String | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | 取值为自建镜像仓库地址。 拉取使用自签发证书的自建镜像仓库中的镜像时,需配置该参数来跳过证书认证,避免因证书认证失败而导致镜像拉取失败。 |
如果有多个容器的镜像需要从不同的镜像仓库中拉取,支持填写多个镜像仓库地址,各个地址之间采用半角逗号隔开,例如
harbor***.pre.com,192.168.XX.XX
。如果镜像仓库地址有端口号,则需要带上端口号,例如:镜像地址为
192.168.XX.XX:5000/nginx:latest
,则参数值需设置为192.168.XX.XX:5000
。
更多信息,请参见: