报错信息
Failed to pull image "10.3.148.117/gz2203/php:v1": rpc error: code = Unknown desc = Error response from daemon: Get "https://10.3.148.117/v2/": x509: cannot validate certificate for 10.3.148.117 because it doesn't contain any IP SANs
项目背景
以创建docker仓库并上传到仓库,k8s创建Deployment时创建的pod需要向私有仓库进行拉取,但是以配置secret且在yaml文件中已经引用,但是拉取时进行报错。
解决思路:
查看报错信息,because it doesn't contain any IP SANs该报错和docker私有仓库没有配置"insecure-registries": ["http://xx.xx.xx.xxx"],允许不安全连接时的报错类似,加上k8s内部不同节点拉取代码的用户并不是docker而是kubelet。所以查看集群中的节点上发现均没配置
解决办法:
vim vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.3.148.xxx"]
}
由于是不安全连接,需要在每个k8s的node节点上进行配置接受对应的不安全连接的ip,允许不安全连接。这样kubelet在拉取代码的时候才不会因为https而无法连接