K8stools工具
简介
K8stools 是一个 Kubernetes 日常运维辅助工具集,旨在提升运维效率,辅助平台治理与资源优化。功能涵盖资源分析、趋势评估、异常检测、行为采集、成本估算等常见场景,适用于 DevOps、SRE、平台工程团队。
功能模块
| 模块名称 | 功能说明 |
|---|---|
| costEstimator | 成本估算 |
| cpu | 获取k8s的cpu使用情况 |
| paradise | k8s理想情况分配 |
| poderrors | 异常检查 |
| runtimeInspect | 采集运行中的 Pod 容器行为信息(进程、端口、环境变量) |
| trend | 基于 Prometheus 的资源使用趋势分析与建议 |
配置文件说明(config.yaml)
kubeconfig: /root/.kube/config
namespace:
- {namespace}-prod
prometheus: http://prom.example.net
cost:
cpuPrice: 4000 # 单台机器价格(单位元)
totalCpu: 16 # 单台机器 CPU 核数
各子工具设计逻辑
paradise - 理想资源建议工具
CPU 建议规则:
| 类型 | 设计逻辑 |
|---|---|
| Requests | 当前使用量的 50%~80%,保证调度时有资源可用 |
| Limits | 当前使用量的 100%~150%,防止异常飙高占满节点 |
| 特殊处理 | 使用低于 50m 的容器 → 默认给 50m,避免调度失败;高于 1000m 提示设置上限 |
内存建议规则:
| 类型 | 设计逻辑 |
|---|---|
| Requests | 当前使用量的 70%~100%,确保稳定调度 |
| Limits | 当前使用量的 150%~200%,保留 buffer 防止 OOM |
| 特殊处理 | 对 sidecar / agent 等轻量容器,给最小起点值如 64Mi |
trend - 资源趋势分析工具
数据来源:Prometheus 查询
| 指标 | 查询方式 |
|---|---|
| 平均 CPU 使用量 | avg_over_time(container_cpu_usage_seconds_total[1w])(单位:m) |
| 最大 CPU 使用量 | max_over_time(container_cpu_usage_seconds_total[1w])(单位:m) |
| 平均/最大内存使用量 | 类似用 container_memory_usage_bytes 查询,并换算成 MiB |
推荐策略(保守 & 稳健)
| 类型 | 推荐计算公式 |
|---|---|
| CPU Requests | ceil(平均 CPU 使用量 × 1.2) |
| CPU Limits | ceil(最大 CPU 使用量 × 1.5) |
| 内存 Requests | ceil(平均内存使用量 × 1.2) |
| 内存 Limits | ceil(最大内存使用量 × 1.5) |
poderrors - 异常 Pod 检查工具
功能说明:
- 遍历所有或指定命名空间下的 Pod
- 检查所有处于异常状态的容器(如 CrashLoop、ImagePullBackOff、OOMKilled 等)
- 输出字段:
| Namespace | Pod | Container | Reason | Message | Restart Count | Age |
|---|---|---|---|---|---|---|
| default | api-xxx | app | CrashLoopBackOff | Back-off restarting failed container | 5 | 3m |
runtimeInspect - 容器行为采集工具
功能说明:
- 采集运行中 Pod 的详细信息,包括:
- 容器内进程列表
- 监听端口信息
- 环境变量
使用场景:
- 排查线上故障时快速查看容器内部运行情况
- 无需进入容器即可采集运行行为(非入侵式)
costEstimator - 成本估算工具
计算模型:
- 基于你提供的每台机器:
- CPU 核数(如:16)
- 单价(如:4000元)
计算逻辑:
| 步骤 | 说明 |
|---|---|
| 每核价格 | 单价 / 总 CPU 数 |
| 容器请求费用 | CPU Request (m) × 每毫核价格 |
| 每月总费用 | 容器费用 × 24 × 30(按 30 天、全天运行估算) |
输出字段:
| Namespace | Pod | Container | CPU Request (m) | CPU Cost (元) | Total Cost (元/月) |
|---|
示例命令
k8stools paradise -f config.yaml # 理想资源建议
k8stools trend -f config.yaml # 资源趋势分析
k8stools poderrors -f config.yaml # 异常 Pod 检查
k8stools runtimeInspect -f config.yaml # 容器运行时行为采集
k8stools costEstimator -f config.yaml # 成本估算
# 计算资源使用情况的理想配置建议
k8stools paradise -f config.yaml
# 基于 Prometheus 历史数据的趋势分析
k8stools trend -f config.yaml
# 检查所有命名空间下异常状态的 Pod
k8stools poderrors -f config.yaml
# 查看容器运行时信息(进程、端口、环境变量)
k8stools runtimeInspect -f config.yaml
# 根据配置中机器单价和总 CPU 数进行成本估算
k8stools costEstimator -f config.yaml
建议输出目录结构
统一将输出放到 output/ 目录,并添加时间戳,便于追溯与比较:
output/
├── cpu_info_2025-04-21.csv
├── cost_estimate_2025-04-21.csv
└── resource_trend_2025-04-21.csv
联系与反馈
如有建议或需求,欢迎反馈或提交 PR,一起打磨出更适合生产的 K8s 工具链!
K8stools工具的更多相关文章
- Unity3d入门 - 关于unity工具的熟悉
上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
- 应用工具 .NET Portability Analyzer 分析迁移dotnet core
大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
- CorelDRAW X8 如何破解激活(附国际版安装包+激活工具) 2016-12-15
之前有位搞平面的好友“小瘦”说CDR X8无法破解,只能用X7.呃……呃……呃……好像是的 其实CDR8难激活主要在于一个点“没有离线激活了,只可以在线激活”,逆天不是专供逆向的,当然没能力去破解,这 ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- 10个最好用的HTML/CSS 工具、插件和资料库
大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...
随机推荐
- 从零开始!Jupyter Notebook的安装详细教程
本文将引导你完成从零开始安装Jupyter Notebook的过程.Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含实时代码.方程.可视化和叙述文本的文档.它广泛应用 ...
- gitlab - [01] 概述
gitlab! 一.GitLab是什么 GitLab是一个集成了Git仓库管理.持续集成(CI/CD).项目管理.代码审查.包管理和发布在内的全方位DevOps平台.它为软件开发团队提供了从项目规划到 ...
- 使用DeepSeek-R1分析电影票房
最近在学习DeepSeek-R1本地化部署的相关知识,看到了1个比较有意思的视频. 在该视频中,其主要逻辑就是当用户上传1个Excel后,之后就可以通过交互式的方式对这个Excel中的数据进行分析.但 ...
- 『Python底层原理』--异步机制(async/await)
在现代编程中,并发是提高程序效率的关键技术之一,它允许程序同时执行多个任务,充分利用系统资源. 本文将深入探讨 Python 中的async/await机制,从并发编程基础讲起,逐步剖析其工作原理和实 ...
- 强!10.8K star!推荐一款用于威胁预防、安全检测的开源监控平台,功能非常强大!!
在当今数字化时代,网络安全威胁日益严峻,企业和组织对于高效.强大的安全解决方案的需求也愈发迫切. 今天给大家分享一个专注于安全监控的开源项目:Wazuh,正是应对这一挑战的有力武器,专门用于帮助个人和 ...
- Navicat 数据库如何再次打开恢复上次的页面
选项->选项卡->从上次离开的画面继续 2.其他软件有这个需求也可以在设置里找一找!
- Ollama+DeepSeek+SlackBot
技术背景 想必最近有在部署DeepSeek大模型的人,看标题就知道这篇文章在做什么事情了.由于Ollama对于IP的监听缺乏安全防护,并且内网部署的Ollama模型对于外网来说也是不可见的,而如果使用 ...
- Manus,没有秘密「注解版」
近来Manus走红,「争论」不断,我也在前文<Manus爆火,是硬核还是营销?>中阐述过自Manus发布后,行业讨论以及开源复刻的信息,以及我们如何结合蚂蚁图计算(TuGraph)技术,实 ...
- Failed to start MySQL 8.0 database server.
原因 在mysql错误日志里出现:The innodb_system data file 'ibdata1' must be writable,字面意思:ibdata1必须可写 查看日志报错,文件夹无 ...
- 业余无线电之配置Orbitron My DDE 自动推送多普勒频率至SDRSharp程序中
配置Orbitron My DDE 推送多普勒频率至SDR (By:BI8EJM) Start Edit Time 2021/8/16 23:03 要实现的功能:通过本次设置,让Orbitron程序自 ...