直接上脚本:
#! /bin/bash
#对实际使用内存大于85%的机器停止调度,对实际使用内存小于70%的 关闭调度
# 获取实际内存小于或等于70%的机器
memory_lt_70=`kubectl top nodes |awk 'NR>1{if($5+0<=70) print $1}'`
# 获取实际内存大于或等于85%的机器
memory_gt_85=`kubectl top nodes |awk 'NR>1{if($5+0>=85) print $1}'`
#获取已经关闭调度的机器
SchedulingDisabled=`kubectl get nodes |egrep -v "control-plane|master" |grep SchedulingDisabled | awk '{print $1}'`
# 如果有关闭调度的机器,判断其内存小于或等于70%,则放开调度
if [ -n "$SchedulingDisabled" ];then
for node in $SchedulingDisabled ;do
if [[ $memory_lt_70 =~ $node ]];then
kubectl uncordon $node
fi
done
fi
#如果有内存大于或等于85%的机器,判断其是否停止调度,如果没有,则停止调度
if [ -n "$memory_gt_85" ];then
for node in $memory_gt_85 ;do
if [[ $SchedulingDisabled =~ $node ]];then
echo $node is aleady cordorned
else
kubectl cordon $node
fi
done
fi
参考资料:文章来源:https://www.toymoban.com/news/detail-792783.html
一招完美解决k8s调度不均问题文章来源地址https://www.toymoban.com/news/detail-792783.html
到了这里,关于k8s 检测node节点内存使用率平衡调度脚本 —— 筑梦之路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!