1、部署node-exporter
2、收集节点信息
curl -Ls http://20.0.0.17:9100/metrics | grep node_cpu_seconds
curl -Ls http://20.0.0.37:9100/metrics | grep node_cpu_seconds
curl -Ls http://20.0.0.47:9100/metrics | grep node_cpu_seconds
3、创建账号,管理集群
• 创建账号
kubectl create serviceaccount monitor -n monitor-sa
• 绑定账号到集群中
kubectl create clusterrolebinding monitor-clusterrolebinding -n monitor-sa --clusterrole=cluster-admin --serviceaccount=monitor-sa:monitor
4、创建prometheus的configmap
10250是的端口号(kubelet管理节点) |
通过kube-api的方式自动发现k8s的内部服务,包括node节点、pod、service、ingress信息,,可以访问api-server,表示可以获取集群的所有信息(仅限于pod,二进制部署无效)
5、部署prometheus的deployment(实际上是用无时间同步做的。下面截图已加上时间同步,prometheus监控的节点会down)6、创建prometheus的service
• 测试(浏览器输入http://20.0.0.17:31059/)
• 时间同步
yum install ntpdate -y
ntpdate ntp.aliyun.com
• 测试:1分钟内使用CPU的数据
sum by (name) (rate(container_cpu_usage_seconds_total{image!="",name!=""}[1m]))7、部署grafana
• 测试(浏览器输入http://20.0.0.17:30346/)
注意:若更改configmap,生产环境一定要使用热更新重载配置,千万不要delete重启,会丢失数据
curl -X POST -Ls http://10.244.0.94:9090/-/reload
• 导入数据库
第一个:监控node节点(格式:http://ip地址:service端口号)第二个:监控pod(格式:http://svc名称.命名空间.svc:端口)• 压力测试
master k8s_POD_centos-test-bd7b4c995-zl9kl_default_fac19e96-a901-4ce0-99d4-3a1cfee21e3e_0 pod名称 |
master k8s_centos_centos-test-bd7b4c995-zl9kl_default_fac19e96-a901-4ce0-99d4-3a1cfee21e3e_0 容器名称 |