Ubuntu Kubernetes 集群监控如何设置
导读:Ubuntu Kubernetes 集群监控搭建指南 一 架构与组件选型 指标监控:使用 Prometheus 采集与存储时间序列指标,配合 Grafana 做可视化与面板展示。 采集覆盖: cAdvisor(已内置于 Kubelet)...
Ubuntu Kubernetes 集群监控搭建指南
一 架构与组件选型
- 指标监控:使用 Prometheus 采集与存储时间序列指标,配合 Grafana 做可视化与面板展示。
- 采集覆盖:
- cAdvisor(已内置于 Kubelet)负责容器资源使用指标。
- Node Exporter 负责节点级(CPU、内存、磁盘、网络)指标。
- kube-state-metrics 负责集群对象(Pod、Deployment、Node 等)状态指标。
- 告警通知:使用 Alertmanager 对接企业微信、钉钉、邮件、Webhook 等通道。
- 部署方式:优先采用 kube-prometheus-stack(Prometheus Operator 的发行版),通过 Helm 快速安装与维护,内置大量 ServiceMonitor 与 Grafana 仪表盘,开箱即用。
二 快速落地步骤
- 准备环境
- 确保集群可正常访问镜像仓库,节点时间已同步(如 chrony),并具备 kubectl 与 Helm 3 环境。
- 安装 kube-prometheus-stack(Helm)
- 添加仓库并安装(示例命名空间为 monitoring):
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update kubectl create ns monitoring helm install prometheus prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --set grafana.service.type=NodePort \ --set prometheus.service.type=NodePort - 验证安装:
kubectl -n monitoring get pods -l app.kubernetes.io/name=prometheus kubectl -n monitoring get svc prometheus-grafana kubectl -n monitoring get svc prometheus-kube-prometheus-prometheus
- 添加仓库并安装(示例命名空间为 monitoring):
- 访问控制台
- Grafana:http://< 任一节点IP> :/,默认账号 admin,首次登录需设置密码。
- Prometheus:http://< 任一节点IP> :/,可查询 up、node_cpu_seconds_total 等指标。
- 导入常用仪表盘
- 在 Grafana 导入 Kubernetes / Compute Resources / Cluster(ID:3119)、Nodes(ID:315)等官方面板,快速获得节点与集群概览。
三 关键配置与扩展
- 持久化存储(可选,生产推荐)
- 使用 NFS 或其他 StorageClass 为 Prometheus 与 Grafana 提供 PVC,避免数据重启丢失。示例思路:
- 搭建 NFS Server(Ubuntu):安装 nfs-kernel-server,配置导出目录(如 /data/pvdata),客户端安装 nfs-common 并挂载验证。
- 创建 PV/PVC(示例名称空间 monitoring),在 Helm 安装时通过 values.yaml 指定 Prometheus 的 persistence.storageClass 与 size,或复用已有 PVC。
- 使用 NFS 或其他 StorageClass 为 Prometheus 与 Grafana 提供 PVC,避免数据重启丢失。示例思路:
- 自定义采集与告警
- 为应用添加注解,使其被 Prometheus 自动发现:
metadata: annotations: prometheus.io/scrape: "true" prometheus.io/port: "8080" prometheus.io/path: "/metrics" - 在 PrometheusRule 中定义告警规则(如 InstanceDown),并在 Alertmanager 配置路由与接收器(钉钉/企业微信/邮件/Webhook),实现 7×24 通知。
- 为应用添加注解,使其被 Prometheus 自动发现:
四 验证与常见问题
- 验证采集链路
- 在 Prometheus Targets 页面确认 kubelet、node-exporter、kube-state-metrics、prometheus 等均为 UP 状态。
- 在 Grafana 查询 up{ job=“kubernetes-nodes”} 、rate(node_cpu_seconds_total[5m]) 等指标是否有数据。
- 常见问题排查
- 节点未就绪:检查 kubelet 与 cAdvisor 是否正常,节点污点与污点容忍是否影响调度。
- 抓取失败:核对 ServiceMonitor 的 namespaceSelector/selector 与目标的 annotations 是否匹配。
- 存储不可用:确认 StorageClass 存在且 PV/PVC 处于 Bound,权限与路径正确(NFS 场景下目录属主与权限)。
- 告警未送达:检查 Alertmanager 的 route 与 receivers 配置、网络连通性与 Webhook 签名/Token 是否正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Kubernetes 集群监控如何设置
本文地址: https://pptw.com/jishu/782337.html
