k8s巡检脚本

k8s_inspect.py

#!/usr/bin/env python3# -*- coding: utf-8 -*-""" Kubernetes 集群健康巡检脚本 检查内容: - 节点是否处于 Ready 状态 - Pod 是否正常运行(跳过已完成的 Job) - Deployment 是否达到期望副本数 - Service 是否有可用的后端 Endpoints 使用方法: python3 k8s_inspect.py 依赖安装(建议在虚拟环境中): pipinstallkubernetes"""importsys from kubernetesimportclient, config from kubernetes.client.restimportApiException def load_kube_config():"""加载 Kubernetes 配置:优先尝试 in-cluster 模式,否则使用 kubeconfig 文件""" try: config.load_incluster_config()print("[成功] 使用集群内配置(in-cluster config)")except config.ConfigException: try: config.load_kube_config()print("[成功] 使用本地 kubeconfig 文件")except config.ConfigException as e: print(f"[失败] 无法加载 Kubernetes 配置: {e}")sys.exit(1)def check_nodes():"""检查所有节点是否就绪(Ready)""" print("\n[信息] 正在检查节点状态...")v1=client.CoreV1Api()try: nodes=v1.list_node().itemsifnot nodes: print("[警告] 未发现任何节点")returnFalse all_ready=Truefornodeinnodes: name=node.metadata.name ready=any(cond.type=="Ready"and cond.status=="True"forcondinnode.status.conditions or[])ifnot ready: print(f"[错误] 节点 {name} 未就绪(NotReady)")all_ready=False else: print(f"[正常] 节点 {name} 已就绪")returnall_ready except ApiException as e: print(f"[错误] 获取节点列表失败: {e}")returnFalse def check_pods():"""检查所有命名空间中的 Pod 状态,跳过已完成的 Job Pod""" print("\n[信息] 正在检查 Pod 状态...")v1=client.CoreV1Api()try: pods=v1.list_pod_for_all_namespaces().itemsifnot pods: print("[信息] 未发现任何 Pod")returnTrue all_ok=Trueforpodinpods: namespace=pod.metadata.namespace name=pod.metadata.name phase=pod.status.phase is_job_pod=(pod.metadata.owner_references and any(owner.kind=="Job"forownerinpod.metadata.owner_references))ifis_job_pod and phasein("Succeeded","Completed"):continueifphase=="Running":continueelifphase=="Pending":continueelifany(c.state.waiting and c.state.waiting.reason=="CrashLoopBackOff"forcin(pod.status.container_statuses or[])): print(f"[错误] Pod {namespace}/{name} 处于 CrashLoopBackOff 状态")all_ok=False else: print(f"[警告] Pod {namespace}/{name} 状态异常: {phase}")all_ok=Falsereturnall_ok except ApiException as e: print(f"[错误] 获取 Pod 列表失败: {e}")returnFalse def check_deployments():"""检查所有 Deployment 是否达到期望的可用副本数""" print("\n[信息] 正在检查 Deployment 状态...")apps_v1=client.AppsV1Api()try: deployments=apps_v1.list_deployment_for_all_namespaces().itemsifnot deployments: print("[信息] 未发现任何 Deployment")returnTrue all_ok=Truefordepindeployments: namespace=dep.metadata.namespace name=dep.metadata.name desired=dep.spec.replicas or0available=dep.status.available_replicas or0ifavailable<desired: print(f"[错误] Deployment {namespace}/{name} 可用副本不足: {available}/{desired}")all_ok=Falsereturnall_ok except ApiException as e: print(f"[错误] 获取 Deployment 列表失败: {e}")returnFalse def check_services():"""检查每个带 selector 的 Service 是否有可用的 Endpoints""" print("\n[信息] 正在检查 Service 的 Endpoints...")v1=client.CoreV1Api()try: services=v1.list_service_for_all_namespaces().items services=[sforsinservicesifs.spec.selector]ifnot services: print("[信息] 未发现带 selector 的 Service")returnTrue all_ok=Trueforsvcinservices: namespace=svc.metadata.namespace name=svc.metadata.name try: endpoints=v1.read_namespaced_endpoints(name, namespace)ifnot endpoints.subsets: print(f"[错误] Service {namespace}/{name} 没有可用的后端 Endpoints")all_ok=False except ApiException as e: print(f"[警告] 读取 Service {namespace}/{name} 的 Endpoints 失败: {e}")all_ok=Falsereturnall_ok except ApiException as e: print(f"[错误] 获取 Service 列表失败: {e}")returnFalse def main():"""主函数:执行检查并汇总结果""" print("开始 Kubernetes 集群健康巡检...")load_kube_config()node_ok=check_nodes()pod_ok=check_pods()deploy_ok=check_deployments()svc_ok=check_services()print("\n========== 巡检结果汇总 ==========")print(f"节点状态: {'正常' if node_ok else '异常'}")print(f"Pod 状态: {'正常' if pod_ok else '异常'}")print(f"Deployment: {'正常' if deploy_ok else '异常'}")print(f"Service 后端: {'正常' if svc_ok else '异常'}")ifall([node_ok, pod_ok, deploy_ok, svc_ok]): print("\n集群整体健康,无异常!")sys.exit(0)else: print("\n集群存在异常,请根据上述信息排查!")sys.exit(1)if__name__=="__main__":main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1169290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

串口面向对象封装实例

目录 一、前言二、串口封装的必要性三、UART 面向对象的结构体封装思路四、CubeMX 新增串口 DMA 通道配置五、串口回调函数与功能函数完善六、信号量优化串口发送机制七、UART 封装文件实现与调用八、应用层任务函数适配九、总结十、结尾 一、前言 在吃透串口底层的收发逻辑…

六、处理Word文件的实用操作

添加分页from docx import Document doc Document(r"C:\Users\1.docx") # 需要处理文件的位置 doc.add_page_break() #添加分页符 doc.save(r"C:\Users\2.docx") # 添加分页符后文件保存位置插入图片doc.add_picture(r"C:\Users\f8.jpg&quo…

强烈安利8个一键生成论文工具,MBA论文写作必备!

强烈安利8个一键生成论文工具&#xff0c;MBA论文写作必备&#xff01; AI 工具助力论文写作&#xff0c;效率与质量双提升 在当今信息爆炸的时代&#xff0c;MBA 学生和科研工作者面对繁重的论文写作任务时&#xff0c;常常感到力不从心。而 AI 工具的出现&#xff0c;为这一难…

吉安市吉州青原吉安吉水峡江雅思培训辅导机构推荐:2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025

对于身处吉安市吉州、青原、吉安、吉水、峡江等地,怀揣留学梦想的考生而言,雅思备考之路常伴随诸多困扰:本地优质培训资源有限,难以找到教学体系成熟、师资力量雄厚的教育机构;自学缺乏系统性和反馈,提分缓慢,难…

2026年福建草本基因枪美容仪器公司实力解析:美航草本年轻态 /草本年轻态门店 /草本年轻态门店地址 /美航著妍草本年轻态 /美航草本年轻态加盟多钱机构精选 - 品牌推荐官

在美容仪器领域,“草本”与“基因枪”的融合概念,代表了市场对天然植萃成分与精准递送技术相结合的高度期待。从产业链角度看,这涉及到上游的草本活性物研发、中游的精密光学与电子硬件制造,以及下游的品牌整合与市…

2026论文写作AI工具终极测评:全流程提效首选,免费神器认准这款

2026年&#xff0c;AI技术已深度渗透学术写作全场景&#xff0c;成为科研人、学生破解选题迷茫、格式混乱、文献难寻、排版耗时等痛点的核心助力。但市面上论文类AI工具良莠不齐&#xff0c;多数产品宣传噱头大于实用价值&#xff0c;究竟哪些能真正贴合学术规范、实现全流程提…

导师严选2026最新!10款AI论文写作软件测评:专科生毕业论文必备工具

导师严选2026最新&#xff01;10款AI论文写作软件测评&#xff1a;专科生毕业论文必备工具 2026年AI论文写作工具测评&#xff1a;为何值得一看&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文写作工具在学术领域的应用越来越广泛。对于专科生而言&#xff0c;撰写…

2026福建卫生高级职称该怎么备考?这份通关攻略助你高效突围 - 医考机构品牌测评专家

2026福建卫生高级职称该怎么备考?这份通关攻略助你高效突围面对即将到来的2026年福建卫生高级职称考试,许多同行已经开始感到焦虑与迷茫。人机对话的考试形式、“笔试次年评审”的独特规则、日益综合的考题趋势……每…

外包交付加速,XinServer 实操案例解析

外包交付加速&#xff0c;XinServer 实操案例解析 最近带团队做外包项目&#xff0c;甲方催得急&#xff0c;需求还老变。最头疼的就是后端&#xff0c;每次加个字段、改个接口&#xff0c;前后端都得折腾半天。服务器运维更是麻烦&#xff0c;动不动就“502 Bad Gateway”&…

2026年工业内窥镜厂家推荐排行榜,管道/旋转/井下/测量/高清/超清内窥镜,专业品牌深度解析与选购指南 - 品牌企业推荐师(官方)

2026年工业内窥镜厂家推荐排行榜:管道/旋转/井下/测量/高清/超清内窥镜,专业品牌深度解析与选购指南 随着工业4.0的深入推进和智能制造、智慧运维需求的激增,工业内窥镜作为非破坏性检测(NDT)领域的“眼睛”,其重…

spaCy从入门到精通:1.1 spaCy简介与特点

目录 什么是spaCy&#xff1f;spaCy的核心特点spaCy的设计理念spaCy的技术栈spaCy与其他NLP库的对比spaCy的应用场景小结 什么是spaCy&#xff1f; spaCy是一个工业级的自然语言处理&#xff08;NLP&#xff09;库&#xff0c;使用Python和Cython开发&#xff0c;专为生产环…

基于VUE的农村帮扶管理系统[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;农村帮扶工作是促进农村发展、缩小城乡差距的重要举措。本文介绍基于VUE的农村帮扶管理系统&#xff0c;阐述其采用的技术架构与关键技术&#xff0c;深入分析系统在帮扶政策管理、用户管理、信息发布与查询等方面的需求。详细描述系统的整体架构、数据库以及各…

12. Material Design

12. Material Design kotlin引入库// project structure com.google.android.material:1.1.0// app\build.gradle implementation de.hdodenhof:circleimageview:3.0.1Design package com.example.helloworldimport an…

楼宇自控系统是什么?和其它控制系统到底有什么区别?

楼宇自控系统&#xff08;BAS/BMS&#xff09;&#xff0c;是面向建筑机电系统的综合控制与管理体系&#xff0c;非单一设备&#xff0c;核心控制空调通风、给排水、电力能耗、照明等系统&#xff0c;兼顾安防消防状态联动&#xff0c;以稳定运行、节能优化、集中管理为目标&am…

2026副主任药师考试机构实力榜:三大靠谱选择深度测评与口碑推荐 - 医考机构品牌测评专家

2026副主任药师考试机构实力榜:三大靠谱选择深度测评与口碑推荐备战2026年副主任药师考试,选择一家教学扎实、服务到位、口碑过硬的培训机构,无疑是成功通关的重要一环。面对市场上众多的选择,很多考生都会困惑:“…

【AI编程工具】-TRAE CN v3.3.21 手把手教你玩转全新Skills技能!

【AI编程工具】-TRAE CN v3.3.21 手把手教你玩转全新Skills技能!Posted on 2026-01-16 17:30 Java后端的Ai之路 阅读(0) 评论(0) 收藏 举报🚀 TRAE IDE「技能」功能完全新手教程 欢迎来到 TRAE IDE 的「技能」…

2026年副主任药师考试培训机构深度测评:口碑与实力兼备的选择指南 - 医考机构品牌测评专家

2026年副主任药师考试培训机构深度测评:口碑与实力兼备的选择指南面对日益激烈的卫生高级职称竞争,选择一家高效、靠谱的培训机构已成为副主任药师考生成功“上岸”的关键。市场上的医考机构名目繁多,宣传各异,如何…

救命神器!9款AI论文平台测评:本科生毕业论文救星

救命神器&#xff01;9款AI论文平台测评&#xff1a;本科生毕业论文救星 2026年AI论文平台测评&#xff1a;为何值得一看 随着人工智能技术的不断进步&#xff0c;越来越多的学术工作者开始借助AI工具提升写作效率。对于本科生而言&#xff0c;毕业论文的撰写不仅是学业的重要环…

基于VUE的宁新学校学生宿舍管理信息系统[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;学生宿舍管理是学校管理工作的关键环节&#xff0c;传统管理方式效率较低且易出错。本文介绍基于VUE的宁新学校学生宿舍管理信息系统&#xff0c;阐述其采用的技术&#xff0c;深入分析系统在用户管理、宿舍信息管理、学生住宿管理等方面的需求&#xff0c;详细…

实验课速通SQLServer期末考点五:数据库维护

View Post实验课速通SQLServer期末考点五:数据库维护一、实验内容 SQL Server 2017 环境下教学信息管理系统的数据库安全性控制(用户 / 角色 / 权限)与备份恢复实现。 二、实验目的掌握 SQL Server 数据库安全性控制…