K8s解决主机重启后kubelet无法自动启动问题(推荐)

K8s解决主机重启后kubelet无法自动启动问题攻略

问题描述

在Kubernetes集群中,有时候会出现主机重启后kubelet无法自动启动的问题。当节点重启后kubelet会自动重启并重新加入Kubernetes集群,但是有时候会出现节点重启后kubelet无法自动启动的情况,导致节点无法加入集群。

问题解决策略

为了解决该问题,我们可以尝试以下两种策略:

1. 开启kubelet的重启策略

如果Kubernetes集群是通过kubeadm工具创建的,可以通过修改kubelet.service文件来开启kubelet的重启策略。通过该策略,Kubernetes集群中的每个节点都会在系统重启后自动启动kubelet服务。具体步骤如下:

  1. 使用以下命令打开kubelet.service文件:sudo vim /etc/systemd/system/kubelet.service
  2. 修改ExecStart一行,加入参数"--fail-swap-on=false",如下所示:

ExecStart=/usr/bin/kubelet --fail-swap-on=false --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --image-pull-progress-deadline=2m --kubelet-cgroups=/systemd/system.slice --runtime-request-timeout=15m

  1. 新增以下一行,开启kubelet的重启策略:

Restart=always

  1. 按下Esc键后输入:wq保存并退出文件编辑模式。
  2. 执行以下命令重新加载全部配置文件,以应用更改:sudo systemctl daemon-reload
  3. 执行以下命令重启kubelet服务,以应用更改:sudo systemctl restart kubelet

2. 开启systemd的默认参数

还可以通过开启systemd的默认参数来解决节点重启后kubelet无法自动启动的问题。具体步骤如下:

  1. 使用以下命令打开kubelet.service.d文件夹下的10-kubeadm.conf文件:sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
  2. 添加以下两行配置参数,并保存文件:

Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"

  1. 执行以下命令重新加载全部配置文件,以应用更改:sudo systemctl daemon-reload
  2. 执行以下命令重启kubelet服务,以应用更改:sudo systemctl restart kubelet

示例说明

示例1

按照第一种策略修改kubelet.service文件,开启kubelet的重启策略:

$ sudo vim /etc/systemd/system/kubelet.service

修改后的ExecStart行如下所示:

ExecStart=/usr/bin/kubelet --fail-swap-on=false --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --image-pull-progress-deadline=2m --kubelet-cgroups=/systemd/system.slice --runtime-request-timeout=15m

新增Restart=always一行,开启kubelet的重启策略:

Restart=always

按下Esc键后输入:wq保存并退出文件编辑模式。

重新加载全部配置文件:

$ sudo systemctl daemon-reload

重启kubelet服务:

$ sudo systemctl restart kubelet

示例2

按照第二种策略开启systemd的默认参数:

$ sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

添加以下两行配置参数:

Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"

重新加载全部配置文件:

$ sudo systemctl daemon-reload

重启kubelet服务:

$ sudo systemctl restart kubelet

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:K8s解决主机重启后kubelet无法自动启动问题(推荐) - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • go自动下载所有的依赖包go module使用详解

    下面是完整攻略: 介绍 在 Go 1.11 版本以后,官方引入了 Go module 管理依赖包的方式。当我们在使用特定版本的 package 时,Go module 会自动下载所有依赖的 package,而无需将他们与我们的工程代码一起打包发源文件。在本教程中,我们将详细讲解 Go module 如何自动下载所有的依赖 package 的过程。 前置要求 …

    other 2023年6月27日
    00
  • java实现点击按钮事件弹出子窗口

    下面是Java实现点击按钮事件弹出子窗口的完整攻略: 步骤一:准备工作 在Java中实现点击按钮事件弹出子窗口,首先需要进行一些准备工作,包括创建主窗口和子窗口等。 1.1 创建主窗口 可以使用Swing库中的JFrame类来创建一个主窗口,示例代码如下: import javax.swing.*; public class MainFrame extend…

    other 2023年6月26日
    00
  • iOS8.4怎样精简系统?iOS8.4越狱删除应用精简系统教程

    iOS8.4是一款比较老的iOS版本了,随着时间的推移,手机中安装的软件越来越多,导致系统占用了越来越大的空间,而iOS8.4的容量非常小,因此可能会出现空间不足的情况。本篇文章将介绍一些方法来帮助用户精简iOS8.4系统。 iOS8.4精简系统方法 方法1:使用手机自带的清理工具 在iOS8.4中,系统自带了清理工具,可以用来清理临时文件等占用手机存储空间…

    other 2023年6月27日
    00
  • python通过函数属性实现全局变量的方法

    Python通过函数属性实现全局变量的方法 在Python中,函数属性可以用来实现全局变量的效果。函数属性是指函数对象的属性,可以在函数内部定义,并在函数外部访问。通过将变量作为函数属性,可以在函数调用之间保持变量的状态,实现全局变量的效果。 下面是实现全局变量的方法的详细攻略: 步骤1:定义函数并设置函数属性 首先,我们需要定义一个函数,并在函数内部设置函…

    other 2023年7月29日
    00
  • CentOS命令行性能检测工具详解

    下面是“CentOS命令行性能检测工具详解”的完整攻略: CentOS命令行性能检测工具详解 为什么要进行性能检测? 在实际的开发、测试、维护、部署等工作中,我们经常会需要对所运行的系统和应用进行性能检测,以评估其性能瓶颈、寻找优化方案等。而对于类Unix系统(如CentOS)中的命令行应用程序而言,我们可以通过一系列命令行工具进行性能检测,其中包括: to…

    other 2023年6月27日
    00
  • 打印机只打印半截怎么办 打印机打印不全的解决办法

    打印机只打印半截怎么办 当打印机只能打印出纸张的一半,或者有一部分缺失时,我们可以采用以下几种方法来解决。 1. 清洁打印头 打印头可能会有堵塞或者杂物导致印刷不完整。可以尝试清洁打印头来解决问题。 步骤: 打印机应该处于关闭状态。取下打印头,并用软布轻轻地擦拭打印头清洁刀片。千万不要用手指直接触摸打印头。 拆卸打印头,将其放置于纯净水中慢慢地浸泡10分钟,…

    other 2023年6月27日
    00
  • Sybase:循环调用存储过程

    Sybase:循环调用存储过程的完整攻略 在Sybase中,存储过程是一种常用的操作数据的方式。有时候需要在存储过程中循环调用另一个存储过程,以实现一些特定的功能。本文将为您提供一份Sybase:循环调用存储过程的完整攻略,包括两个示例说明。 循环调用存储过程 在Sybase中,可以按照以下步骤循环调用存储过程: 创建存储过程:创建需要循环调用的存储过程。 …

    other 2023年5月5日
    00
  • 浅谈excel开发:一excel开发概述

    浅谈Excel开发:一Excel开发概述 Excel作为一款广泛应用于办公场景的电子表格软件,其强大的数据处理能力和丰富的计算功能在各行各业中都得到了广泛的应用。同时,Excel的可编程性也为程序员们带来了无限的创作可能。本文将从Excel开发的角度来介绍Excel的相关知识和技能,帮助读者了解和掌握Excel开发的基本方法和技巧。 Excel开发入门 要想…

    其他 2023年3月29日
    00
合作推广
合作推广
分享本页
返回顶部