我正在尝试从一个私有的不安全注册中心创建一个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。
谢谢你的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!