|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
 
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
