日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
k8s故障檢測與自愈之一

組件故障

站在用戶的角度思考問題,與客戶深入溝通,找到墊江網(wǎng)站設計與墊江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋墊江地區(qū)。

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

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

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

kubenurse會對ingress、dns、apiserver、kube-proxy進行網(wǎng)絡探測。

使用KubeNurse進行集群網(wǎng)絡監(jiān)控

節(jié)點故障

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

node-problem-detector

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

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

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

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

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

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

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

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

主要參數(shù):

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

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

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

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

 
 
 
 
  1. 創(chuàng)建ConfigMap: 
  2. kubectl create -f node-problem-detector-config.yaml 
  3. 創(chuàng)建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,可以配置策略,發(fā)送到微信。


當前文章:k8s故障檢測與自愈之一
本文URL:http://m.5511xx.com/article/cdjsdhg.html