K8s Error: ImagePullBackOff 故障排除

这篇具有很好参考价值的文章主要介绍了K8s Error: ImagePullBackOff 故障排除。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Error: ImagePullBackOff 故障排除

1. 起因

起因是要在一组k8s环境下做个Prometheus的测试,当时虚拟机用完直接暂停了.
启动完master和node节点后重启了这些节点.
当检查dashboard时候发现Pod处于ImagePullBackOff状态,使用命令查看详细情况

kubectl describe pods -n kubernetes-dashboard kubernetes-dashboard-6948fdc5fd-7szc9

发现镜像拉取失败

1.1 报错信息如下:

Events:
  Type     Reason          Age                From               Message
  ----     ------          ----               ----               -------
  Normal   Scheduled       25s                default-scheduler  Successfully assigned kubernetes-dashboard/kubernetes-dashboard-6948fdc5fd-7szc9 to 192.168.31.112
  Normal   SandboxChanged  23s                kubelet            Pod sandbox changed, it will be killed and re-created.
  Normal   BackOff         20s (x3 over 22s)  kubelet            Back-off pulling image "harbor.intra.com/baseimages/kubernetesui/dashboard:v2.4.0"
  Warning  Failed          20s (x3 over 22s)  kubelet            Error: ImagePullBackOff
  Normal   Pulling         9s (x2 over 24s)   kubelet            Pulling image "harbor.intra.com/baseimages/kubernetesui/dashboard:v2.4.0"
  Warning  Failed          9s (x2 over 24s)   kubelet            Failed to pull image "harbor.intra.com/baseimages/kubernetesui/dashboard:v2.4.0": rpc error: code = Unknown desc = Error response from daemon: Get "https://harbor.intra.com/v2/": x509: certificate signed by unknown authority
  Warning  Failed          9s (x2 over 24s)   kubelet            Error: ErrImagePull

2. 排查思路

这个故障明显是由于node节点拉取harbor中镜像失败造成.那么可能的原因就是以下几点,我们对此一一排查

  1. harbor.intra.com解析错误或者服务器没有启动,使用ping命令排查
  2. harbor.intra.com上harbor服务异常造成,使用网页浏览或者curl命令排查
  3. node节点到harbor身份验证异常,docker login检查.检查daemon.json和config.json

2.1 ping harbor

直接到node2节点ping

root@k8s-node-2:~# ping harbor.intra.com -c 3
PING harbor.intra.com (192.168.31.189) 56(84) bytes of data.
64 bytes from harbor.intra.com (192.168.31.189): icmp_seq=1 ttl=64 time=0.249 ms
64 bytes from harbor.intra.com (192.168.31.189): icmp_seq=2 ttl=64 time=1.36 ms
64 bytes from harbor.intra.com (192.168.31.189): icmp_seq=3 ttl=64 time=0.108 ms

现在确定ping是正常的,那么至少服务器我们开了

2.2 检查harbor服务是否正常

用curl测试下harbor是否通

root@k8s-node-2:~# curl https://harbor.intra.com/harbor -k
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>Harbor</title>
    <base href="/">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="favicon.ico?v=2">
    <link rel="preload" as="style" href="./light-theme.css?buildTimestamp=1639627836207">
    <link rel="preload" as="style" href="./dark-theme.css?buildTimestamp=1639627836207">
<link rel="stylesheet" href="styles.e71e5822ddf4adf262c4.css"></head>
<body>
    <harbor-app>
        <div class="spinner spinner-lg app-loading app-loading-fixed">
            Loading...
        </div>
    </harbor-app>
<script src="runtime.5ed5a3869dd69991407a.js" defer></script><script src="polyfills.a5e9bc0ea6dbbbdc0878.js" defer></script><script src="scripts.fc1928a0f22676249790.js" defer></script><script src="main.8b949aee92f43fe7c3ab.js" defer></script></body>

这里我们确认了harbor服务是正常的,通过网页也能访问到
k8s重启后imagepullbackoff,Linux,云原生,kubernetes,容器,云原生

2.3 docker login harbor

此时发生了报错,明显是验证失败了.且失败原因是没有授权的仓库造成的.

root@k8s-node-2:~# docker login https://harbor.intra.com
Password: ting with existing credentials...
Error: Password Requiredrror: Error response from daemon: Get "https://harbor.intra.com/v2/": x509: certificate signed by unknown authority

那么我们到node1上试下是否登录harbor成功

root@k8s-node-1:~# docker login https://harbor.intra.com
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

那么我们将node1的/etc/docker/daemon.json同步到node2上

root@k8s-node-1:~# scp /etc/docker/daemon.json 192.168.31.112:/etc/docker/daemon.json
root@192.168.31.112's password:
daemon.json      

再到node2上重启docker服务,此时可以看到授权的镜像仓库里有了https://harbor.intra.com/

root@k8s-node-2:~# systemctl restart docker
root@k8s-node-2:~# docker info |tail -10
WARNING: No swap limit support
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
 Insecure Registries:
  127.0.0.0/8
  192.168.31.0/24
 Registry Mirrors:
  https://docker.mirrors.ustc.edu.cn/
  http://hub-mirror.c.163.com/
  https://harbor.intra.com/
  https://192.168.31.189/
 Live Restore Enabled: true

3. 解决

尝试再次登录harbor并拉取镜像

root@k8s-node-2:~# docker login https://harbor.intra.com
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@k8s-node-2:~# docker pull harbor.intra.com/baseimages/kubernetesui/dashboard:v2.4.0
v2.4.0: Pulling from baseimages/kubernetesui/dashboard
Digest: sha256:2d2ac5c357a97715ee42b2186fda39527b826fdd7df9f7ade56b9328efc92041
Status: Image is up to date for harbor.intra.com/baseimages/kubernetesui/dashboard:v2.4.0
harbor.intra.com/baseimages/kubernetesui/dashboard:v2.4.0

此时dashboard pod状态也变成了Running文章来源地址https://www.toymoban.com/news/detail-822885.html

root@k8s-master-01:~# kubectl get pod -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS      AGE
dashboard-metrics-scraper-6848d4dd7d-g7k6b   1/1     Running   4 (49m ago)   226d
kubernetes-dashboard-6948fdc5fd-7szc9        1/1     Running   0             6m2s

到了这里,关于K8s Error: ImagePullBackOff 故障排除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S集群中Pod资源处于ImagePullBackOff状态排查思路

    ImagePullBackOff状态表示容器的镜像拉取失败,可能存在以下几点原因: 拉取镜像时间较长导致超时,从而导致镜像拉取失败,部署完Docker后,一定要添加上阿里云的镜像加速器,否则拉取镜像是非常慢的,很容易就会导致镜像拉取失败。 镜像配置有误,指定的镜像在公有仓库

    2024年02月14日
    浏览(45)
  • K8s的Pod出现Init:ImagePullBackOff问题的解决(以calico为例)

    对于这类问题的解决思路应该都差不多,本文以calico插件安装为例,发现有个Pod的镜像没有pull成功 从上图发现是docker拉取\\\"calico/cni:v3.15.1\\\"失败,那么我们手动拉取一下 Note :我们需要知道这个pod是部署在哪个node上,然后才能在具体的Node上拉取镜像 发现是在k8snode1主机上,那

    2024年02月11日
    浏览(48)
  • 【K8S系列】深入解析k8s网络之—网络故障

    你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 Kubernetes (k8s) 是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s网络故障相关的的内容

    2024年02月08日
    浏览(38)
  • K8S故障排查

    故障现象:部署pod时,报错没发调度到节点。 排查步骤: 1、查看集群的状态 2、查看k8s组件的状态-kubelet,kube-apiservice 3、查看docker的Cgroup driver和k8s的Cgroup driver类型,发现docker是cgroup,k8s是systemd,问题点找到了。

    2024年02月15日
    浏览(48)
  • k8s重启服务(kubectl)

    How to Restart Kubernetes Pods With Kubectl Deployments

    2024年02月11日
    浏览(39)
  • 【k8s问题定位】k8s中的pod不停的重启,定位问题原因与解决方法

    现象: running的pod,短时间内重启次数太多   定位问题方法: 查看pod日志 本次使用以下命令,解决了问题 问题原因: OOM,pod被kill掉,重启了( 内存不够用 )   查看该服务的deployment.yaml文件 发现我们deployment.yaml对服务的内存使用,做了限制 解决方法: 将limit的memory数值提高,然后

    2024年02月09日
    浏览(55)
  • k8s master组件无法重启

    1.案例 k8s的master组件出错,删掉pod重新拉起也无法正常启动 kubectl get pod -n kube-system  可以看到controller和scheduler组件都显示异常  kubectl describe pod kube-apiserver-k8s-master03 -n kube-system 通过describe查看组件容器的详细信息也并没有报错输出 kubectl delete pod kube-controller-manager-k8s-master0

    2024年02月09日
    浏览(42)
  • K8S - 架构、常用K8S命令、yaml资源清单部署、Ingress、故障排查、存储卷

    K8S官网文档:https://kubernetes.io/zh/docs/home/ 学习东西还是要从官方文档入手; 用于管理、扩展、自动部署容器; 其实就是 对多个跨机器的Docker集群; 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大, Kubernetes 可以负载均

    2024年02月09日
    浏览(62)
  • K8S容器的一则故障记录

       kubelet 、pod持久化 metrics/vlalphal容器 kube-controller、apiserver     XXX反馈说某某业务服务异常,无法启动,需要进行协助排查。经常会接到这样一个需求,一开始无法清楚知道具体什么问题,需要跟一线运维人员详细做沟通,了解故障问题的细节。     根据一线运维人

    2024年02月02日
    浏览(47)
  • K8S deployment 重启的三种方法

    一般重启deployment,常规操作是删掉对应的pod, 但如果有多个副本集的话,一个个删很麻烦。 除了删除pod,还可以: PS: rollout restart需要集群版本大于1.15才能支持 以上重启方法均会生成Replicasets(副本集), 可通进行回滚:

    2024年02月14日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包