|NO.Z.00318|——————————|^^ 报错 ^^|——|KuberNetes&运维.V37|——|监控.v01|ControllerManager告警分析.v01|

一、Prometheus下ControllerManager告警处理
### --- Prometheus告警参数说明:

~~~     Watchdog:查看监控是否是正常的;这个监控不想收可以关掉,也可以设置为按天发送状态报告
~~~     CPUThrottlingHigh:CPU截流过高:可能这个CPU的Linux配置的不合理;服务器下可能不会出现这种问题
~~~     NodeClockNotSynchronising:时钟没有开启;节点的NTP没有开,生产中会有同步节点时间的服务的
~~~     KubeControllerManagerDown:服务状态是正常的;但显示告警;原因见下文
~~~     KubeSchedulerDown:服务状态是正常的;但显示告警;原因见下文
二、进入Prometheus-UI
### --- 进入Prometheus-UI
~~~     http://prom.test.com/alerts——>Alerts——>Firing——>查看告警处理——>

~~~     # 注:kubescheduler的处理方案和ControllerManager的处理方案一样,
~~~     此环境以ControllerManager为例
三、告警处理:ControllerManager告警分析
### --- ControllerManager告警处理流程

~~~     # 告警原因分析:KubeControllerManager,KubeScheduler:
~~~     都是监听地址和servicemonitor导致的告警
~~~     后台查询服务状态是正常的,但是显示告警;
~~~     kubeadm安装不会出现这种问题,二进制是会有这种问题的;
### --- 告警原因分析 

~~~     # 原因一:
~~~     因为ControllerManager的简体地址是127.0.0.1的地址,
~~~     Prometheus访问不了ControllerManager和scheduler,所以就会发出告警
[root@k8s-master01 ~]# netstat  -lntp |grep controll
 tcp        0       0 127.0.0.1:10252       0.0.0.0:*       LISTEN  61827/kube-controll
 tcp6       0       0 :::10257              :::*            LISTEN  61827/kube-controll
~~~     # 原因二:
~~~     会注册一个servicemonitor注入到监控里,去发现监控点,
~~~     然后通过targets中就可以看到通过servicemonitor创建的监控项
### --- 会创建一个servicemonitor,注册到Prometheus中,然后就会动态的发现监控点
~~~     然后通过targets中就可以看到通过servicemonitor配置的监控项

[root@k8s-master01 ~]# kubectl get servicemonitor -n monitoring
### --- 查看scheduler的servicemonitor
[root@k8s-master01 ~]# kubectl get servicemonitor -n monitoring -n monitoring kube-controller-manager -oyaml
~~~     # 注释一:不用切更改
    port: http-metrics
  jobLabel: k8s-app             // 不用去更改, 
~~~     # 注释二:监控数据获取方式:主要是在kube-system中找符合:kube-controller-manager这个标签的service
   namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      k8s-app: kube-controller-manager
### --- 查找符合这个标签的service
~~~     注:输出显示没有这个service,没有这个service,Prometheus就找不到ControllerManager的地址

[root@k8s-master01 ~]# kubectl get svc -n kube-system -l k8s-app=kube-controller-manager
No resources found in kube-system namespace.

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on 2022-04-01 13:03  yanqi_vip  阅读(240)  评论(0)    收藏  举报

导航