当前位置: 首页 > news >正文

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
http://www.lryc.cn/news/443663.html

相关文章:

  • Go并发编程的高级技巧——请求复制与限流
  • 网站建设模板选择哪种
  • 【linux】kill命令
  • Python基础 | 在虚拟环境中安装并在指定文件夹中打开Jupyter notebook
  • 1.Spring-容器-注册
  • Mapper.xml SQL大于小于号转义符
  • Linux:进程(三)——进程状态
  • Effective Java 学习笔记 如何为方法编写文档
  • TCP四大拥塞控制算法总结
  • 深入解析ElasticSearch从基础概念到性能优化指南
  • git分支合并时忽略指定文件
  • 基于微信小程序的童装商城的设计与实现+ssm(lw+演示+源码+运行)
  • 什么叫后验分布
  • Godot游戏如何提升触感体验
  • 数字图像面积计算一般方法及MATLAB实现
  • 【STL】 set 与 multiset:基础、操作与应用
  • xhs 小红书 x-s web 分析
  • 胤娲科技:谷歌DeepMind祭出蛋白质设计新AI——癌症治疗迎来曙光
  • 【后端】【nginx】nginx常用命令
  • MATLAB系列08:输入/输入函数
  • 《财富之眼:用经济思维看清世界》pdf电子书下载
  • QT中文乱码
  • 如何安装1Panel面板并架设一个静态网站
  • craco-less使用问题
  • 14 vue3之内置组件trastion全系列
  • 力扣(leetcode)每日一题 LCR 187 破冰游戏(还是考的约瑟夫环)
  • nginx模块篇(四)
  • 奇安信渗透2面经验分享
  • 【计算机网络篇】电路交换,报文交换,分组交换
  • 【TypeScript入坑】什么是TypeScript?