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日

相关文章

  • dat文件用什么软件打开

    打开.dat文件需要以下两个步骤: 确定.dat文件的类型 选择使用合适的应用程序打开它 下面,我将详细讲解每个步骤。 第一步:确定.dat文件类型 .dat文件没有严格的文件类型,因此需要确定文件类型才能选择正确的应用程序打开它。 以下是一些常见的.dat文件类型: 数据库文件,例如Winmail.dat、Chrome Cookie文件等 游戏数据文件,例…

    其他 2023年4月16日
    00
  • C:\Users\用户名\AppData\Roaming里面的文件可以删除吗?

    当我们在电脑上使用软件时,这些软件会在我们的用户目录下的“AppData”文件夹中生成许多各种各样的文件。其中,“Roaming”文件夹是用来储存程序数据的,这些数据包含程序运行所需的配置文件、缓存和日志等信息。但有些人会发现这里面的文件夹占用了很大的空间,甚至可能会影响到电脑的运行速度,因此想删除掉一些无用的文件。但是,请注意以下的注意事项: 备份重要数据…

    other 2023年6月27日
    00
  • 浅谈java 重写equals方法的种种坑

    浅谈Java重写equals方法的种种坑 介绍 在Java中,Object类中的equals方法是用于判断两个对象是否相等的。而且在大多数情况下,我们需要重写该方法来根据业务需要自定义判断两个对象是否相等。但是,重写equals方法并不容易,有一些坑需要我们注意。 重写equals方法的步骤 为了重写equals方法,我们需要遵循以下几个步骤: 首先比较对象…

    other 2023年6月27日
    00
  • jQuery实现选项卡嵌套效果

    jQuery实现选项卡嵌套效果攻略 选项卡嵌套效果是一种常见的网页交互效果,可以让用户在多个层级的选项卡之间进行切换。在本攻略中,我们将使用jQuery库来实现这个效果。下面是详细的步骤和示例说明。 步骤一:HTML结构 首先,我们需要创建一个合适的HTML结构来容纳选项卡和对应的内容。以下是一个简单的示例: <div class=\"tab…

    other 2023年7月27日
    00
  • vue.js管理后台table组件封装的方法

    我来为你讲解 “Vue.js管理后台table组件封装的方法”的完整攻略。 一、背景介绍 在管理后台开发中,表格展示是必不可少的控件,但是我们往往还需要对表格做各种处理,例如支持多选、排序等等,因此将表格进行封装,可以提高开发效率,简化代码复杂度。 二、封装思路 我们将 Table 的一些常用功能进行封装,例如: 支持多选/单选 支持数据的增删改查操作 支持…

    other 2023年6月25日
    00
  • realme x如何打开开发者模式?realme x开发者选项开启教程

    当你需要进行一些高级设置或者调试手机出现问题时,很有可能需要打开开发者模式。下面详细介绍realme x如何打开开发者模式,以及如何开启realme x的USB调试功能。 打开realme x的开发者模式 打开realme x的设置界面 向下翻滚寻找“关于手机”选项,点击进入 在“关于手机”界面里找到“版本号”并连续点击7次该项 点击7次后,系统就会弹出“您…

    other 2023年6月26日
    00
  • 一文带你分清C++的定义,声明和初始化

    下面我为大家详细讲解一篇关于C++中定义、声明和初始化的文档。 一、定义、声明和初始化的概念介绍 在C++中,定义、声明和初始化是非常基础的概念,因此它们之间的区别必须清晰明了才能写出正确的代码。 定义:定义是为一个对象分配内存空间并给它起一个名字。定义通常会涉及到类型、名字和存储器分配。 声明:声明是使用一个名字来表示对象,通常声明只要指定类型和名字就可以…

    other 2023年6月20日
    00
  • WPS for Linux(ubuntu)字体配置(字体缺失解决办法)

    WPS for Linux(ubuntu)字体配置(字体缺失解决办法) WPS是一款跨平台的办公软件,支持Windows、Linux和macOS等操作系统。在Linux系统中,WPS for Linux(ubuntu)字体配置是一个常见的问题,因为WPS在Linux系统中需要依赖一些字体库,如果缺失这些字体库,就会导致WPS无法正常显示中文等内容。本文将介绍…

    other 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部