• 热门搜索 热门搜索
菜单

您现在的位置是:博客 > 文章详情文章详情

kubeadm init:failed to pull image registry.k8s.io/pause:3.6

原创
时间2023/12/28 00:13:01 发布 预览数量570
分类: k8s 标签: linux k8s

一、错误现象

在安装 K8s 1.28.0 的时候,kubeadm init… 执行失败,错误信息如下:

[kubelet-check] Initial timeout of 40s passed.

Unfortunately, an error has occurred:
        timed out waiting for the condition

This error is likely caused by:
        - The kubelet is not running
        - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
        - 'systemctl status kubelet'
        - ''

Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.
Here is one example how you may list all running Kubernetes containers by using crictl:
        - 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep kube | grep -v pause'
        Once you have found the failing container, you can inspect its logs with:
        - 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock logs CONTAINERID'
error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
To see the stack trace of this error execute with --v=5 or higher

错误信息中已经给出了可供参考的一些指令,首先我们使用 systemctl status kubelet 指令来查看 kubelet 的运行状态。如下图所示,运行状态是正常的。

kubeadm init:failed to pull image registry.k8s.io/pause:3.6

然后我们使用 journalctl -xeu kubelet 命令来查询一下执行日志,经过排查,我发现有一个处拉取 registry.k8s.io/pause:3.6 镜像失败的日志,导致了sandbox 创建不了而报错。既然找到了错误, 那么解决起来就比较简单了。

Dec 26 18:38:09 master kubelet[17939]: E1226 18:38:09.913745   17939 pod_workers.go:1300] "Error syncing pod, skipping" err="failed to \"CreatePodSandbox\" for \"kube-controller-manager-master_kube-system(8376d5b9b66e31d3f06b6a604fb7b258)\" with CreatePodSandboxError: \"Failed to create sandbox for pod \\\"kube-controller-manager-master_kube-system(8376d5b9b66e31d3f06b6a604fb7b258)\\\": rpc error: code = DeadlineExceeded desc = failed to get sandbox image \\\"registry.k8s.io/pause:3.6\\\": failed to pull image \\\"registry.k8s.io/pause:3.6\\\": failed to pull and unpack image \\\"registry.k8s.io/pause:3.6\\\": failed to resolve reference \\\"registry.k8s.io/pause:3.6\\\": failed to do request: Head \\\"https://us-west2-docker.pkg.dev/v2/k8s-artifacts-prod/images/pause/manifests/3.6\\\": dial tcp 64.233.189.82:443: i/o timeout\"" pod="kube-system/kube-controller-manager-master" podUID="8376d5b9b66e31d3f06b6a604fb7b258"

二、解决办法

# 1、生成 containerd 的默认配置文件
containerd config default > /etc/containerd/config.toml

# 2、查看 sandbox 的默认镜像仓库在文件中的第几行
cat /etc/containerd/config.toml | grep -n "sandbox_image"

# 3、将仓库地址修改成 registry.cn-hangzhou.aliyuncs.com/converts/pause:3.6
sandbox_image = "registry.cn-hangzhou.aliyuncs.com/converts/pause:3.6"

# 4、重启 containerd 服务
systemctl daemon-reload
systemctl restart containerd.service

版权声明:本文为Converts的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://www.converts.cn/article/9199941.html

暂无评论

暂无评论

目录

推荐阅读

  • 如何使用 vs 2022 远程调试 Linux系统中的Docker容器项目

    一、前言 在项目上,总会遇到一些奇怪的问题,例如:“在本地好好的, 为什么部署到线上就不行” 等等,这样的问题时长困扰着我们。但是作为一个资深的码农,“远程调试” 是一个不可或缺的手段。下面就来看下如果使用 vs 在本地远程调试部署在Linux系统中,运行在Docker容器中的项目吧。 二、远程调试 调试的前提,

  • 移除Linux系统启动时的等待时间

    一、前言 VMware 虚拟机中安装了很多Linux 系统,每次启动的时候, 都卡在系统选择的界面上,除非手动选择, 否则要等很久才会进入系统,如下图所示: ![移除Linux系统启动时的等待时间](/ArticleFile/2024-06-24/e3ab02212cc946bd9c23159895177fb3.png '移除Linux系统启动时的等待时间') 二、关闭系统等待的事件 我们

  • GitLab 私有化部署

    一、GitLab 概述 git作为目前最流行的代码管理工具,已经成为了程序员必备的技能。虽然目前有 github(对国人不太友好) 、gitee 两个比较大的代码托管平台。但是出于各种原因,搭建自己的私有代码平台也成了一部分开发人员的选择。针对这种需求,这里为大家介绍的是其中的佼佼者gitlab,也是我们公司内部正在使用的一个代码管理平台。 GitLab是一个基于Git的开源代码管理平台,它

  • 云服务器购买按量付费实例,并搭建私有网络图解

    一、前言 最近在自学 k8s 集群化部署, 奈何云服务器包年包月太贵了, 学习成本飙升。好在各大云服务商支持按量计费 , 接下来就带大家一起过一下购买流程,并且使用私有网络。 二、私有网络 在购买云服务器之前,先了解下什么是私有网络。官网给出的解释是:私有网络(Virtual Private Cloud,VPC)是一块在云服务器上自定义的逻辑隔离网络空间,可以使云服务器, 云数据库资源构建逻

  • Docker 部署FastTunnel,实现内网穿透

    一、前言 最近在学习搭建Elasticsearch集群,但是发现云服务(2核4G)资源根本就不够用,部署上去就直接宕机了。想着服务器资源太贵, 家里刚好有一台64G内存的闲置电脑。不如做一个内网穿透,可以远程访问。工作学习两不误。其实目前市面上已经有很多穿透工具了,比如向日葵~~ ,但是奈何带宽太小了,免费的才1M~~~ 二、什么是 FastTunnel FastTunnel 是用.net

  • IP地址和子网掩码的关系

    一、概述 IP地址(Internet Protocol Address)和子网掩码(Subnet Mask)是计算机网络中两个核心的概念,它们共同工作以确保数据能够正确地在复杂的网络环境中传输到目标设备。 二、IP地址 `IP地址`是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。它是一个32位的二进制数,但是在习惯上,我们

  • 修改Docker默认的存储驱动程序目录

    一、前言 今天使用jenkins对程序进行更新的时候,发现更新失败。经排查是因为系统磁盘满了,然而通过堡垒机看了下,系统空间还有很多,于是看了下系统分区: ![修改Docker默认的存储驱动程序目录](/ArticleFile/2024-06-06/444ede8a1b1b42058db18690fa995952.png '修改Docker默认的存储驱动程序目录') ![修改Docker默认

  • Windows 安装git的详细安装步骤 ,以及TortoiseGit 图形化工具

    一、前言 `Git` 是一个开源的分布式版本控制系统,用于有效、高速地处理从很小到非常大的项目版本管理。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持。 二、安装Git 1、Git 下载地址 [Git 下载地址](https://git-scm.com/downloads "Git 下载地址") ![Windows

  • 免费的 GIF 录屏工具下载

    一、前言 在写博客或者文档的时候,经常需要附上一些gif动图,可以让快速展示操作流程。下面`小C`就介绍几款我经常用到的几款免费的gif工具。 二、免费的Gif工具 1、GifCam GifCam是一款免费绿色软件,它能够录制屏幕上的动态内容,并将其保存为GIF动画图像。用户可以调整录制区域、帧速率等参数,以满足不同的录制需求。除了连续录制外,GifCam还支持单帧录制功能。用户可以手

  • 对比MySQL不同版本下表结构和数据存储的差异

    一、前言 在开始之前, 我们需要先了解一下 MySQL 的存储引擎有哪些。 `MySQL`常用的存储引擎有 InnoDB 和 MyISAM,而且两者都有各自的特点,适用于不同的场景。下面是对这两种存储引擎的简要对比: - InnoDB存储引擎 - 支持事务处理 - 支持行级锁 - 支持外键约束 - 可以根据事务日志实现数据恢复 - MyISAM存储引擎 - MyISAM 的读取性能

加载中