简介

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工具的更多相关文章

  1. Unity3d入门 - 关于unity工具的熟悉

    上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...

  2. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  3. 应用工具 .NET Portability Analyzer 分析迁移dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...

  4. .NetCore中的日志(2)集成第三方日志工具

    .NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...

  5. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  6. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  7. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  8. CorelDRAW X8 如何破解激活(附国际版安装包+激活工具) 2016-12-15

    之前有位搞平面的好友“小瘦”说CDR X8无法破解,只能用X7.呃……呃……呃……好像是的 其实CDR8难激活主要在于一个点“没有离线激活了,只可以在线激活”,逆天不是专供逆向的,当然没能力去破解,这 ...

  9. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  10. 10个最好用的HTML/CSS 工具、插件和资料库

    大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...

随机推荐

  1. 大数据之路Week08_day03 (Hive的动态分区和分桶)

    一.动态分区 先来说说我对动态分区的理解与一些感受吧. 由于我们通过hive去查询数据的时候,实际还是查询HDFS上的数据,一旦一个目录下有很多文件呢?而我们去查找的数据也没有那么多,全盘扫描就会浪费 ...

  2. MyCat分库分表-主从

    一.MySQL数据同步 1.主节点配置,log-bin,指定文件名称 2.主节点配置server-id,默认为1 vim /etc/my.cof 在[mysqld]下添加如下配置 log-bin=im ...

  3. 厦门大学3篇DeepSeek报告pdf汇总(附下载地址)

    最近,厦门大学大数据教学团队发布了3份DeepSeek大模相关报告.其中<DeepSeek大模型企业应用实践,全景解读与技术演进>这份报告足足有150页,把国产大模型在企业里怎么用.技术上 ...

  4. 搭建个人多机器ssh连接平台

    最近新配了个主机,有了多个设备,ssh连接的功能可以优化很多体验,便又开始鼓捣.以前都是windows连各种linux,比较方便:这次是在windows之间,还是小查了好一会儿,留个记录 SSH连接的 ...

  5. Git工作流介绍

    前言 工作流其实不是一个初级主题,背后的本质问题其实是有效的项目流程管理和高效的开发协同约定,不仅是Git或SVN等SCM工具的使用. 集中式工作流 如果你的开发团队成员已经很熟悉Subversion ...

  6. gitlab启动与关闭

    gitlab安装完毕后,默认开机启动,开启关闭 sudo gitlab-ctl start/stop

  7. selenium爬虫学习1

    简介 Selenium是广泛使用的模拟浏览器运行的库,它是一个用于Web应用程序测试的工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,并且支持大多数现代 Web 浏览器. 函 ...

  8. harbor

    一篇带你了解私有仓库 Harbor 的搭建 一.Harbor简介 虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的. Harbo ...

  9. static修饰成员方法、static修饰成员的特点总结、浅聊主方法-java se进阶 day01

    1.工具类的介绍 工具类不是用于描述事物的类,而是帮我们完成事情的类(打工) 如图 当我们编写完这个类后,我们会发现一件事,这个类自己本身并没有意义,这个类完全是给用户进行调用方法的 既然是专门给用户 ...

  10. CoreOS 手动升级篇

    说到升级...通常肯定会以下2个步骤: 检查是否有新版本. 下载和安装新版本. 在 CoreOS 中也一样,我们先来看下在 CoreOS 中对应的命令: # 检查是否有新版本 update_engin ...