docker images
我的主机上,是有这个镜像的。
现象是,我的pushgateway 一直是ImagePullBak
查看详情,报出镜像拉取不到。
kubectl logs kube-pushgateway-lsveq -n monitoring
1.到主机上直接执行docker pull 镜像报错
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [fe80::1%ens33]:53 :server misbehaving
搜原因,人家说是dns没有正确解析到域名,查看dns相关问题。
针对我这个问题,查看dns是个错误思路,我花了一个上午的时间
从熟悉dns的原理,到查看dns的pod的yaml文件,已经在主机上生成的域名规则,没起作用。
最后我将 /etc/resolv.conf的内容都备份清掉,依然没有执行成功 docker pull
又搜到,将dns运行的ip信息配置到此文件中。
kubectl get po -A -o wide | grep coredns
将dns的ip配置进resolv.conf中,重新启动pushgateway,启动失败。
继续搜。。。
有说是docker的问题,需要配置本地registry仓库信息。
修改/etc/docker/daemon.json。没有这个文件,则新创建这个文件。
我信了,创建这个文件
cat /daemon.json
{
"insecure-registries",["10.10.10.238:35000"]
}
sudo systemctl daemon-reload
sudo systemctl stop docker.service
sudo systemctl start docker.service
sudo systemctl status docker.serivce
好嘛,查看docker状态,docker启动不起来了。telnet下registry的ip port,网络是通的,仓库没有问题。那就是这个配置文件的问题。将配置文件删掉,重启docker,状态ok
解决不了了,最后一招,请教大佬呗
我将问题描述了下:
主机上镜像已经存在,但docker pull 拉取此镜像时,拉取不到,导致pushgateway启动不了。
修改prometheus-pushgateway.yaml配置文件
imagePullPolicy : Always改成 IfNotPresent
kubectl apply -f prometheus-pushgateway.yaml
pod 瞬间运行正常,,,
就这一个属性,我排查了半天的时间没有思路。。。