在 CentOS 上运行 Kubernetes(k8s) 时,监控通常分为 集群层面 和 应用/节点层面。下面给你一套常用且落地可行的监控方案。
适用场景:生产环境、云原生标准方案
# 添加 repo
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
# 安装
helm install monitoring prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
kubectl port-forward svc/monitoring-grafana 3000:80 -n monitoring
浏览器访问:
http://localhost:3000
默认账号:admin / prom-operator
useradd -rs /sbin/nologin node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar zxvf node_exporter-*.tar.gz
cp node_exporter-*/node_exporter /usr/local/bin/
# /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
[Service]
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now node_exporter
kubectl top node
kubectl top pod -A
⚠️ 需要安装 metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
helm install loki grafana/loki-stack -n logging --create-namespace
groups:
- name: node-alert
rules:
- alert: NodeCpuHigh
expr: node_cpu_seconds_total{mode="idle"} < 20
for: 5m
labels:
severity: warning
annotations:
summary: "节点 CPU 使用率过高"
| 监控对象 | 工具 |
|---|---|
| 节点 | Node Exporter |
| K8s 集群 | Prometheus |
| Pod / 容器 | cAdvisor(自带) |
| 日志 | Loki / ES |
| 可视化 | Grafana |
| 告警 | Alertmanager |
如果你愿意,我可以:
你现在是 测试环境还是生产环境?