首页 > 解决方案 > 具有私有 docker 注册表 v2 的 Kubernetes

问题描述

我正在尝试设置一个私有 docker 注册表以与 Kubernetes 一起使用。我已经设置了注册表,运行 Kubernetes 集群的主服务器可以毫无问题地从注册表中提取图像。此外,我遵循了 Kubernetes 的文档,该文档解释了如何连接到私有 Docker 注册表(请参阅https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)。

但是,当我尝试通过 Kubernetes 从 docker 注册表中提取图像时,出现以下错误:

Failed to pull image "xxx.xxx.xxx.xxx:5000/helloworld:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: x509: certificate signed by unknown authority

我注意到以v1/_ping结尾的链接不正确,应该是v2/_ping。

我运行以下命令来生成我的regcred:

kubectl create secret docker-registry regcred --docker-server="https://xxx.xxx.xxx.xxx:5000/v2/" --docker-username=xxxxx --docker-password=xxxxxx --docker-email=xxxx@xxx.xx

我也google了一下,发现了这个: https ://github.com/kubernetes/kubernetes/issues/20786

不幸的是,这些建议没有帮助,但它们确实表明更多人面临同样的问题。

有人知道如何使用 Kubernetes 正确设置 docker registry v2 吗?

谢谢

标签: dockerkubernetesregistrydocker-registry

解决方案


解决了这个问题,默认情况下主服务器不会启动您的部署。所以我需要在我的从服务器上执行以下操作:

  1. 将证书添加到 /etc/docker/certs.d/my-registry-domain.com[:port]/ca.crt
  2. 做 docker login my-registry-domain.com[:port]
  3. 将 docker 注册表密钥添加到 Kubernetes(请参阅https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)--docker-server=docker-registry-domain.com/ v2/ 或 v1 取决于您运行的内容
  4. 现在它将成功地从 docker 注册表中提取图像。

希望它会帮助某人。


推荐阅读