【kubernetes】解决registry私有仓库 pull 镜像失败问题

简介: 【kubernetes】解决registry私有仓库 pull 镜像失败问题

环境说明:


我registry搭建的环境在centos7上,在出现报错之前,已经在将registry的证书放在了/etc/containerd/certs.d/registry.xxxxxxxxx.cn/registry.xxxxxxxxx.cn.crt 目录下,结果在kubernetes集群内部 pull 镜像时,还是出现了下面的报错:


Failed to pull image "registry.xxxxxxxxx.cn/xxxxxxxxx-server:0.0.11": rpc error: code = Unknown desc = failed to pull and unpack image "registry.xxxxxxxxx.cn/xxxxxxxxx-server:0.0.11": failed to resolve reference "registry.xxxxxxxxx.cn/xxxxxxxxx-server:0.0.11": failed to do request: Head "https://registry.xxxxxxxxx.cn/v2/xxxxxxxxx-server/manifests/0.0.11": x509: certificate signed by unknown authority


  • 在 kubernetes 集群外部用 nerdctl pull 镜像时没问题的,能读取 /etc/containerd/certs.d/domin/domain.crt 证书,并认证成功

这里猜测是kubernetes不会去自动读取镜像私有仓库的证书



解决步骤


cp /etc/containerd/certs.d/registry.xxxxxxxxx.cn/registry.xxxxxxxxx.cn.crt /etc/pki/ca-trust/source/anchors/
ln -s /etc/pki/ca-trust/source/anchors/registry.xxxxxxxxx.cn.crt /etc/ssl/certs/registry.xxxxxxxxx.cn.crt
update-ca-trust 
systemctl restart containerd # 可能只需要这一步就可以了
  • 先是按照centos 导入证书的操作,导入 domain.crt
  • 再是重启 containerd。(这里我就没有继续细化去验证了,我觉得不导入domain.crt ,直接重启 containerd 也能解决问题。)


OK。


[2022-12-07验证]:确实需要导入 domain.crt,直接重启 containerd 是不行的。ubuntu 证书导入步骤如下:


root@OpenStack:~# cp /etc/containerd/certs.d/registry.xxxxxxxxx.cn/registry.xxxxxxxxx.cn.crt /usr/local/share/ca-certificates/
root@OpenStack:~# update-ca-certificates
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
root@OpenStack:~# systemctl restart containerd.service 


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
Kubernetes 容器 Perl
【kubernetes】如何找到k8s内部拉取的镜像
【kubernetes】如何找到k8s内部拉取的镜像
121 1
|
6月前
|
Kubernetes 数据安全/隐私保护 Docker
k8s 拉取镜像报错 no basic auth credentials
k8s 拉取镜像报错 no basic auth credentials
408 0
|
3月前
|
JSON Kubernetes Docker
K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
|
9月前
|
Dragonfly 缓存 Kubernetes
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
|
5月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
344 0
|
29天前
|
Kubernetes API 数据安全/隐私保护
K8S中的ServiceAccount和useraccount并配置私有仓库用户名密码Harbor拉取私有镜像
K8S中的ServiceAccount和useraccount并配置私有仓库用户名密码Harbor拉取私有镜像
26 1
|
9月前
|
Kubernetes 应用服务中间件 调度
k8s--pod 基本配置、镜像拉取策略、启动命令、端口设置、资源配额
k8s--pod 基本配置、镜像拉取策略、启动命令、端口设置、资源配额
k8s--pod 基本配置、镜像拉取策略、启动命令、端口设置、资源配额
|
5月前
|
Kubernetes 安全 测试技术
Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本
Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本
113 0
|
5月前
|
Kubernetes 安全 Linux
k8s学习-CKS真题-Trivy扫描镜像安全漏洞
k8s学习-CKS真题-Trivy扫描镜像安全漏洞
58 0
|
7月前
|
Kubernetes 网络安全 Docker
快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
438 0