1. k8s监控方案
【cAdvisor+Heapster+InfluxDB+Grafana】
cAdvisor+Heapster+InfluxDB+Grafana
- cAdvisor:采集容器的cpu/内存等,在k8s中工作,与k8s集成
- Heapster:通过kubelet(运行在node上的agent)对cAdvisor采集的数据进行汇总
缺点:
- 无法对业务进行监控,受限于cAdvisor与Heapster的功能
- 扩展性较差
- 功能单一
【cAdvisor/exporter+Prometheus+Grafana】
cAdvisor/exporter+Prometheus+Grafana
2. k8s监控指标
Kubernetes本身监控
- Node资源利用率:对cpu,内存,硬盘进行监控
- Node数量
- Pods数量(node)
- 资源对象状态
Pod监控
3. 实现思路
- Pod性能:cAdvisor,容器cpu/内存利用率
- Node性能:node-exporter,节点CPU/内存利用率
- K8S资源对象:kubu-state-metrics,Pod/Deployment/Service
基于K8S的服务发现
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config
4. 在k8s中部署prometheus(待定)
https://github.com/kubernetes/kubernetes/tree/feature-serverside-apply/cluster/addons/prometheus
下载k8s中prometheus配置yaml文件到 k8s master节点的/root目录下
kubectl apply -f prometheus-rbac.yaml
kubectl apply -f prometheus-configmap.yaml
5. 监控k8s集群node
6. 在k8s中部署grafana与可视化
7. 监控k8s集群pod
8. 监控k8s资源对象
9. 在k8s中部署alertmanager
10. 告警规则与告警通知