首页主机资讯如何在Debian上监控K8s性能

如何在Debian上监控K8s性能

时间2026-01-20 19:07:04发布访客分类主机资讯浏览1231
导读:在 Debian 上监控 Kubernetes 性能 一 监控体系与组件选型 指标采集与存储:使用 Prometheus 抓取并存储时间序列指标,配合 Alertmanager 做告警路由与通知。 节点与系统层:部署 Node Expor...

在 Debian 上监控 Kubernetes 性能

一 监控体系与组件选型

  • 指标采集与存储:使用 Prometheus 抓取并存储时间序列指标,配合 Alertmanager 做告警路由与通知。
  • 节点与系统层:部署 Node Exporter 采集主机 CPU、内存、磁盘 I/O、网络等指标;cAdvisor 已集成于 kubelet,提供容器级资源与性能数据。
  • 编排对象状态:部署 kube-state-metrics,将 Deployment/ReplicaSet/Pod/Node 等对象状态转换为可观测指标,便于容量与稳定性分析。
  • 可视化与告警:用 Grafana 做仪表盘展示;告警规则写入 Prometheus,由 Alertmanager 推送至企业微信、钉钉、Slack、邮件等。
  • 快速一体化方案:使用 kube-prometheus-stack Helm Chart 一键部署 Prometheus、Grafana、Alertmanager 及常用 Exporter 与仪表盘。

二 快速落地步骤

  • 准备命名空间与权限
    • 创建监控命名空间并配置 RBAC,确保 Prometheus 能发现节点、Pod、Endpoints 等目标。
  • 部署一体化监控栈
    • 添加 Helm 仓库并安装 kube-prometheus-stack(包含 Prometheus、Grafana、Alertmanager、Node Exporter、kube-state-metrics、默认仪表盘与告警规则):
      • helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
      • helm repo update
      • helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
  • 访问与验证
    • Grafana:kubectl port-forward -n monitoring svc/prometheus-grafana 3000,默认账号 admin/admin;添加数据源 Prometheus(服务地址:http://prometheus-operated.monitoring.svc.cluster.local:9090)。
    • Prometheus:kubectl port-forward -n monitoring svc/prometheus-operated 9090,检查 Targets 页是否健康。
    • 查看默认仪表盘(如 Kubernetes / Compute Resources / Nodes/Pods),确认指标采集正常。

三 关键指标与常用 PromQL

  • 节点资源
    • CPU 使用率(1 分钟平均):1 - avg by(instance)(rate(node_cpu_seconds_total{ mode=“idle”} [1m]))
    • 内存使用率:1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)
    • 磁盘空间使用率:1 - (node_filesystem_avail_bytes{ mountpoint=“/”} / node_filesystem_size_bytes{ mountpoint=“/”} )
    • 磁盘 I/O 负载:rate(node_disk_read_time_seconds_total[5m]) / rate(node_disk_reads_completed_total[5m])
  • Pod 与容器
    • Pod 重启次数:increase(kube_pod_container_status_restarts_total[1h])
    • 容器 CPU 使用率(按 Pod 聚合):sum by(pod, namespace)(rate(container_cpu_usage_seconds_total{ container!=“”} [1m]))
    • 容器内存使用量:sum by(pod, namespace)(container_memory_usage_bytes{ container!=“”} )
  • 编排与控制面
    • API Server 请求延迟(P95):histogram_quantile(0.95, sum(rate(apiserver_request_duration_seconds_bucket[5m])) by (le, verb, subresource))
    • 节点就绪数:sum by(instance)(kube_node_status_condition{ condition=“Ready”, status=“true”} )
  • 网络
    • 节点入/出流量:rate(node_network_receive_bytes_total[5m])、rate(node_network_transmit_bytes_total[5m])

四 日志与可视化补充

  • 日志链路:部署 EFK(Elasticsearch + Fluent Bit + Kibana)ELK,采集容器标准输出与应用日志,结合 Kibana 做检索与可视化,用于故障排查与审计。
  • 可视化与终端工具:
    • Kubernetes Dashboard:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml;本地访问可用 kubectl proxy 后打开 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/。
    • K9s:终端全屏 UI,快速查看资源、日志与事件,适合日常巡检与排障。

五 告警与排障要点

  • 建议优先启用并调整内置告警规则(如节点宕机、Pod CrashLoopBackOff、CPU/内存压力、API Server 高延迟等),再按业务 SLO 补充自定义规则与通知渠道。
  • 常见问题速查
    • 抓取失败:检查 ServiceMonitor/Endpoints/NetworkPolicy 与 RBAC;确认 Pod/Node 的 /metrics 端口与路径可达。
    • 数据缺失:确认 kube-state-metricsNode Exporter 已就绪;Grafana 数据源指向正确的 Prometheus Service
    • Dashboard 空白:确认 Prometheus 中有对应 Job/Target 与健康的时间序列数据。
    • 节点高负载:结合 CPU 限流、内存 OOM、磁盘 I/O 饱和与网络丢包等指标定位瓶颈,必要时扩容或调整资源请求/限制。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Debian上监控K8s性能
本文地址: https://pptw.com/jishu/787537.html
如何解决Debian上K8s的网络问题 Ubuntu C++库有哪些推荐使用

游客 回复需填写必要信息