k8s巡检脚本

news/2024/7/3 5:51:51

#!/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://lihuaxi.xjx100.cn/news/1117213.html

相关文章

SSD系列2——PriorBox

SSD系列: SSD系列1——网络结构 SSD系列2——PriorBox SSD系列3——损失计算 PriorBox SSD采用PriorBox来进行区域生成,其思想与Faster RCNN的Anchor类似。PriorBox的本质是在原图上的一系列矩形框,即特征图上的一个点根据下采样率可以得到在…

【深入理解redis】数据结构

文章目录 动态字符串SDS字符串编码类型 intsetDictZipListZipList的连锁更新问题 QuickListSkipListRedisObjectStringListSet结构ZSETHash Redis 共有 5 种基本数据结构:String(字符串)、List(列表)、Set(…

树结构 数据可视化

这边有个 树结构数据,想做一个可视化展示的需求;首先想到的是 python pyecharts, 一直传说 python 做数据可视化 一把梭; pyecharts 在线实例展示 pyecharts 官网 当看到上面的 示例 后,这不就我想找的嘛!哈哈 随后 找…

KingbaseES V8R6 最老事务阻止vacuum freeze

前言 最近生产环境发生几次由于长事务导致表、库年龄没法回收的情况。我们要规避这种情况的发生,不要等发生了再去强制中断会话连接。 当数据库中存在最老事务版本xmin,那么早于他的快照可以被标记为frozen,如果在最老事务之后产生的快照版本…

纽扣电池/含纽扣电池商品亚马逊美国澳洲站点合规认证要求!

纽扣电池/含纽扣电池商品亚马逊美澳站点合规认证 亚马逊美国站纽扣电池(含纽扣电池产品)合规要求标准: 16CFR1700.15部分(防毒包装标准) 16CFR1700.20部分(特殊包装的检测程序) ANSI C18.3M(便携式锂原电池的安全标准) 警示标签声明要求(…

AI别来搅局,chatGPT的世界不懂低代码

ChatGPT单月访问量再创新高 根据SimilarWeb统计,ChatGPT上月全球访问量17.6亿次,已超越必应、鸭鸭走DuckDuckGo等其他国际搜索引擎,并达到谷歌的2%,百度的60%。 这会,程序员失业的段子又得再来一遍了: 拖…

RocketMQ双主双从环境搭建

环境要求 64位操作系统,推荐 Linux/Unix/macOS 64位 JDK 1.8 服务器准备 准备4台服务器两台master两台slave,如果服务器紧凑,则至少需要两台服务器相互master-slave IP HOSTS 172.*******.120 rocketmq-nameserver1 rocketmq-master1 …

前端工程化 搭建私有组件库 组件从开发到发布私有npm仓库的全过程

前言 基于Vue3.0 TS的组件从开发组件库到发布私有npm仓库的全过程 环境 这里列出本文所使用的环境版本 vue 3.0 vue/cli 4.5.9 nodeJs 14.15.1 npm 6.14.8 vue --version vue/cli 4.5.9 npm -v 6.14.8 node -v v14.15.1 步骤 创建项目 使用 vue-cli 创建一个 vue3 项目&a…