【kubernetes】修复 linux 服务器重启后,kubelet 启动失败的问题

简介: 【kubernetes】修复 linux 服务器重启后,kubelet 启动失败的问题

正文


一、swap分区未关闭 导致的启动失败。


因为挂载硬盘的问题,我重启了一下服务器,结果服务器启动完成了,kubelet 服务却挂掉了,报错如下:

[root@k8s2 tmp]# systemctl status kubelet
 kubelet.service - Kubernetes Kubelet Server
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Thu 2022-11-24 11:02:16 CST; 421ms ago
  Process: 9236 ExecStart=/usr/bin/kubelet $KUBELET_ARGS (code=exited, status=1/FAILURE)
 Main PID: 9236 (code=exited, status=1/FAILURE)
Nov 24 11:02:16 k8s2 systemd[1]: Unit kubelet.service entered failed state.
Nov 24 11:02:16 k8s2 systemd[1]: kubelet.service failed.
Nov 24 11:02:16 k8s2 systemd[1]: kubelet.service holdoff time over, scheduling restart.
Nov 24 11:02:16 k8s2 systemd[1]: Stopped Kubernetes Kubelet Server.
Nov 24 11:02:16 k8s2 systemd[1]: start request repeated too quickly for kubelet.service
Nov 24 11:02:16 k8s2 systemd[1]: Failed to start Kubernetes Kubelet Server.
Nov 24 11:02:16 k8s2 systemd[1]: Unit kubelet.service entered failed state.
Nov 24 11:02:16 k8s2 systemd[1]: kubelet.service failed.
[root@k8s2 tmp]# journalctl -xu kubelet -f
-- Logs begin at Thu 2022-11-24 10:53:58 CST. --
Nov 24 11:02:16 k8s2 kubelet[9236]: E1123 22:02:16.731284    9236 run.go:74] "command failed" err="failed to run Kubelet: running with swap on is not supported, please disable swap! or set --fail-swap-on flag to false. /proc/swaps contained: [Filename\t\t\t\tType\t\tSize\tUsed\tPriority /dev/dm-1                               partition\t4194300\t0\t-2]"
Nov 24 11:02:16 k8s2 systemd[1]: kubelet.service: main process exited, code=exited, status=1/FAILURE
Nov 24 11:02:16 k8s2 systemd[1]: Unit kubelet.service entered failed state.
Nov 24 11:02:16 k8s2 systemd[1]: kubelet.service failed.

提取一下报错信息:err="failed to run Kubelet: running with swap on is not supported, please disable swap

意思就是说:请关闭 swap 分区。我一想:我安装kubelet 时,已经执行过 swapoff -a 关闭过一次了,咋又让我关闭。后来网上查了下,发现得永久关闭才行。


解决办法:

swapoff -a
vim /etc/fstab

/etc/fstab 文件里的 swap 那一行给注释掉。

#
# /etc/fstab
# Created by anaconda on Mon Nov  7 00:37:04 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=bc62c885-78ff-45ae-9670-fc26d9829e5e /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=55421852-192f-4d50-86db-d65b0e8c79e6 /var/lib/containerd xfs defaults 0 0

OK了。


二、systemd 启动顺序导致的失败


今天重启服务器又发现 kubelet 没有自动启动成功,报错如下:

kubelet.service - Kubernetes Kubelet Server
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Fri 2022-11-25 19:34:10 CST; 2min 42s ago
  Process: 1153 ExecStart=/usr/bin/kubelet $KUBELET_ARGS (code=exited, status=1/FAILURE)
 Main PID: 1153 (code=exited, status=1/FAILURE)
Nov 25 19:34:10 k8s2 kubelet[1153]: }. Err: connection error: desc = "transport: Error while dialing dial unix /run/containerd/containerd.sock: connect: no such file or directory"
  • 意思是说,containerd 还没起来。


解决办法


/usr/lib/systemd/system/kubelet.service 里的Unit.After 改成 After=containerd.target,我这里修改之前的值是After=docker.target(升级kubernetes 移除docker 时,忘记修改这儿了)。

改完就OK了。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
7月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
9月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
1603 21
|
8月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
814 13
|
8月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
2794 0
|
10月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
543 24
|
8月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
831 0
|
10月前
|
存储 安全 Ubuntu
从Linux到Windows:阿里云服务器系统镜像适配场景与选择参考
阿里云为用户提供了丰富多样的服务器操作系统选择,以满足不同场景下的应用需求。目前,云服务器的操作系统镜像主要分为公共镜像、自定义镜像、共享镜像、镜像市场和社区镜像五大类。以下是对这些镜像类型的详细介绍及选择云服务器系统时需要考虑的因素,以供参考。
|
9月前
|
Linux
Linux下版本控制器(SVN) -服务器端环境搭建步骤
Linux下版本控制器(SVN) -服务器端环境搭建步骤
386 0
Linux下版本控制器(SVN) -服务器端环境搭建步骤
|
11月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
793 28
|
10月前
|
数据挖掘 Linux 数据库
服务器数据恢复—Linux系统服务器数据恢复案例
服务器数据恢复环境: linux操作系统服务器中有一组由4块SAS接口硬盘组建的raid5阵列。 服务器故障: 服务器工作过程中突然崩溃。管理员将服务器操作系统进行了重装。 用户方需要恢复服务器中的数据库、办公文档、代码文件等。