k8s自动清理pod脚本分享
检查会遇到集群节点内存消耗超过90%,我们可以筛选一些可以进行重启的pods,如脚本中涉及svc-开头的,进行触发即重启的shell编写。此项会涉及metrics组件需要安装。
#!/bin/bash# 设置内存使用率阈值为90%
MEMORY_THRESHOLD=90# 初始化一个数组来存储需要处理的节点名
EXCEED_NODES=()# 获取所有节点的内存使用信息
NODES=$(sudo kubectl top node)# 逐行处理节点信息
while IFS= read -r line; do# 跳过表头行if [[ $line =~ ^NAME ]]; thencontinuefi# 提取节点名称和内存使用百分比NODE=$(echo "$line" | awk '{print $1}')MEMORY_PERCENT=$(echo "$line" | awk '{print $4}' | tr -d '%')# 检查是否超过阈值if [[ $MEMORY_PERCENT -gt $MEMORY_THRESHOLD ]]; thenEXCEED_NODES+=("$NODE")echo "Node $NODE memory usage is over $MEMORY_THRESHOLD%, checking for svc- prefixed Pods..."elseecho "Node $NODE is within acceptable memory usage."fi
done <<< "$(echo "$NODES" | awk '/^[^[:space:]]/ {print}')"# 特定命名空间
NAMESPACE="test"# 对于每一个超过阈值的节点,查找并重启svc-开头的Pods
for NODE in "${EXCEED_NODES[@]}"; do# 获取该节点上所有名称以svc-开头的PodsPODS=$(sudo kubectl get pods -n $NAMESPACE -o wide | grep "$NODE" | grep "^.*\ssvc-" | awk '{print $1}')# 如果有符合条件的Pods,则尝试删除它们if [ -n "$PODS" ]; thenfor POD in $PODS; dosudo kubectl delete pod $POD -n $NAMESPACEecho "Deleted Pod $NAMESPACE/$POD"doneelseecho "No svc- prefixed Pods found on Node $NODE."fi
done# 输出最终状态
if [ ${#EXCEED_NODES[@]} -eq 0 ]; thenecho "No Pods deleted, all nodes are below the threshold."
elseecho "Some Pods were deleted due to high memory usage."
fi
相关文章:
k8s自动清理pod脚本分享
检查会遇到集群节点内存消耗超过90%,我们可以筛选一些可以进行重启的pods,如脚本中涉及svc-开头的,进行触发即重启的shell编写。此项会涉及metrics组件需要安装。 #!/bin/bash# 设置内存使用率阈值为90% MEMORY_THRESHOLD90# 初始化一个数组…...
Go并发编程的高级技巧——请求复制与限流
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在一些高性能应用场景中,快速响应是非常重要的目标。例如,当一个应用需要快速响应用户的HTTP请求,或从多个副本中检索数据时,如何优化请求处理成为关键。本文将讨论如何在Go语言中,通过并发和限流机制来实现…...
网站建设模板选择哪种
在选择网站建设模板时,需要考虑多个因素,包括网站的目的、受众、内容类型以及个性化需求等。以下是一些常见的网站建设模板类型,以及它们的特点,希望对你的选择有所帮助。 企业/商务模板: 企业和商务网站通常需要专业、…...
【linux】kill命令
kill 命令在 Linux 和类 Unix 系统中用于向进程发送信号,默认情况下是发送 SIGTERM(信号 15),请求程序终止运行。如果程序没有响应 SIGTERM 信号,可以使用 SIGKILL(信号 9)强制终止进程…...
Python基础 | 在虚拟环境中安装并在指定文件夹中打开Jupyter notebook
在虚拟环境中安装并在指定文件夹中打开Jupyter notebook 前言一、在虚拟环境下安装Jupyter notebook二、在指定路径下打开Jupyter notebook 前言 Jupyter Notebook 是一个基于 Web 的交互式计算环境,主要功能是将代码、文本、数学方程式、可视化和其他相关元素组合…...
1.Spring-容器-注册
一、Bean和获取Bean (1)创建IoC容器: SpringApplication.run(类名.class, args); ConfigurableApplicationContext ioc SpringApplication.run(Spring01IocApplication.class, args); (2)将对象注册到IoC容器中&am…...
Mapper.xml SQL大于小于号转义符
Mapper.xml中写的SQL语句,大于小于号字符直接写会报错,需要变成转义字符 对应如下: Mapper.xml SQL大于小于号转义符...
Linux:进程(三)——进程状态
目录 Linux源代码对进程的描述 R S D T t X Z(进程僵尸) 孤儿进程 Linux源代码对进程的描述 理论上把进程状态大致被分为了:运行、阻塞、挂起。那么,在操作系统中具体是如何描述状态的。(有时候Linux内核也把…...
Effective Java 学习笔记 如何为方法编写文档
目录 方法的文档注解设计的原则 Javadoc常用的文档注释 一些注意细节 通过Javadoc命令生成h5页面 这是第8章Java方法的最后一部分,聚焦为导出的API编写文档注释。 如果要想使得API真正可用,配套的文档是必须的。Java提供了Javadoc这个文档生成工具&…...
TCP四大拥塞控制算法总结
四大算法:1.慢启动,2.拥塞避免,3.拥塞发生,4.快速恢复。 慢启动: 首先连接建好的开始先初始化拥塞窗口cwnd大小为1,表明可以传一个MSS大小的数据。 每当收到一个ACK,cwnd大小加一,…...
深入解析ElasticSearch从基础概念到性能优化指南
一.引言 ElasticSearch是一个分布式的搜索和分析引擎,专为处理大规模的结构化和非结构化数据而设计。它建立在Apache Lucene之上,提供了强大的全文搜索能力、高可用性和实时分析的功能。无论是作为日志分析平台,还是作为数据驱动的应用程序的…...
git分支合并时忽略指定文件
分支合并忽略特定文件步骤 1.在项目根目录下cmd窗口运行以下命令 git config merge.ours.driver true2.在项目根目录下新建文件.gitattributes然后文件中写入需要忽略的文件名 mergeours, 一个文件占一行 Dockerfile mergeours /nginx/default.conf mergeours...
基于微信小程序的童装商城的设计与实现+ssm(lw+演示+源码+运行)
童装商城小程序 摘 要 随着移动应用技术的发展,越来越多的用户借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于城镇人口的增加,人们去商场购物总是排着长长的队伍,对于时间紧的人…...
什么叫后验分布
后验分布(Posterior Distribution)是在贝叶斯统计中一个重要的概念。它指的是在观测到数据之后,对参数或潜变量的分布的更新。具体来说,后验分布是基于先验分布(Prior Distribution)和似然函数(…...
Godot游戏如何提升触感体验
在游戏世界中,触感体验至关重要,既能极大提升玩家沉浸感,让其深度融入游戏,在操作角色或与环境互动时,通过触感反馈获得身临其境的真实感(比如动作游戏中角色攻击或受击时的振动反馈,能使玩家更…...
数字图像面积计算一般方法及MATLAB实现
一、引言 在数字图像处理中,经常需要获取感兴趣区域的面积属性,下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…...
【STL】 set 与 multiset:基础、操作与应用
在 C 标准库中,set 和 multiset 是两个非常常见的关联容器,主要用于存储和管理具有一定规则的数据集合。本文将详细讲解如何使用这两个容器,并结合实例代码,分析其操作和特性。 0.基础操作概览 0.1.构造: set<T&…...
xhs 小红书 x-s web 分析
声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我…...
胤娲科技:谷歌DeepMind祭出蛋白质设计新AI——癌症治疗迎来曙光
在科技的浩瀚星空中,DeepMind的“阿尔法”家族总是能带来令人瞩目的璀璨光芒。这一次,它们再次以惊人的姿态, 将AI的触角深入到了生命的微观世界——蛋白质设计领域,为我们描绘了一幅未来医疗的宏伟蓝图。 想象一下,一…...
【后端】【nginx】nginx常用命令
文章目录 1. 启动与停止相关命令2. 配置文件检查与验证3. 查看日志4. 查看状态与版本5. 端口与连接相关命令 1. 启动与停止相关命令 # 启动 NGINX sudo nginx# 立即停止 NGINX sudo nginx -s stop# 优雅停止 NGINX sudo nginx -s quit# 优雅重载配置 sudo nginx -s reload# 完…...
从SOP到AI Society:MGX多智能体协作平台如何重塑软件开发流程
1. MGX平台如何用SOP机制颠覆传统开发模式 我第一次接触MGX平台时,被它的标准化操作流程(SOP)惊艳到了。这就像把一个混乱的施工现场变成了井然有序的装配线,每个智能体都知道自己该在什么时候做什么事。传统开发中,我…...
2026最权威一键生成论文工具榜单:这些被高校和导师悄悄推荐的软件你用了吗
一键生成论文工具正成为学术研究的重要助力,其高效性与专业性在近年来得到广泛认可。依托权威检测平台数据、高校实测反馈及用户真实评价,这些工具已逐步成为科研工作者和学生群体的得力助手。本文将盘点2026年最受高校和导师推荐的一键生成论文软件&…...
深度学习标量、向量、矩阵与张量(三)
1. 定位导航 线性代数是深度学习最核心的数学工具——没有之一。神经网络的前向传播本质上就是矩阵乘法加非线性激活;反向传播本质上就是链式法则在矩阵/向量上的应用;PCA、SVD、特征分解等工具贯穿从数据预处理到模型分析的全过程。 本篇是最基础的一篇…...
Prompt Optimizer
链接:https://pan.quark.cn/s/3d42e4512934Prompt Optimizer v2.2.1是一款开源AI提示词优化工具,致力于通过智能算法提升提示词质量,支持多模型集成和图像生成功能。它提供桌面应用、Docker部署等多种方式,帮助用户快速获得精准的…...
5分钟打造私人语音助手:开源离线语音键盘Sayboard全解析
5分钟打造私人语音助手:开源离线语音键盘Sayboard全解析 【免费下载链接】Sayboard An open-source on-device voice IME (keyboard) for Android using the Vosk library. 项目地址: https://gitcode.com/gh_mirrors/sa/Sayboard 在智能手机普及的今天&…...
SaaS级AI员工系统源码商用版,多租户+计费系统+API分销,一套源码搞定
温馨提示:文末有资源获取方式最近“龙虾AI”的热度居高不下,到处都在讨论如何“养龙虾”。但观察下来发现,这类应用对普通用户而言技术门槛还是偏高,部署、配置、调试都需要专人跟进,最终往往沦为摆设。源码获取方式在…...
STM32危化品智能管理系统设计与实现
## 1. 项目概述### 1.1 系统背景 实验室危化品管理面临传统人工记录方式效率低下、易出错等问题,特别是在温湿度敏感、易燃易爆或有毒危化品的存储过程中存在重大安全隐患。基于STM32F103C8T6微控制器的智能管理系统通过集成多参数传感、无线通信和云平台技术&#…...
从源码到上架:手把手教你用Android Studio打包绿豆TVBox APK,并修改Logo、启动图和包名
从零打造个性化TV应用:Android Studio深度定制指南 在流媒体内容消费爆发的时代,拥有一个专属的影视聚合平台成为许多技术爱好者的追求。绿豆TVBox这类开源项目为开发者提供了快速入门的跳板,但真正实现个性化部署需要跨越从源码编译到定制化…...
CasRel模型LaTeX学术论文辅助工具:自动提取相关工作和贡献
CasRel模型LaTeX学术论文辅助工具:自动提取相关工作和贡献 每次打开一篇新的学术论文,尤其是那些动辄几十页的综述或顶会文章,你是不是也有点头大?密密麻麻的文字里,最关键的信息——“别人做了什么”、“他们有什么不…...
C++ sort函数进阶指南:如何优雅地自定义结构体排序规则
C sort函数进阶指南:如何优雅地自定义结构体排序规则 在C开发中,数据排序是一个永恒的话题。当我们需要处理复杂数据结构时,标准库提供的默认排序方式往往无法满足需求。这时,掌握sort函数的高级用法就显得尤为重要。本文将深入探…...
