成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

k8s故障檢測與自愈之一

開發 前端
組件故障可以認為是節點故障的子類,只是故障來源是K8S基礎組件的一部分。

[[395197]]

組件故障

組件故障可以認為是節點故障的子類,只是故障來源是K8S基礎組件的一部分。

DNS故障:6個DNS Pod中的2個出現無法解析外部DNS名稱的情況。后果是大量線上業務因域名解析。

CNI故障:少數幾個節點的容器網絡和外部斷開,節點訪問自身的Pod IP沒有問題,但是其它節點無法訪問故障節點的Pod IP。這種情況下,Pod本機的健康檢查無效,導致故障實例持續存在,一定比例的業務請求失敗。

kubenurse會對ingress、dns、apiserver、kube-proxy進行網絡探測。

使用KubeNurse進行集群網絡監控

節點故障

  • 硬件錯誤: CPU/Memory/磁盤故障
  • kernel問題: kernel deadlock/corrupted file systems
  • 容器運行時錯誤: Docker假死
  • 基礎設施服務故障: NTP故障

node-problem-detector

  • 根源: 在kubernetes集群上,通常我們只是管制集群本身以及容器的穩定運行。但是這些穩定性都是強依賴節點node的穩定的。可是node的管理,在kubernetes是比較弱的,因為可能對于kubernetes的初始設計來說,這些應該是IaaS的事。但是隨著kubernetes的發展,它越來變成了一個操作系統,它管理的內容將越來越多,所以對于node的管理也將納入kuberntes里管理。所以延伸出了node problem detector這個項目。
  • Kubernetes支持兩種上報機制:

1、NodeCondition(節點狀況): 這是指永久性的錯誤,它將造成pod無法在這個節點運行。這個節點狀況只有在節點重啟后才會被重置

2、Event(事件): 影響節點的臨時性問題,但是它是對于系統診斷是有意義的。NPD就是利用kubernetes的上報機制,通過檢測系統的日志(例如centos中journal),把錯誤的信息上報到kuberntes的node上。

圖片故障節點上的事件,會記錄在宿主機的某些日志中。這些日志(例如內核日志)中噪音信息太多,NPD會提取其中有價值的信息,可以將這些信息報送給Prometheus,也會生成離線事件。這些信息可以推送到企業微信,人工處理。也可以對應到自愈系統的方法庫,自動恢復。在裸金屬K8S集群中,由于缺乏基礎設施的支撐,自動擴充節點可能無法實現,只能通過更加精細的自動化運維,治愈節點的異常狀態。

以CNI故障為例,可能的治愈流程如下:

  1. 查詢運維方法庫,如果找到匹配項,執行對應的運維動作
  2. 如果上述步驟無效,嘗試刪除節點上負責CNI的Pod,以重置節點的路由、Iptables配置
  3. 如果上述步驟無效,嘗試重啟容器運行時
  4. 告警,要求運維人員介入

部署NPD實踐你需要有一個k8s集群,必須有1個以上的worker節點。大家可以參考https://github.com/kubernetes/node-problem-detector。

  1. 主要參數: 
  2. --prometheus-address: 默認綁定地址127.0.0.1,如果需要推送給promethues,需要修改。 
  3. --config.system-log-monitor: 節點問題檢測器將為每個配置啟動一個單獨的日志監視器.案例: config/kernel-monitor.json。 
  4. --config.custom-plugin-monito: 節點問題檢測器將為每個配置啟動一個單獨的自定義插件監視器。案例: config/custom-plugin-monitor.json 

主要參數:

--prometheus-address: 默認綁定地址127.0.0.1,如果需要推送給promethues,需要修改。

--config.system-log-monitor: 節點問題檢測器將為每個配置啟動一個單獨的日志監視器.案例: config/kernel-monitor.json。

--config.custom-plugin-monito: 節點問題檢測器將為每個配置啟動一個單獨的自定義插件監視器。案例: config/custom-plugin-monitor.json

將代碼克隆到本地,按照自己的需求更改deployment文件中的DaemonSet,執行以下內容:

  1. 創建ConfigMap: 
  2. kubectl create -f node-problem-detector-config.yaml 
  3. 創建DaemonSet: 
  4. kubectl create -f node-problem-detector.yaml 

如何驗證NPD捕獲信息這部分,可以在測試集群的node幾點上做。

  1. sudo sh -c "echo 'kernel: BUG: unable to handle kernel NULL pointer dereference at TESTING' >> /dev/kmsg" 
  2. 可以在kubectl describe nodes x.x.x.x 中看到KernelOops事件的告警。 
  3. sudo sh -c "echo 'kernel: INFO: task docker:20744 blocked for more than 120 seconds.' >> /dev/kmsg" 
  4. 可以在kubectl describe nodes x.x.x.x 中看到DockerHung事件的告警。 

如果事件告警接到了promethues,可以配置策略,發送到微信。

 

責任編輯:武曉燕 來源: 運維開發故事
相關推薦

2023-04-30 00:02:40

K8Skubelet數據

2022-04-22 13:32:01

K8s容器引擎架構

2023-12-05 08:33:44

滴滴故障k8s

2024-03-18 15:44:48

K8S故障運維

2024-02-20 16:55:14

K8S云計算

2023-11-06 07:16:22

WasmK8s模塊

2022-10-10 12:54:00

Flink運維

2021-08-20 11:35:04

服務運維 故障

2023-09-06 08:12:04

k8s云原生

2024-05-27 00:00:10

KubernetesK8s云原生

2024-03-27 14:54:21

KubernetesK8S集群

2024-03-12 15:47:12

Kubernetes容器K8S

2024-01-07 19:43:50

K8S節點

2023-12-01 15:58:00

Kubernetes集群DevOps

2020-05-12 10:20:39

K8s kubernetes中間件

2022-09-05 08:26:29

Kubernetes標簽

2024-03-01 19:59:17

2023-05-04 15:49:59

KafkaK8sKubernetes

2023-03-06 07:19:50

2022-02-25 11:16:51

故障運維Nginx
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品国产一区 | 91日b| 综合网在线 | 3p视频在线观看 | 色综久久 | 中国毛片免费 | 东京久久 | 91精品中文字幕一区二区三区 | 国产日韩欧美一区 | 成人毛片一区二区三区 | 欧美日韩精品 | 欧美一区二区免费在线 | 久久精品二区 | www.日韩 | 91精品国产一区二区三区 | 91精品国产91久久久久福利 | 国产一级特黄aaa大片评分 | 91免费观看国产 | 国产片侵犯亲女视频播放 | 四虎在线观看 | 色爱综合网 | 日韩亚洲一区二区 | 日韩精品免费一区 | 国产精品成av人在线视午夜片 | 狠狠做深爱婷婷综合一区 | 国产一级特黄视频 | 精品免费国产视频 | 在线日韩欧美 | 久久久久久国产一区二区三区 | 欧美一区二区 | 99精品视频在线观看 | 成人国产精品久久 | 99成人| 久久综合久久综合久久综合 | 99精品久久久 | 黄色一级免费观看 | 成人性视频免费网站 | 亚洲综合在 | 亚洲欧美日韩久久 | 日韩成人在线网址 | 在线四虎|