1. 程式人生 > 其它 >|NO.Z.00318|——————————|^^ 報錯 ^^|——|KuberNetes&運維.V37|-----------------------------------------------------------|監控.v01|ControllerManager告警分析.v01|

|NO.Z.00318|——————————|^^ 報錯 ^^|——|KuberNetes&運維.V37|-----------------------------------------------------------|監控.v01|ControllerManager告警分析.v01|



[CloudNative:KuberNetes&運維.V37]                                                                      [Applications.KuberNetes] [|解決ControllerManager監控告警處理|scheduler和ControllerManager處理方案一樣|]








一、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.








===============================END===============================


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



來自為知筆記(Wiz)