k8s集群的节点重启后镜像丢失问题的排查过程

本文记录了一次在私有k8s集群中遇到的节点重启后镜像丢失问题的排查过程。问题由cri-o服务在启动时因缺少version文件而触发的清理操作引起。解决方案包括创建/var/lib/crio目录,更新crio配置文件以指定持久化version文件路径,并将crio版本升级到1.18以上。
摘要由CSDN通过智能技术生成

 

        在私有环境中搭建了k8s集群(opensuse15.1 + kubernetes 1.18 + cri-o 1.17),k8s和应用的镜像均在本地通过 podman 导入,

底层 OCI 使用的是 cri-o。

         在测试过程中发现每次 node 节点重启后都会有一些镜像丢失,基本上 kube-proxy 和 flannel 每次都会丢失,

有的时候会有更多的镜像丢失。分析这些丢失的镜像很有规律,不是随机丢的,也没有发现其他文件丢失的情况,所以排除文件系统故障,怀疑可能是某些进程干的。于是禁止了比较可疑的kubelet服务,再次重启发现没有丢失镜像。检查 /usr/lib/systemd/system/kubelet.service 文件,看到  ExecStart=/usr/bin/kubelet  ,这是个shell脚本,打开这个脚本加入一行 sleep 60,目的是系统启动后在启动真正的kubelet程序前我先检查一下镜像的情况:

#!/bin/sh
# Loader Script for Multi-Version Kubelet arrangement introduced to openSUSE in March 2020
sleep 60   ### 先休眠 60秒
source /etc/sysconfig/kubelet

if [ -z "$KUBELET_VER" ]      
then
   echo "ERROR: KUBELET_VER= not defined in /etc/sysconfig/kubelet"
   exit 1
else
   /usr/bin/kubelet$KUBELET_VER "$&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值