如何使用最新的Kubernetes从不安全的私有注册表中提取扩展坞镜像

weylhg0b  于 2022-09-19  发布在  Kubernetes
关注(0)|答案(0)|浏览(91)

我正在尝试从一个私有的不安全注册中心创建一个K8S吊舱和一个码头容器镜像。使用最新的K8,我得到了ErrImagePull,因为它抱怨http与https之间的注册表不安全。

Type     Reason     Age   From               Message
  ----     ------     ----  ----               -------
  Normal   Scheduled  7s    default-scheduler  Successfully assigned imagename to xxxx
  Normal   Pulling    7s    kubelet            Pulling image "registry:5000/imagename:v1”
  Warning  Failed     6s    kubelet            Failed to pull image "registry:5000/imagename:v1”: rpc error: code = Unknown desc = failed to pull and unpack image "registry:5000/imagename:v1”: failed to resolve reference "registry:5000/imagename:v1”: failed to do request: Head "https://registry:5000/v2/imagename/manifests/v1”: http: server gave HTTP response to HTTPS client
  Warning  Failed     6s    kubelet            Error: ErrImagePull
  Normal   BackOff    6s    kubelet            Back-off pulling image "registry:5000/imagename:v1”
  Warning  Failed     6s    kubelet            Error: ImagePullBackOff

在K8的CRI更改之前(即https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/),当我在/etc/docker/daemon.json中使用不安全的注册表配置时,这对我来说是有效的,然而随着K8的新更改,我正在尝试理解这里需要的正确配置是什么。

在同一节点上,我可以使用“docker ull ImageName”成功地从不安全的注册表中拉出映像(因为我已经为不安全的注册表配置了/etc/docker/daemon.json),并且我还使用tainerd命令“CTR-I Pull-Plain-http ImageName”进行了验证。

需要什么配置才能在pod.yaml中工作,我才能通过“kubectl create-f pod.yaml”拉取此图像。这只是一个简单的豆荚和图像,没有什么花哨的东西。

我看到了一篇关于为私有注册表(https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)创建密钥的帖子,但它需要注册表身份验证令牌来创建密钥。我刚刚尝试使用/etc/docker/daemon.json创建regcred,但当我在pod.yaml的ImagePullSecrets中使用它时,k8s仍然抱怨相同的http与https错误。

我的/etc/docker/daemon.json

{
    "insecure-registries": ["registry:5000"]
}

我有一个新安装的K8,而tainerd是CRI。

谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题