首页 > 其他分享 >kubernetes 集群 oom 导致集群无法访问

kubernetes 集群 oom 导致集群无法访问

时间:2024-01-02 12:36:42浏览次数:43  
标签:OOM 容器 oom 无法访问 apiserver kubelet 集群 内存 镜像


kubernetes 集群 oom 导致集群无法访问_kubernetes

现象

执行kubectl get node 无法获取集群状态。日志截图:

kubernetes 集群 oom 导致集群无法访问_容器_02


查看 message日志,发现报错存在OOM,并与应用测试的容器相关,截图如下:

kubernetes 集群 oom 导致集群无法访问_kubernetes_03

分析

首先,定位最初的oom发生的时间点,是2023年12月15日,如图

kubernetes 集群 oom 导致集群无法访问_云原生_04

按照正常逻辑来讲,应用实例做了 limit 限制,如果应用超出内存限制,应该被杀掉并且进行重新调度。
进一步发现,集群的 kube-apiserver 在2023年12月17日是挂掉了。当kube-apiserver挂掉时,Kubernetes的调度器和控制器无法与API服务器通信,这并不会导致Pod使用内存超出限制而被终止。
kubelet会采取以下行动之一:
l OOM(Out of Memory)Killing:如果容器无法分配更多的内存,并且超出了限制,kubelet可能会触发OOM Killer,终止该容器。这是Linux内核中的一项功能,用于防止系统内存耗尽。
l 重启容器:kubelet也可以选择重启超出内存限制的容器,以尝试解决内存问题。重启容器可以释放内存并清除可能导致内存泄漏或过度消耗的状态。

Kube-apiserver 挂掉的原因在日志中也明显可以看到是由于镜像没有正常拉取。

跟踪到最初镜像没有正常被拉取的时间。

综合分析,由于containerd 更改了存储目录和镜像仓库访问认证,镜像仓库的访问认证错误修改,导致集群无法正常拉取镜像。Kube-apiserver启动异常。导致当应用实例占用内存超出限制时,并没有被杀掉,kubelet触发OOM Killer。

参考:


标签:OOM,容器,oom,无法访问,apiserver,kubelet,集群,内存,镜像
From: https://blog.51cto.com/ghostwritten/9067596

相关文章

  • 使用容器快速在阿里云 ECS 多节点上搭建 Citus 12.1 集群
    阿里云ECS机器节点这里我们使用两台同一区域的ECS机器。机器配置:2核2G。(ps:阿里云99元一年的活动)一台安装coordinator(协调器),这里内网IP为172.18.60.11一台安装worker,这里内网IP为172.18.60.12操作系统两台机器分别安装了厂商的AlibabaCloudLinux3系统......
  • 一篇文章彻底搞懂TiDB集群各种容量计算方式
    背景TiDB集群的监控面板里面有两个非常重要、且非常常用的指标,相信用了TiDB的都见过:Storagecapacity:集群的总容量Currentstoragesize:集群当前已经使用的空间大小当你准备了一堆服务器,经过各种思考设计部署了一个TiDB集群,有没有想过这两个指标和服务器磁盘之间到底是啥关......
  • 一个 39.3T 的集群从TiDB v3.1.0迁移升级到 TiDB v7.1.2 的实践
    作者:xingzhenxiang集群目前情况数据39.3Ttidb版本数据导出方式选择1、BR这个版本刚开始支持,不知道有什么未知bug,暂时没有选择2、逻辑导出,首先考虑同版本发行对应的mydumper,出现tidbserver内存耗尽,放弃3、最后选择dumplingv7.1.2,看文档说事兼容以前版本导出命......
  • TiDB多集群监控部署方案实战
    作者:dba-kit1.单集群部署可选配置项TiDB在部署时候可以选择部署监控系统,可选配置有:monitoring_servers:包含Prometheus和NgMonitoring(用于支持TiDBDashboard中持续性能分析和TopSQL功能),详细见:官方文档-monitoring_serversgrafana_servers:部署Grafana的相关参数,详细......
  • Linux安装zookeeper(伪集群)
    环境:系统:AlibabaCloudLinux3(SoaringFalcon)jdk:jdk81.下载安装包zookeeper官网: https://zookeeper.apache.org/releases.html找到对应版本,这里以稳定版3.8.3为例,在节点上下载#wgethttps://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-......
  • 华为云耀云服务器L实例-大数据学习-单台服务器配置伪分布式模式hadoop集群
     华为云耀云服务器L实例-大数据学习-单台服务器配置伪分布式模式hadoop集群 产品官网:https://www.huaweicloud.com/product/hecs-light.html  今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心的华为云耀云服务器L实例为例,演示单台服务器配......
  • Kubernetes-集群Rook-Ceph快照
    部署条件Rookofficiallysupportsv1snapshotsforKubernetesv1.20+.Installthesnapshotcontrollerandsnapshotv1CRDasrequired.Moreinfocanbefoundhere.安装快照控制器和CRD:安装快照CRD:gitclonehttps://github.com/kubernetes-csi/external-snapshotter.git......
  • docker安装rabbitmq3.11.9镜像集群
    准备3台服务器安装配置镜像集群IP1:192.168.0.1IP2:192.168.0.2IP3:192.168.0.3yuminstall-ylrzsztelnetnciftopunzipyum-utilsepel-releasesystemctlstopfirewalld.service&&systemctldisablefirewalld.serviceyum-config-manager--add-repohttp://mirrors.aliyu......
  • 关于IDEA报 java: 无法访问java.lang.Record 找不到java.lang.Record的类文件
    IDEA一直报java:无法访问java.lang.Record  找不到java.lang.Record的类文件,但是我已经把所有的java配置改成了17。最后发现是pom文件中org.apache.maven.plugins配置没有改。属性修改如下:<configuration><compilerVersion>1.8</compilerVersion>-......
  • 华为云CCE集群健康中心:一个有专家运维经验的云原生可观测平台
    本文分享自华为云社区《新一代云原生可观测平台之华为云CCE集群健康中心》,作者:云容器大未来。"Kubernetes运维确实复杂,这不仅需要深入理解各种概念、原理和最佳实践,还需要对集群的健康状态、资源利用率、容器的稳定性等多个方面进行风险评估。当集群出现故障时,我们通常需要花费大量......