首页/文章列表/文章详情

K8stools工具

编程知识592025-05-16评论

📌简介

K8stools 是一个 Kubernetes 日常运维辅助工具集,旨在提升运维效率,辅助平台治理与资源优化。功能涵盖资源分析、趋势评估、异常检测、行为采集、成本估算等常见场景,适用于 DevOps、SRE、平台工程团队。

工具地址

🎯功能模块

模块名称功能说明
costEstimator成本估算
cpu获取k8s的cpu使用情况
paradisek8s理想情况分配
poderrors异常检查
runtimeInspect采集运行中的 Pod 容器行为信息(进程、端口、环境变量)
trend基于 Prometheus 的资源使用趋势分析与建议

📄 配置文件说明(config.yaml)

kubeconfig: /root/.kube/confignamespace: - {namespace}-prodprometheus: http://prom.example.netcost: 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 Requestsceil(平均 CPU 使用量 × 1.2)
CPU Limitsceil(最大 CPU 使用量 × 1.5)
内存 Requestsceil(平均内存使用量 × 1.2)
内存 Limitsceil(最大内存使用量 × 1.5)

🚨 poderrors - 异常 Pod 检查工具

功能说明:

  • 遍历所有或指定命名空间下的 Pod
  • 检查所有处于异常状态的容器(如 CrashLoop、ImagePullBackOff、OOMKilled 等)
  • 输出字段:
NamespacePodContainerReasonMessageRestart CountAge
defaultapi-xxxappCrashLoopBackOffBack-off restarting failed container53m

🔍 runtimeInspect - 容器行为采集工具

功能说明:

  • 采集运行中 Pod 的详细信息,包括:
    • 容器内进程列表
    • 监听端口信息
    • 环境变量

使用场景:

  • 排查线上故障时快速查看容器内部运行情况
  • 无需进入容器即可采集运行行为(非入侵式)

💰 costEstimator - 成本估算工具

计算模型:

  • 基于你提供的每台机器:
    • CPU 核数(如:16)
    • 单价(如:4000元)

计算逻辑:

步骤说明
每核价格单价 / 总 CPU 数
容器请求费用CPU Request (m) × 每毫核价格
每月总费用容器费用 × 24 × 30(按 30 天、全天运行估算)

输出字段:

NamespacePodContainerCPU 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# 检查所有命名空间下异常状态的 Podk8stools 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 工具链!

神弓

zz小公子

这个人很懒...

用户评论 (0)

发表评论

captcha