容器升级内核及重启后遇到的问题

前景描述

公司10台物理服务器,系统为Redhat7.9,因安装K8S,需将内核升级至3.10.0-1060以上,并修改相关参数,否则会造成内存泄露问题。

操作步骤

需要用到的升级包及顺序如下

linux-firmware-20190429-72.gitddde598.el7.noarch.rpm

kernel-tools-libs-3.10.0-1062.4.1.el7.x86_64.rpm

kernel-tools-3.10.0-1062.4.1.el7.x86_64.rpm

kernel-headers-3.10.0-1062.4.1.el7.x86_64.rpm

kernel-devel-3.10.0-1062.4.1.el7.x86_64.rpm

kernel-3.10.0-1062.4.1.el7.x86_64.rpm

file

问题汇总

  • 重启后服务器长时间无法SSH链接且无法PING通,登陆BMC控制台查看,发现已进入系统引导界面并卡在“start crash recovery kernel arming.ails.nt. certficates”
  • 通过卡主此行描述得知“Crash Recovery与kdump服务有关”,进行查阅资料得知需在/etc/default/grub中加入“crashkernel”参数
  • 我的服务器grub文件中未发现自动配置的“crashkernel=auto”参数,所以缺少此参数,故重启后停留在“start crash recovery kernel arming.ails.nt. certficates”界面。

Kdump服务及CrashKernel参数

kdump
  • 什么是kdump
    kdump是一种先进的基于 kexec 的内核崩溃转储机制。当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。
  • 什么是Kexec?
    kexec 是一个快速启动kernel的机制,它运行在某一正在运行的kernel中,启动一个新的kernel(这里是crash kernel),而且不用重新经过BIOS 就可以完成启动。因为一般BIOS都会花费很长的时间,尤其是在大型并且同时连接许多外部设备的Server上的环境下,BIOS会花费更多的时间。
CrashKernel
  • 如果系统的内存 <= 8 GB 对kdump kernel不会保留任何内容;也就是说,crashkernel=auto 等于关掉了机器上的kdump功能。
  • 如果系统的内存 > 8 GB 但是 <= 16 GB,crashkernel=auto会保留256M,等同于crashkernel=256M;
  • 如果系统内存> 16GB, crashkernel=auto会保留512M, 等同于crashkernel=512M

解决方法

1.开机进入系统引导菜单界面,并进入单用户模式
2.进入单用户后进行如下操作:

mount -o remount,rw /sysroot
chroot /sysroot
vim /etc/default/grub

3.在lv或硬盘分区quiet前加入“crashkernel=512M”即可。

[c-downbtn type=”123″ url=”https://www.123pan.com/s/Iu2eVv-zSXod.html” pwd=””]文章中RPM包下载地址[/c-downbtn]

原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2022/07/09/%e5%ae%b9%e5%99%a8%e5%8d%87%e7%ba%a7%e5%86%85%e6%a0%b8%e5%8f%8a%e9%87%8d%e5%90%af%e5%90%8e%e9%81%87%e5%88%b0%e7%9a%84%e9%97%ae%e9%a2%98/

(0)
AIRFAIRF
上一篇 2022年2月18日
下一篇 2022年8月1日

相关推荐

  • Docker基础命令(常用的docker命令)

    镜像相关命令 搜索镜像 # 从网络上查找需要的镜像 docker search 镜像名称 docker 搜索镜像 拉取镜像 # 从Docker的仓库下载镜像到本地,镜像名称格式为名…

    ChatGPT 2022年11月28日
  • 【一】K8s的组件及概念

    K8s的组件 master: 集群的控制平面,负责集群的决策 ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制 Scheduler…

    2023年9月17日
  • K8S一键搭建集群脚本

    #!/bin/bash # Author: Nuoyo # mail:2469329338@qq.com RED=”33[31m” # Error message GREEN=”3…

    2023年9月17日
  • 通过Docker创建CentOS系统容器的步骤

    前言 先安装Docker,使用文内的脚本可以快速创建CentOS 7.8虚拟系统集群,并通过SSH(Secure Shell)远程工具连接。 创建桥接网络,方便容器间通信 指令格式…

    ChatGPT 2022年12月4日
  • K8S常见面试题总结

    1.1.什么是k8s? K8s是kubernetes的简称,其本质是一个开源的容器编排工具,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容…

    2023年9月17日
  • 【四】K8S_Deployment

    Deployment作用 Kubernetes(K8S)中的 Deployment 是用于定义和管理应用程序部署的重要资源对象。Deployment 在 K8S 中具有以下用途和相…

    2023年9月17日
  • Kubernetets-Cka考试题库

    本次测试的所有问题都必须在指定的cluster配置环境中完成。为尽量减少切换,系统已对问题进行分组,同一cluster内的所有问题将连续显示。 开启TAB补全 做题前先配置k8s自…

    ChatGPT 2022年2月18日
  • 【六】K8S_Ingress | Service的统一网关入口

    Ingress简介 在Kubernetes(K8S)中,Ingress的主要用途是管理和暴露集群中的HTTP和HTTPS服务。它充当了从集群外部流量到集群内部服务的入口,并提供了一…

    2023年9月17日
  • k8s集群关机后,如何解决 kubernetes 重启起不来的问题

    前景介绍 使用本地vmware搭建集群后,直接把vmware关机,然后再次启动后提示集群异常,所有容器状态为exited,并报错 The connection to the ser…

    2023年9月17日
  • CentOS 使用 Kubeadm 方式搭建 K8s 集群,一次性成功!

    Kubeadm 方式搭建 K8s 集群 1.27.0 版本,一次性成功,具体步骤如下: 集群规划及架构 系统初始化准备(所有节点同步操作) 安装并配置cri-dockerd插件 安…

    2023年11月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注