k8s巡检脚本

这篇具有很好参考价值的文章主要介绍了k8s巡检脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#!/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') print$1}'|awk 'NR!=1 {print}'|grep -v '^$'  && 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') print$1}'|awk 'NR!=1 {print}'|grep -v '^$'  && 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

k8s巡检脚本文章来源地址https://www.toymoban.com/news/detail-444818.html

到了这里,关于k8s巡检脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s重启服务(kubectl)

    How to Restart Kubernetes Pods With Kubectl Deployments

    2024年02月11日
    浏览(39)
  • K8S之kubectl命令详解及示例

    目录 1、查看类命令 2、操作类命令 3、进阶命令操作 4、kubectl replace 重启pod的四种方法 5、kubectl语法 # 获取节点和服务版本信息 kubectl get nodes # 获取节点和服务版本信息,并查看附加信息 kubectl get nodes -o wide # 获取pod信息,默认是default名称空间 kubectl get pod # 获取pod信息,默认

    2024年02月01日
    浏览(48)
  • k8s: kubectl: logs: rotate 问题

    设计文档: https://github.com/kubernetes/design-proposals-archive/blob/main/node/kubelet-cri-logging.md https://kubernetes.io/docs/concepts/cluster-administration/logging/ 当kubenet存放container的日志满了的时候,会发生rotate,当rotate发生的时候,是由kubectl logs 这个命令可能会出现以下两个问题: https://github.com

    2024年02月15日
    浏览(42)
  • 使用kubectl连接远程Kubernetes(k8s)集群

    你需要准备一个Kubernetes集群,你要记下你安装Kubernetes的版本。如图我已经准备好了一个版本号为 v1.21.14 的集群: 注意下载的版本号最好与你安装的Kubernetes版本对应上,各个版本的下载地址(⚠️注意修改url中的版本号): Windows: x86_64: arm64: MacOS: Intel: Apple Silicon: Linux: x86

    2024年02月04日
    浏览(59)
  • 五、Kubernetes(K8S):Kubectl常用命令详解

    注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料 ,将在公众号 CTO Plus 发布,请关注公众号: CTO Plus   Kubectl 是Kubernetes命令行工具,用于管理Kubernetes集群资源和应用程序的部署、升级和扩展等。其作用包括但不限于: 1. 创建、更新和删除应

    2024年02月04日
    浏览(43)
  • 【云原生】K8s管理工具--Kubectl(一)

    1、陈述式管理方式 kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口 kubectl 是官方的 CLI 命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径 kubectl 的

    2024年02月05日
    浏览(40)
  • 四、Kubernetes(K8S):kubectl概述、安装、设置

    目录 概述 安装与配置kubectl 语法 命令 对象 规则结构 命令选项 资源类型 输出选项 格式化输出 自定义列 排序列表对象 常用操作示例 kubectl 是Kubernetes命令行工具。它允许用户与Kubernetes集群进行交互,并管理Kubernetes对象,如Pod、Service、Deployment等。kubectl可以在命令行界面中

    2024年02月12日
    浏览(62)
  • k8s集群node节点运行kubectl命令

            在容器化项目部署中,某些应用需要部署到指定的机器上(涉及机器信息收集,然后生成license,机器授权等),所以需要在k8s集群的node节点上,手动执行kubectl命令。         具体的操作步骤如下: (1)在node节点执行任意kubectl命令,例如:kubectl get nodes,可以看到

    2024年02月14日
    浏览(49)
  • 玩转k8s:kubectl命令行工具用法详解

    Kubectl 是管理kubernetes的命令行工具,kubectl在$HOME/.kube目录下查找config配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数指定其他kubeconfig文件。 本文介绍kubectl语法和命令操作描述,并提供常见示例。包括支持的参数和子命令。 kubectl使用以下语法,在终端运行命令

    2024年02月07日
    浏览(49)
  • [k8s] kubectl port-forward 和kubectl expose的区别

    kubectl port-forward 和 kubectl expose 是 Kubernetes 命令行工具 kubectl 提供的两种不同方式来公开服务。 kubectl port-forward kubectl port-forward 命令用于在 本地主机 和 集群内部的 Pod 之间建立一个临时的 端口转发 通道。 该命令将本地机器上的一个端口绑定到集群内部的 Pod 上的指定端口,

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包