|NO.Z.00318|——————————|^^ 報錯 ^^|——|KuberNetes&運維.V37|-----------------------------------------------------------|監控.v01|ControllerManager告警分析.v01|
阿新 • • 發佈:2022-04-01
[CloudNative:KuberNetes&運維.V37] [Applications.KuberNetes] [|解決ControllerManager監控告警處理|scheduler和ControllerManager處理方案一樣|]
一、Prometheus下ControllerManager告警處理
二、進入Prometheus-UI### --- Prometheus告警引數說明: ~~~ Watchdog:檢視監控是否是正常的;這個監控不想收可以關掉,也可以設定為按天傳送狀態報告 ~~~ CPUThrottlingHigh:CPU截流過高:可能這個CPU的Linux配置的不合理;伺服器下可能不會出現這種問題 ~~~ NodeClockNotSynchronising:時鐘沒有開啟;節點的NTP沒有開,生產中會有同步節點時間的服務的 ~~~ KubeControllerManagerDown:服務狀態是正常的;但顯示告警;原因見下文 ~~~ KubeSchedulerDown:服務狀態是正常的;但顯示告警;原因見下文
### --- 進入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)