下载
中文
注册
服务器重启后K8s重启失败

服务器重启后K8s重启失败

2025/01/26

141

暂无评分
我要评分

问题信息

问题来源产品大类关键字
官方集群调度重启、k8s

问题现象描述

服务器重启后K8s重启失败,执行kubectl get pod命令提示错误信息如下。

The connection to the server xxx.xxx.xxx.xxx:6443 was refused - did you specify the right host or port?

执行free -m命令查看swap未关闭,现象如下。

total    used     free   shared     buff/cache    available
Mem:           773737    5373   766172        4           2192       765453
Swap:           38146       0    38146

原因分析

swap未关闭。

解决措施

  1. 执行以下命令,关闭swap。
    swapoff -a
  2. 等待K8s启动后,执行以下命令。
    kubectl get pod

    返回结果示例如下,表示正常。

    NAME                                 READY    STATUS    RESTARTS    AGE
    hccl-controller-767f45c6b5-srkr4     1/1      Running   10          46h
    tjm-6ff5f74865-wh6nm                 1/1      Running   0           5s

如需使配置永久生效,请继续执行以下操作。

  1. 分别执行以下命令,创建sh文件。
    mkdir -p /usr/local/scripts/
    vim /usr/local/scripts/dls_swap_check.sh
  2. 在sh文件中写入以下内容。
    #!/bin/bash
    
    function check_swap() {
        swap_total=1
        sleep 10
        while [ "$swap_total" != "0" ]; do
            swap_total=$(free -m | grep -i swap | awk  '{ print $2 }')
            echo "The swap total: $swap_total." > /dev/kmsg
            swapoff -a
            sleep 5
        done
    }
    
    check_swap &
    echo 0
  3. 执行以下命令,修改sh文件权限。
    chmod 750 /usr/local/scripts/dls_swap_check.sh
  4. 执行以下命令,编辑rc.local文件。
    vi /etc/rc.local
  5. 在exit 0前添加以下内容。
    /usr/local/scripts/dls_swap_check.sh
    exit 0

本页内容