k8s巡检脚本

news/2025/1/16 4:59:29/

#!/bin/bash

#检查kubectl是否已经安装

if ! command -v kubectl &> /dev/null

then

echo -n "kubectl 未安装,请先安装kubectl"exit

fi

echo -e “开始集群状态信息收集/”

#检查集群状态:

echo -n “检查集群正常状态:”

kubectl cluster-info |grep -w running |wc -l

echo -n “检查集群异常状态:”

kubectl cluster-info |grep -w Pending |wc -l

#检查节点状态:

echo -n “检查节点正常状态:”

kubectl get nodes |grep -w Ready |wc -l

echo -n “检查节点异常状态:”

kubectl get nodes |grep -w NotReady |wc -l

echo -e “开始组件状态信息收集/”

#检查Kubernetes组件状态:

echo -n “检查Kubernetes组件正常状态:”

kubectl get componentstatuses 2>/dev/null|grep -w Healthy |wc -l

echo -n “检查Kubernetes组件异常状态:”

kubectl get componentstatuses 2>/dev/null|grep -w Unhealthy |wc -l

#检查命名空间

echo -n “检查命名正常空间:”

kubectl get namespaces |grep -w Active|wc -l

#检查Pod状态:

echo -n “检查Pod正常状态:”

kubectl get pods --all-namespaces |grep -w Running |wc -l

echo -n “检查Pod异常状态:”

kubectl get pods --all-namespaces |grep -e ‘Pending’ -e ‘Terminating’ |wc -l

#检查副本ReplicaSet状态:

echo -n “检查副本ReplicaSet状态:”

kubectl get replicasets --all-namespaces |awk ‘NR!=1 {print}’|wc -l

#检查Deployment状态:

echo -n “检查部署Deployment状态:”

kubectl get deployments --all-namespaces |awk ‘NR!=1 {print}’|wc -l

#检查Service状态:

echo -n “检查服务Service状态:”

kubectl get services --all-namespaces |awk ‘NR!=1 {print}’|wc -l

#检查入口Ingress状态:

echo -n “检查入口Ingress状态:”

kubectl get ingress --all-namespaces |awk ‘NR!=1 {print}’|wc -l

echo -e “=开始存储卷信息收集=/”

#检查存储卷状态:

echo -n “检查存储卷正常使用状态:”

kubectl get pv |grep -w Available |wc -l

echo -n “检查存储卷绑定状态:”

kubectl get pv |grep -w Bound |wc -l

echo -n “检查存储卷解绑状态:”

kubectl get pv |grep -w Released |wc -l

echo -n “检查存储卷故障状态:”

kubectl get pv |grep -w Failed |wc -l

#检查存储卷声明状态:

echo -n “检查存储卷声明绑定状态:”

kubectl get pvc --all-namespaces |grep -w Bound |wc -l

echo -n “检查存储卷声明pv解绑状态:”

kubectl get pvc --all-namespaces |grep -w Pending |wc -l

echo -n “检查存储卷声明pv断开状态:”

kubectl get pvc --all-namespaces |grep -w Lost |wc -l

echo -n “检查存储卷声明pv无法绑定状态:”

kubectl get pvc --all-namespaces |grep -w Failed |wc -l

echo -e “=开始事务信息收集=/”

#检查配置映射状态:

echo -n “检查配置映射状态:”

kubectl get configmaps --all-namespaces|awk ‘NR!=1 {print}’|wc -l

#检查事件状态:

echo -n “检查1h事件状态:”

kubectl get events --all-namespaces |awk ‘NR!=1 {print}’|wc -l

echo -e “开始资源使用信息收集/”

#检查资源使用情况

echo “检查资源CPU超过90%的node:”

kubectl top node 2>/dev/null | awk ‘{print $1,$3,$5}’|sed ‘s@%@@g’ |awk ‘{if ($3 > ‘90’) printKaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲'|awk 'NR!=1 {p…’ && echo “$result” ||echo “0”

echo “检查资源内存超过90%的node:”

kubectl top node 2>/dev/null | awk ‘{print $1,$3,$5}’|sed ‘s@%@@g’ |awk ‘{if ($5 > ‘90’) printKaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲'|awk 'NR!=1 {p…’ && echo “$result” ||echo “0”

echo -n “检查资源CPU(cores)大于100的pod:”

kubectl top pods 2>/dev/null --all-namespaces |awk ‘{print $1,$2,$3}’|sed ‘s@m@@g’ |awk ‘{if ($3 > ‘100’) print$1,$2}’|awk ‘NR!=1 {print}’ |wc -l

echo -n “检查资源内存(bytes)大于1000的pod:”

kubectl top pods 2>/dev/null --all-namespaces |awk ‘{print $1,$2,$4}’|sed ‘s@Mi@@g’ |awk ‘{if ($3 > ‘1000’) print$1,$2}’|awk ‘NR!=1 {print}’|wc -l


http://www.ppmy.cn/news/66695.html

相关文章

Apache FtpServer在Windows上使用以及SpringBoot中集成apache ftpserver实现Ftp 服务端搭建

场景 Apache Ftpserver Apache FtpServer是100%纯Java FTP服务器。它被设计为基于当前可用的开放协议的完整且 可移植的FTP服务器引擎解决方案。FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行, 也可以嵌入Java应用程序中。我们还提供…

springboot+vue高校社团管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的高校社团管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

Threejs进阶之十三:CSS3DRenderer与Tween.js实现粒子小球按规律变化

今天我们使用CSS3DRendererTween.js实现Threejs官方示例中的粒子小球按规律变化的效果,先看下最终实现的效果 先来分析下,这个页面的动画效果是由512个小球组合起来的四种不同变化,分别是曲面、立方体、随机和圆球四种变化;下面我…

SQL Server表的类型

目录 一、SQL Server的临时表 二、SQL Server的系统表 一、SQL Server的临时表 SQL Server中的数据表分为: 永久表:创建后一直存储在数据库文件中,直到用户删除为止。临时表: 局部临时表:表名用#开头。只能由创建它…

Oracle搭建主从方案

Oracle数据库中,搭建主从(Master-Slave)复制是一种常见的数据复制和高可用性方案。主从复制允许将主数据库上的更改同步到一个或多个从数据库上,以提供数据冗余和故障恢复能力。以下是一般情况下搭建Oracle数据库主从复制的基本步…

什么是BQ76930,在哪些领域可以使用

BQ76930是一种高度集成的多路电池保护和电压监控IC,专为用于锂离子电池组的保护和管理而设计。它可以检测电池组中各单体电池的电压和温度,并对电池组进行过充、过放、过流和短路保护,同时还支持多种通信接口和均衡控制功能。在本文中&#x…

ACM - 数学 - 提高(还没学多少)

ACM - 数学 练习题 一、数论1、分解质因数 :AcWing 197. 阶乘分解2、求约数个数(1)AcWing 1294. 樱花 (求 n!约数个数之和)(2)AcWing 198. 反素数 (求 1 ~ N 中约数最多的…

使用RobustPCA 进行时间序列的异常检测

鲁棒主成分分析(Robust Principal Component Analysis, RobustPCA)是一种将时间序列矩阵分解为低秩分量和稀疏分量的技术。这种分解能够识别潜在的趋势,以及检测异常和异常值。在本中我们将研究RobustPCA的数学基础,介绍它与传统的PCA之间的区别&#xf…