pod被驱逐追溯根因

背景

收到pod报警,看到其状态是error,新的pod又在另外一台机器上起来了。

原因分析

describe pod看到pod被驱逐

Status:           Failed
Reason:           Evicted
Message:          The node was low on resource: ephemeral-storage. Container XXXX was using 151224Ki, which exceeds its request of 0.

pod因为临时存储ephemeral-storage不足超过了node的硬驱逐策略,导致pod被驱逐。

evictionHard:memory.available: 100Minodefs.available: 10%

node节点是用华为云CCE nodepool 管理的,创建node节点时,默认100GB的数据存储SSD。

在这里插入图片描述

到这里有两个疑问

  1. df -h 的数据盘使用率不到70%。为何会超过硬限制而被驱逐呢?
  2. 这100GB 是如何分配的呢?临时存储占多少呢?

要解决这两个问题,需要分清楚pod使用存储的几种方式

  • emptyDir
  • pvc
  • localhost node的存储

这个pod用的emptyDir,也就是这个空间不足导致pod被驱逐。

根因

华为云 CCE将数据盘空间默认划分为两块

一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;

另一块用于Kubelet组件和EmptyDir临时存储等。容器引擎空间的剩余容量将会影响镜像下载和容器的启动及运行。

  • 容器引擎和容器镜像空间(默认占90%):用于容器运行时工作目录、存储容器镜像数据以及镜像元数据。
  • Kubelet组件和EmptyDir临时存储(默认占10%):用于存储Pod配置文件、密钥以及临时存储EmptyDir等挂载数据。

容器存储的rootfs是overlayfs。容器引擎和容器镜像空间(默认占90%)都在/var/lib/docker(或者/var/lib/containerd)目录下。

在这里插入图片描述

这个就解释了签名两个疑问。

被驱逐的根因就是vgpaas-kubernetes 空间不足10%,pod被驱逐了。
在这里插入图片描述

解决

可以看到华为云将100GB的SSD做了raid,用lvm来管理存储。

控制台扩容

控制台扩容后lsblk就可以看到sdb大小已经变化了,需要扩展磁盘分区和文件系统才可以使用。

$ lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                   8:0    0   50G  0 disk
└─sda1                8:1    0   50G  0 part /
sdb                   8:16   0  160G  0 disk
├─vgpaas-dockersys  253:0    0   90G  0 lvm  /var/lib/containerd
└─vgpaas-kubernetes 253:1    0   10G  0 lvm  /mnt/paas/kubernetes/kubelet/pods/7704d6ff-d17a-4ac1-aea5-ac5d3473ac5b/volume-subpaths/ems-front/ems-front/0/mnt/paas/kubernetes/kubelet/pods/71f475b3-864d-45a1-a1c7-3ac312f1f356/volume-subpaths/ems-common-front/ems-common-front/1/mnt/paas/kubernetes/kubelet/pods/82325d8d-a562-4d6c-8fc3-415657dafeff/volume-subpaths/digital-twin-platform/digital-twin-platform/0/mnt/paas/kubernetes/kubelet/pods/e6b6e8d4-bc28-4d14-b127-cc4124b76dfa/volume-subpaths/iotdb-datanode-env/iotdb-confignode/2/mnt/paas/kubernetes/kubelet/pods/0e91bbdd-2396-4f75-b4ec-3d731178b0f4/volume-subpaths/kong-conf/proxy/9/mnt/paas/kubernetes/kubelet/pods/0e91bbdd-2396-4f75-b4ec-3d731178b0f4/volume-subpaths/header-filter/proxy/5/mnt/paas/kubernetes/kubelet/pods/0e91bbdd-2396-4f75-b4ec-3d731178b0f4/volume-subpaths/header-filter/proxy/4/mnt/paas/kubernetes/kubelet/pods/0e91bbdd-2396-4f75-b4ec-3d731178b0f4/volume-subpaths/base64-decode/proxy/3/mnt/paas/kubernetes/kubelet/pods/0e91bbdd-2396-4f75-b4ec-3d731178b0f4/volume-subpaths/base64-decode/proxy/2/mnt/paas/kubernetes/kubelet/pods/0e91bbdd-2396-4f75-b4ec-3d731178b0f4/volume-subpaths/method-rewrite/proxy/1

2.pvresize 扩容该云硬盘对应的物理卷

[09-12 17:11:25] root@ems-plus-uat-node3:~
$ pvdisplay--- Physical volume ---PV Name               /dev/sdbVG Name               vgpaasPV Size               100.00 GiB / not usable 4.00 MiBAllocatable           yesPE Size               4.00 MiBTotal PE              25599Free PE               1Allocated PE          25598PV UUID               L9FZIX-L2bg-Dwq6-mtme-uHZ7-EFey-dxEDr4# 扩容该云硬盘对应的物理卷
$ pvresize -v /dev/sdbResizing volume "/dev/sdb" to 335544320 sectors.Resizing physical volume /dev/sdb from 25599 to 40959 extents.Updating physical volume "/dev/sdb"Archiving volume group "vgpaas" metadata (seqno 3).Physical volume "/dev/sdb" changedCreating volume group backup "/etc/lvm/backup/vgpaas" (seqno 4).1 physical volume(s) resized or updated / 0 physical volume(s) not resized[09-12 17:11:49] root@ems-plus-uat-node3:~
$ pvdisplay--- Physical volume ---PV Name               /dev/sdbVG Name               vgpaasPV Size               <160.00 GiB / not usable 3.00 MiBAllocatable           yesPE Size               4.00 MiBTotal PE              40959Free PE               15361Allocated PE          25598PV UUID               L9FZIX-L2bg-Dwq6-mtme-uHZ7-EFey-dxEDr4

3. lvextend 扩容逻辑分区

$ lvsLV         VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdockersys  vgpaas -wi-ao---- <90.00gkubernetes vgpaas -wi-ao---- <10.00g# 对/dev/vgpaas/kubernetes 逻辑分区增加40GB,vg中剩余20GB,vgs可以看到剩余的
$ lvextend -L +40G /dev/vgpaas/kubernetesSize of logical volume vgpaas/kubernetes changed from <10.00 GiB (2559 extents) to <50.00 GiB (12799 extents).Logical volume vgpaas/kubernetes successfully resized.lvsLV         VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdockersys  vgpaas -wi-ao---- <90.00gkubernetes vgpaas -wi-ao---- <50.00gvgsVG     #PV #LV #SN Attr   VSize    VFreevgpaas   1   2   0 wz--n- <160.00g 20.00g

4. resize2fs 格式化逻辑分区

ext4的文件系统用resize2fs, xfs fs用xfs_growfs

$ df -h
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vgpaas-kubernetes  9.8G  3.6G  5.8G  39% /mnt/paas/kubernetes/kubelet$ resize2fs /dev/vgpaas/kubernetes
resize2fs 1.46.4 (18-Aug-2021)
Filesystem at /dev/vgpaas/kubernetes is mounted on /mnt/paas/kubernetes/kubelet; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 7
The filesystem on /dev/vgpaas/kubernetes is now 13106176 (4k) blocks long.$ df -HT /dev/mapper/vgpaas-kubernetes
Filesystem                    Type  Size  Used Avail Use% Mounted on
/dev/mapper/vgpaas-kubernetes ext4   53G  3.8G   47G   8% /mnt/paas/kubernetes/kubelet

参考

cce文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/422691.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VulnHub DC-1-DC-7靶机WP

VulnHub DC系列靶机&#xff1a;https://vulnhub.com/series/dc,199/ # VulnHub DC-1 nmap开路获取信息 Nmap scan report for 192.168.106.133 Host is up (0.00017s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 1…

用手机剪辑视频素材从哪里找?用手机视频素材库分享

如何找到优质的视频剪辑素材呢&#xff1f;这里有几个提供高质量视频素材的优秀网站&#xff0c;帮助你的视频制作更上一层楼。 蛙学网 蛙学网是视频素材领域的佼佼者&#xff0c;提供了从自然风景到城市生活&#xff0c;再到动物世界的广泛视频素材。蛙学网的素材种类丰富&am…

语音克隆神器GPT-Sovits-V2 Mac版整合包!

语音克隆神器GPT-Sovits-V2 Mac版整合包&#xff01; Mac M1/M2/M3芯片福音&#xff01;语音克隆神器GPT-Sovits-V2整合包来了&#xff01; AI语音克隆黑科技&#xff0c;Mac也能轻松玩转&#xff01; 还在羡慕别人用AI语音克隆技术&#xff1f;还在苦恼Mac配置环境的复杂&am…

Mysql连接不上的问题?

Mysql服务器本地能访问&#xff0c;但是外部连接报错如下&#xff1a;显然我也知道这就是一个权限问题&#xff0c;但是在网上百度的方法要么就是不生效&#xff0c;要么就是执行命令报错&#xff0c;很抓狂&#xff5e;这里提供精准的解决方案&#xff1a;SELECT User, Host F…

Linux的历史,版本,Linux的环境安装、简单学习4个基本的Linux指令、创建普通用户等的介绍

文章目录 前言一、Linux的历史二、版本三、Linux的环境安装1. 腾讯云服务器的申请2. xshell的安装与使用 四、 简单学习4个基本的Linux指令1. ls2. pwd3. mkdir4. cd 五、创建普通用户总结 前言 Linux的历史&#xff0c;版本&#xff0c;Linux的环境安装、简单学习4个基本的Li…

OPENAIGC开发者大赛企业组银奖 | Gambit-AI智能合同审核助手

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给您…

机器学习--支持向量机(SVM)

支持向量机(线性) S V M SVM SVM 引入 S V M SVM SVM 用于解决的问题也是 c l a s s i f i c a t i o n classification classification&#xff0c;这里 y ∈ { − 1 , 1 } y \in \{-1, 1\} y∈{−1,1} 比如说这样一个需要分类的训练数据&#xff1a; 我们可以有很多直线来…

最新kubernetes的安装填坑之旅(新手篇)

Kubernetes&#xff08;常简称为 K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序&#xff0c;lz也不知道哪根脑经秀逗了&#xff0c;竟然妄挑战学习一下&#xff0c;结果折戟沉沙&#xff0c;被折腾的欲仙欲死&#xff0c;不过…

安卓学习笔记-unity调用原生opencv的sdk

unity调用原生opencv的sdk 问题描述解决思路解决过程准备工作opencv安卓原生sdk找到人脸检测的代码&#xff0c;检测成功后发送消息给unityunity接收消息 遇到的问题问题一问题二问题三 如何解决遇到的问题问题一&#xff1a;opencvactivity遮挡unity的界面问题问题二&#xff…

《OpenCV计算机视觉》—— 对图片进行旋转的两种方法

文章目录 一、用numpy库中的方法对图片进行旋转二、用OpenCV库中的方法对图片进行旋转 一、用numpy库中的方法对图片进行旋转 numpy库中的 np.rot90 函数方法可以对图片进行旋转 代码实现如下&#xff1a; import cv2 import numpy as np# 读取图片 img cv2.imread(wechat.jp…

Golang | Leetcode Golang题解之第400题第N位数字

题目&#xff1a; 题解&#xff1a; func findNthDigit(n int) int {d : 1for count : 9; n > d*count; count * 10 {n - d * countd}index : n - 1start : int(math.Pow10(d - 1))num : start index/ddigitIndex : index % dreturn num / int(math.Pow10(d-digitIndex-1)…

【三刷C语言】各种注意事项

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;C语言入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1.…

无线领夹麦克风怎么挑选?选购麦克风必看的避坑指南

在这个视频自媒体行业的蓬勃发展的时代&#xff0c;麦克风对于自媒体行业可以说是必不可少的装备了&#xff0c;在各大视频博主、Up主、主播通过互联网输出自己想法的同时&#xff0c;一个好的麦克风可以让事情事半功倍&#xff0c;通过麦克风提高收音音质&#xff0c;减少后期…

数据结构算法——排序算法

1.排序 1.选择排序 不稳定&#xff0c;一般不用&#xff0c;基本排序 思路&#xff1a;过滤数组&#xff0c;找到最小数&#xff0c;放在前面。 不稳&#xff1a;导致原本在前的数据移动到后面。 int arr[];for(i0;i<arr.length-1;i){int smallesti; for(ji1;j<leng…

【OpenCV】灰度化和二值化处理图像

文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…

SOMEIP_ETS_106: SD_ClientServiceSubscribeEventgroup

测试目的&#xff1a; 验证DUT在客户端模式下能够订阅测试器提供的ETS&#xff08;Enhanced Testability Service&#xff09;服务。 描述 本测试用例旨在确保DUT在客户端模式下能够通过发送FindService消息发现服务&#xff0c;并在接收到测试器提供的OfferService消息后&a…

大模型如何生成下一个token--解码策略

Background 生成模型目前主要使用自回归&#xff08;Autoregressive&#xff09;模型&#xff0c;通过上文信息预测下文信息&#xff0c;如GPT系列&#xff1b; BERT系列使用自编码&#xff08;AutoEncode&#xff09;模型&#xff0c;在输入中随机mask一部分token&#xff0c…

关于ansible自动化运维工具

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

HCIE和CCIE,哪个含金量更高点?

在现在内卷的大环境下&#xff0c;技术岗可谓人人自危&#xff0c;也因此各种认证的重视程度直线升高。 特别是华为认证的HCIE和思科认证的CCIE&#xff0c;它们都代表着网络技术领域的顶尖水平。 但面对这两个高含金量的认证&#xff0c;不得不让人问出这个问题&#xff1a;同…

关于Hadoop重新格式化之后集群的崩溃问题

关于Hadoop重新格式化之后集群的崩溃问题 文章目录 关于Hadoop重新格式化之后集群的崩溃问题写在前面版本信息实验场景 HiveHive交互段查询报错原因分析解决方法手动启动元数据服务重新初始化元数据库 HBase清理虚拟机磁盘参考资料 写在前面 版本信息 Linux版本&#xff1a;C…