K8stools工具
笔记哥 /
05-16 /
18点赞 /
0评论 /
815阅读
# 📌简介
K8stools 是一个 Kubernetes 日常运维辅助工具集,旨在提升运维效率,辅助平台治理与资源优化。功能涵盖资源分析、趋势评估、异常检测、行为采集、成本估算等常见场景,适用于 DevOps、SRE、平台工程团队。
[工具地址](https://github.com/karlhuang95/k8stools)
# 🎯功能模块
| 模块名称 | 功能说明 |
| --- | --- |
| costEstimator | 成本估算 |
| cpu | 获取k8s的cpu使用情况 |
| paradise | k8s理想情况分配 |
| poderrors | 异常检查 |
| runtimeInspect | 采集运行中的 Pod 容器行为信息(进程、端口、环境变量) |
| trend | 基于 Prometheus 的资源使用趋势分析与建议 |
# 📄 配置文件说明(config.yaml)
```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 (元/月) |
| --- | --- | --- | --- | --- | --- |
* * *
# 📦 示例命令
```bash
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 # 成本估算
```
```bash
# 计算资源使用情况的理想配置建议
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/` 目录,并添加时间戳,便于追溯与比较:
```csharp
output/
├── cpu_info_2025-04-21.csv
├── cost_estimate_2025-04-21.csv
└── resource_trend_2025-04-21.csv
```
# 📬 联系与反馈
如有建议或需求,欢迎反馈或提交 PR,一起打磨出更适合生产的 K8s 工具链!
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/3436
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利