docker image下载不成功的解决方案
2026/6/27 7:11:40 网站建设 项目流程

docker image下载不成功的解决方案

问题根源

cr.kagent.dev是海外私有镜像仓库,国内网络直连超时/拉取失败,Kagent Chart 全局配置registry: cr.kagent.dev,所有组件镜像都走这个地址。
提供4套可落地方案,按简单到生产排序。

方案1:安装时直接覆盖镜像仓库(最快,无需改values)

Kagent 全局有global.registry参数,一键替换镜像域名,两种用法:

1.1 命令行 --set 覆盖(临时)

# 先装crdshelminstallkagent-crds oci://ghcr.io/kagent-dev/kagent/helm/kagent-crds-naiops --create-namespace\--setglobal.registry=dockerproxy.com/cr.kagent.dev# 再装主程序,带上你的valueshelminstallkagent oci://ghcr.io/kagent-dev/kagent/helm/kagent-naiops-fkagent-values.yaml\--setglobal.registry=dockerproxy.com/cr.kagent.dev

代理规则:cr.kagent.dev/xxxdockerproxy.com/cr.kagent.dev/xxx,公开免费镜像代理。

1.2 修改你的 kagent-values.yaml(永久推荐)

在 values 文件顶部加入全局镜像替换,所有组件自动生效:

global:registry:dockerproxy.com/cr.kagent.devtag:0.9.10

然后正常执行安装:

helminstallkagent oci://ghcr.io/kagent-dev/kagent/helm/kagent-naiops-fkagent-values.yaml

方案2:集群节点配置Docker全局镜像加速器(不修改helm)

所有节点统一加国内镜像源,节点自动代理海外仓库,无需改chart配置。

  1. 编辑/etc/docker/daemon.json
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn","https://dockerproxy.com","https://docker.m.daocloud.io"]}
  1. 重启docker
systemctl daemon-reload systemctl restartdocker

缺点:仅能加速docker.io/gcr.io,对cr.kagent.dev私有域名加速有限,优先用方案1。

方案3:本地预拉镜像+私有仓库 Harbor(生产稳定)

适合长期离线/严格内网集群:

  1. 本地能联网机器拉取代理镜像
dockerpull dockerproxy.com/cr.kagent.dev/kagent-dev/kagent/controller:0.9.10# 重命名为私有仓库地址dockertag dockerproxy.com/cr.kagent.dev/kagent-dev/kagent/controller:0.9.10 harbor.xxx.com/kagent-dev/kagent/controller:0.9.10# 推送到内网harbordockerpush harbor.xxx.com/kagent-dev/kagent/controller:0.9.10
  1. helm安装指定内网仓库
helminstallkagent...--setglobal.registry=harbor.xxx.com

方案4:DaoCloud 镜像代理备选(dockerproxy失效时用)

替换registry值为:

global:registry:m.daocloud.io/cr.kagent.dev

命令行示例:

helminstallkagent...--setglobal.registry=m.daocloud.io/cr.kagent.dev

关键补充:CRDS 也要同步替换 registry

kagent-crds chart 同样有global.registry必须同步加参数,否则crds控制器镜像依然拉失败:

helminstallkagent-crds oci://ghcr.io/kagent-dev/kagent/helm/kagent-crds-naiops\--setglobal.registry=dockerproxy.com/cr.kagent.dev

校验镜像是否替换成功

部署完成后查看pod镜像地址:

kubectl get pod-naiops-ojsonpath='{.items[0].spec.containers[0].image}'

输出应不再是cr.kagent.dev/xxx,而是dockerproxy.com/cr.kagent.dev/xxx

常见报错兜底

  1. 代理镜像拉取404:换m.daocloud.io/cr.kagent.dev
  2. 集群私有仓库需要认证:在values添加global.imagePullSecrets
global:imagePullSecrets:-harbor-secret

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询