Prometheus架构与实践分享 监控k8s-腾讯课堂

https://www.sohu.com/a/342733264_198222

 

 

整个集群的监控需要安装下面的组件

 

 组件直接通信通过kube-dns来进行通信

 

 

 

 

 

 

 

 

 服务发现:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config

监控的时候我们不可能一个容器配置一个IP地址,我们需要引入服务发现的功能,普罗米修斯支持三种服务的发现功能 1、# 基于k8s的服务发现kubernetes_sd_configs:2、基于注册中心的zk,不支持Eureka

部署方式:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus

源码目录:kubernetes/cluster/addons/prometheus

服务发现:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config

在k8s的master上面安装普罗米修斯

部署条件

1、K8S中部署内部DNS服务

2、已有可使用的动态PV 、或者使用静态PV

 

 

1、下载github包:https://github.com/kubernetes/kubernetes/

2、复制文件到指定目录

mkdir ~/prometheus
cp ~/kubernetes/cluster/addons/prometheus/* ~/prometheus/

3、进入到目录

cd ~/prometheus/

4、k8s通过配置文件创建运行容器

kubectl apply -f prometheus-rbac.yaml
kubectl apply -f prometheus-configmap.yaml
kubectl apply -f prometheus-statefulset.yaml
kubectl apply -f prometheus-service.yaml 

5、查看创建资源

复制代码
kubectl get pod,svc -n kube-system
NAME                           READY   STATUS    RESTARTS   AGE
pod/coredns-64479cf49b-lsqqn   1/1     Running   0          75m
pod/prometheus-0               2/2     Running   0          2m12s

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns     ClusterIP   10.0.0.2     <none>        53/UDP,53/TCP,9153/TCP   75m
service/prometheus   NodePort    10.0.0.170   <none>        9090:42575/TCP           8s
复制代码

 

 上面部署是有顺序的,必须先部署rabc.yaml 必须安装上面的部署方式部署

监控的组件指标如下:

第一个指标:监控k8s master节点中api-service组件指标

 

 

 

 

 

 

 

 

 

 

 、可以查看整个k8s集群消耗的cpu的利用率

1、查看整个k8s集群消耗的cpu 、内存等指标

 

 

 

 

 

 2、可以查看整个k8s集群中部署的全部pod的信息,可以安装pod消耗的cpu进行排序

 

 

 

 

 

 3、也可以查看某个节点上面部署的pod、容器的cpu和内存资源

 

 

 

 

 

 

 

node监控也需要安装nodeexpoerter

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 1、可以查看当前集群占用了多少主机的多少CPU、内存、磁盘空间等

 

 

 

 2、可以查看整个k8s集群下面deployment部署了多少应用

 

 

 

 3、可以查看整个k8s集群存在多少个node节点

 

 

 

 3、会查看当前k8s集群下面存在多少个pod

 

 

 

 4、当前k8s集群下面存在多少个容器,容器总的资源消耗了多少

 

 

 

 5、你也可以选择对于的namespace,查看某个具体的namespace下面部署了多少pod、多少容器,每个namespace对应的就是具体的某个应用,这样就可以查看某个应用部署在哪些k8s节点上,查看整个k8s集群的cpu、内存等指标,查看对于node的指标等

 

 

 

 部署alertManger

 

 

1、可以依据集群cpu、nodecpu  node内存 podcpu 容器cpu进行预警

 

 

 

 

 

posted on 2020-07-06 20:44  luzhouxiaoshuai  阅读(470)  评论(0编辑  收藏  举报

导航