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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 【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了。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
19天前
|
存储 安全 Linux
|
5天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
31 3
|
10天前
|
Kubernetes Linux 测试技术
|
1月前
|
Linux
linux关机重启
linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘
|
1月前
|
Linux
linux关机重启
linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘
|
25天前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
284 1
|
1月前
|
Linux
linux关机重启
linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘
|
1月前
|
Linux
linux关机重启
linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘 linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘
|
1月前
|
Linux
linux关机重启
linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘
|
1月前
|
Linux
linux关机重启
linux关机重启 登录注销 shutdown -h now 立刻关机 shutdown -h 1 一分钟后重启 shutdown -r now 重启计算机 halt 关机 reboot 重启计算机 sync 内存数据同步到磁盘 linux关机重启 登录注销

热门文章

最新文章