更新时间:2025-08-07 GMT+08:00
分享

拉取自建镜像仓库的镜像

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

配置说明

表1 配置说明

annotation

示例值

配置说明

cci.io/http-registries

"harbor.***.com,192.168.XX.XX:5000,100.95.XX.XX,http://harbor.***.com"

拉取采用HTTP协议的自建镜像仓库中的镜像时,需配置该Annotation,使用逗号分隔多个地址。允许存在http://前缀,端口,相对路径,允许使用vpc ip地址、域名、公网ip地址,不允许填空地址,最多填入10个地址。

cci.io/insecure-registries

"harbor.***.com,192.168.XX.XX:5000,100.95.XX.XX,https://harbor.***.com"

拉取使用自签发证书的自建镜像仓库中的镜像时,需配置该Annotation来跳过证书认证,使用逗号分隔多个地址。允许存在https://前缀,端口,相对路径,允许使用vpc ip地址、域名、公网ip地址,不允许填空地址,最多填入10个地址。

  • 如果镜像仓库地址有端口号,则需要带上端口号,例如:镜像地址为192.168.XX.XX:5000/nginx:latest,则cci.io/http-registries可设置为"192.168.XX.XX:5000"。
  • 使用HTTP协议存在数据传输不加密、易受中间人攻击和缺乏身份验证等风险,可能会导致数据泄露、业务受损等,推荐使用https协议拉取镜像。

配置示例一:自建镜像仓库采用HTTP协议

  • 创建2U4G Deployment
    apiVersion: cci/v2
    kind: Deployment
    metadata:
      labels:
        app: http
      name: http
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: http
      template:
        metadata:
          labels:
            app: http
          annotations:
            resource.cci.io/pod-size-specs: 2.00_4.0
            cci.io/http-registries: 192.168.XX.XX
        spec:
          containers:
            - image: 192.168.XX.XX/harbor/nginx:latest
              name: container-0
          imagePullSecrets:
            - name: harbor-secret-new
    
  • 创建2U4G Pod
    apiVersion: cci/v2
    kind: Pod
    metadata:
      annotations:
        resource.cci.io/pod-size-specs: 2.00_4.0
        cci.io/http-registries: 192.168.XX.XX
      name: http
    spec:
      containers:
        - image: '192.168.XX.XX/harbor/nginx:latest'
          imagePullPolicy: IfNotPresent
          name: container-1
      imagePullSecrets:
        - name: harbor-secret

配置示例二:自建镜像仓库使用自签发证书

  • 创建2U4G Deployment
    apiVersion: cci/v2
    kind: Deployment
    metadata:
      labels:
        app: insecure
      name: insecure
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: insecure
      template:
        metadata:
          labels:
            app: insecure
          annotations:
            resource.cci.io/pod-size-specs: 2.00_4.0
            cci.io/insecure-registries: 192.168.XX.XX
        spec:
          containers:
            - image: 192.168.XX.XX/harbor/nginx:latest
              name: container-0
          imagePullSecrets:
            - name: harbor-secret-new
  • 创建2U4G Pod
    apiVersion: cci/v2
    kind: Pod
    metadata:
      annotations:
        resource.cci.io/pod-size-specs: 2.00_4.0
        cci.io/insecure-registries: 192.168.XX.XX
      name: insecure
    spec:
      containers:
        - image: '192.168.XX.XX/harbor/nginx:latest'
          imagePullPolicy: IfNotPresent
          name: container-1
      imagePullSecrets:
        - name: harbor-secret

相关文档