在 CentOS 上部署 Kubernetes(k8s)后,监控通常分为 集群监控、节点监控、应用监控、日志监控 几个层次。下面给你一套实战常用方案,从简单到生产级。
监控内容:CPU、内存、磁盘、网络、负载
# 在所有 CentOS 节点安装
yum install -y golang git
或使用二进制:
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar -xvf node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter &
访问:
http://节点IP:9100/metrics
kube-state-metrics
node-exporter
cAdvisor(kubelet 自带)
↓
Prometheus
↓
Grafana
# 添加 repo
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
# 安装
helm install k8s-monitor prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
访问 Grafana:
kubectl port-forward -n monitoring svc/k8s-monitor-grafana 3000:80
默认账号:admin / prom-operator
✅ 包含:
监控:
通常 kube-prometheus-stack 已包含
Pod 日志 → Promtail → Loki → Grafana
部署:
helm install loki grafana/loki-stack -n logging --create-namespace
适合日志量大、检索复杂场景
监控:
示例规则:
- alert: NodeMemoryUsage
expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.1
for: 5m
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
yum install -y chrony
systemctl enable --now chronyd
✅ 中小集群
Prometheus + Grafana + node-exporter + Loki
✅ 生产集群
kube-prometheus-stack + Alertmanager + Loki + 外部存储
如果你愿意,我可以:
你现在用的是 kubeadm 还是二进制部署?k8s 版本多少?