You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用私有Harbor镜像创建Kubernetes Deployment:如何指定镜像拉取密钥

部署私有Harbor镜像到Kubernetes的单命令方案

方案1:一键创建密钥+部署应用

不用单独创建密钥再写YAML,直接用一条组合命令搞定:

kubectl create secret docker-registry harbor-regcred \
  --docker-server=<你的Harbor仓库地址> \
  --docker-username=<Harbor用户名> \
  --docker-password=<Harbor密码> \
  --docker-email=<邮箱(可选)> \
  && kubectl create deployment <部署名称> \
  --image=<Harbor镜像完整路径>:<标签> \
  --image-pull-secrets=harbor-regcred

这条命令会先创建名为harbor-regcred的镜像拉取密钥,紧接着创建Deployment并指定用这个密钥拉取私有镜像,全程不用碰YAML文件。

方案2:临时注入密钥(无需持久化保留密钥)

如果不想在集群里留下持久化的密钥,可以用dry-run生成Deployment的临时YAML,再通过工具修改后直接应用,同时创建临时密钥:

kubectl create deployment <部署名称> \
  --image=<Harbor镜像完整路径>:<标签> \
  --dry-run=client -o yaml | \
  yq e '.spec.template.spec.imagePullSecrets += [{"name": "temp-harbor-regcred"}]' - | \
  kubectl apply -f - \
  && kubectl create secret docker-registry temp-harbor-regcred \
  --docker-server=<你的Harbor仓库地址> \
  --docker-username=<Harbor用户名> \
  --docker-password=<Harbor密码> \
  --docker-email=<邮箱(可选)>

注:这个方案需要提前安装yq工具来修改YAML内容。执行后K8s会先尝试拉取镜像,等临时密钥创建完成后自动重试成功。

额外注意

如果你的Harbor用的是自签名证书,还得让集群信任这个证书:要么把证书放到每个节点的/etc/docker/certs.d/<Harbor地址>目录,要么创建ConfigMap挂载到Pod的证书目录里,不然会出现证书验证失败的问题。

内容的提问来源于stack exchange,提问作者Mac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:57:19