Kubernetes拉取Harbor镜像报错ErrImagePull:x509证书未知签发机构
解决Kubernetes拉取Harbor镜像时的x509证书未信任问题
你遇到的问题核心是kubelet的证书信任池未同步你添加的Harbor CA证书,尽管Docker能正常拉取镜像,但kubelet并未识别到该证书,以下是具体解决步骤:
1. 确认kubelet的证书信任路径
不同操作系统的kubelet证书目录存在差异:
- Ubuntu/Debian:
/usr/local/share/ca-certificates/(需更新系统证书缓存) - RHEL/CentOS:
/etc/pki/ca-trust/source/anchors/
2. 导入Harbor CA证书到系统信任池
Ubuntu/Debian 操作:
- 将Harbor的根CA证书(通常为
ca.crt)复制到/usr/local/share/ca-certificates/目录,确保文件后缀为.crt - 执行命令更新系统证书缓存:
update-ca-certificates
RHEL/CentOS 操作:
- 将Harbor根CA证书复制到
/etc/pki/ca-trust/source/anchors/ - 执行命令生成并更新信任证书:
update-ca-trust extract
3. 重启kubelet服务
证书更新后需重启kubelet使其加载新的信任证书:
systemctl restart kubelet
4. 验证镜像拉取
删除已失败的Pod并重新创建:
kubectl delete pod test-pod -n test kubectl apply -f your-pod-manifest.yaml
通过以下命令查看Pod状态:
kubectl get pods -n test
额外排查项
- 确认导入的是Harbor的根CA证书,而非中间证书或服务器证书
- 查看kubelet日志排查是否仍存在证书相关错误:
journalctl -u kubelet -f
内容的提问来源于stack exchange,提问作者karasart
相关产品推荐
相关产品推荐

