精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PLEG is not healthy?幕后黑手居然是它!

開發 前端
PLEG 全稱叫 Pod Lifecycle Event Generator,即 Pod 生命周期事件生成器。實際上它只是 Kubelet 中的一個模塊,主要職責就是通過每個匹配的 Pod 級別事件來調整容器運行時的狀態,并將調整的結果寫入緩存,使 Pod 的緩存保持最新狀態。

[[426472]]

本文轉載自微信公眾號「運維開發故事」,作者沒有文案的夏老師。轉載本文請聯系運維開發故事公眾號。

問題描述

環境 :ubuntu18.04,自建集群k8s 1.18 ,容器運行時docker。

現象:某個Node頻繁NotReady,kubectl describe該Node,出現“PLEG is not healthy: pleg was last seen active 3m46.752815514s ago; threshold is 3m0s”錯誤,頻率在5-10分鐘就會出現一次。

我們首先要明白PLEG是什么?

PLEG 全稱叫 Pod Lifecycle Event Generator,即 Pod 生命周期事件生成器。實際上它只是 Kubelet 中的一個模塊,主要職責就是通過每個匹配的 Pod 級別事件來調整容器運行時的狀態,并將調整的結果寫入緩存,使 Pod 的緩存保持最新狀態。先來聊聊 PLEG 的出現背景。在 Kubernetes 中,每個節點上都運行著一個守護進程 Kubelet 來管理節點上的容器,調整容器的實際狀態以匹配 spec 中定義的狀態。具體來說,Kubelet 需要對兩個地方的更改做出及時的回應:

  • Pod spec 中定義的狀態
  • 容器運行時的狀態

對于 Pod,Kubelet 會從多個數據來源 watch Pod spec 中的變化。對于容器,Kubelet 會定期(例如,10s)輪詢容器運行時,以獲取所有容器的最新狀態。隨著 Pod 和容器數量的增加,輪詢會產生不可忽略的開銷,并且會由于 Kubelet 的并行操作而加劇這種開銷(為每個 Pod 分配一個 goruntine,用來獲取容器的狀態)。輪詢帶來的周期性大量并發請求會導致較高的 CPU 使用率峰值(即使 Pod 的定義和容器的狀態沒有發生改變),降低性能。最后容器運行時可能不堪重負,從而降低系統的可靠性,限制 Kubelet 的可擴展性。為了降低 Pod 的管理開銷,提升 Kubelet 的性能和可擴展性,引入了 PLEG,改進了之前的工作方式:

  • 減少空閑期間的不必要工作(例如 Pod 的定義和容器的狀態沒有發生更改)。
  • 減少獲取容器狀態的并發請求數量。

所以我們看這一切都離不開kubelet與pod的容器運行時。

一方面,kubelet扮演的是集群控制器的角色,它定期從API Server獲取Pod等相關資源的信息,并依照這些信息,控制運行在節點上Pod的執行;

另外一方面,kubelet作為節點狀況的監視器,它獲取節點信息,并以集群客戶端的角色,把這些狀況同步到API Server。在這個問題中,kubelet扮演的是第二種角色。Kubelet會使用上圖中的NodeStatus機制,定期檢查集群節點狀況,并把節點狀況同步到API Server。而NodeStatus判斷節點就緒狀況的一個主要依據,就是PLEG。

PLEG是Pod Lifecycle Events Generator的縮寫,基本上它的執行邏輯,是定期檢查節點上Pod運行情況,如果發現感興趣的變化,PLEG就會把這種變化包裝成Event發送給Kubelet的主同步機制syncLoop去處理。但是,在PLEG的Pod檢查機制不能定期執行的時候,NodeStatus機制就會認為,這個節點的狀況是不對的,從而把這種狀況同步到API Server。

整體的工作流程如下圖所示,虛線部分是 PLEG 的工作內容。

以node notready 這個場景為例,來講解PLEG:

Kubelet中的NodeStatus機制會定期檢查集群節點狀況,并把節點狀況同步到API Server。而NodeStatus判斷節點就緒狀況的一個主要依據,就是PLEG。

PLEG定期檢查節點上Pod運行情況,并且會把pod 的變化包裝成Event發送給Kubelet的主同步機制syncLoop去處理。但是,在PLEG的Pod檢查機制不能定期執行的時候,NodeStatus機制就會認為這個節點的狀況是不對的,從而把這種狀況同步到API Server,我們就會看到 not ready 。

PLEG有兩個關鍵的時間參數,一個是檢查的執行間隔,另外一個是檢查的超時時間。以默認情況為準,PLEG檢查會間隔一秒,換句話說,每一次檢查過程執行之后,PLEG會等待一秒鐘,然后進行下一次檢查;而每一次檢查的超時時間是三分鐘,如果一次PLEG檢查操作不能在三分鐘內完成,那么這個狀況,會被NodeStatus機制當做集群節點NotReady的憑據,同步給API Server。

PLEG Start就是啟動一個協程,每個relistPeriod(1s)就調用一次relist,根據最新的PodStatus生成PodLiftCycleEvent。relist是PLEG的核心,它從container runtime中查詢屬于kubelet管理containers/sandboxes的信息,并與自身維護的 pods cache 信息進行對比,生成對應的 PodLifecycleEvent,然后輸出到 eventChannel 中,通過 eventChannel 發送到 kubelet syncLoop 進行消費,然后由 kubelet syncPod 來觸發 pod 同步處理過程,最終達到用戶的期望狀態。

PLEG is not healthy的原因

這個報錯清楚地告訴我們,容器 runtime 是不正常的,且 PLEG 是不健康的。這里容器 runtime 指的就是 docker daemon 。Kubelet 通過操作 docker daemon 來控制容器的生命周期。而這里的 PLEG,指的是 pod lifecycle event generator。PLEG 是 kubelet 用來檢查 runtime 的健康檢查機制。這件事情本來可以由 kubelet 使用 polling 的方式來做。但是 polling 有其高成本的缺陷,所以 PLEG 應用而生。PLEG 嘗試以一種“中斷”的形式,來實現對容器 runtime 的健康檢查,雖然實際上,它同時用了 polling 和”中斷”這樣折中的方案。

從 Docker 1.11 版本開始,Docker 容器運行就不是簡單通過 Docker Daemon 來啟動了,而是通過集成 containerd、runc 等多個組件來完成的。雖然 Docker Daemon 守護進程模塊在不停的重構,但是基本功能和定位沒有太大的變化,一直都是 CS 架構,守護進程負責和 Docker Client 端交互,并管理 Docker 鏡像和容器。現在的架構中組件 containerd 就會負責集群節點上容器的生命周期管理,并向上為 Docker Daemon 提供 gRPC 接口。

PLEG在每次迭代檢查中會調用runc的 relist() 函數干的事情,是定期重新列出節點上的所有容器,并與上一次的容器列表進行對比,以此來判斷容器狀態的變換。相當于docker ps來獲取所有容器,在通過docker Inspect來獲取這些容器的詳細信息。在有問題的節點上,通過 docker ps命令會沒有響應,這說明上邊的報錯是準確的。

經常出現的場景

出現 pleg not healthy,一般有以下幾種可能:

  • 容器運行時無響應或響應超時,如 docker進程響應超時(比較常見)
  • 該節點上容器數量過多,導致 relist 的過程無法在 3 分鐘內完成
  • relist 出現了死鎖,該 bug 已在 Kubernetes 1.14 中修復。
  • 網絡

排查處理過程描述

1.我們在問題節點上執行top,發現有進程名為scope的進程cpu占用率一直是100%。通過翻閱資料得知 systemd.scope:范圍(scope)單元并不通過單元文件進行配置, 而是僅能以編程的方式通過 systemd D-Bus 接口創建。范圍單元的名稱都以 ".scope" 作為后綴。與服務(service)單元不同,范圍單元用于管理 一組外部創建的進程, 它自身并不派生(fork)任何進程。范圍(scope)單元的主要目的在于以分組的方式管理系統服務的工作進程。2.在繼續執行在有問題的節點上,通過 docker ps命令會沒有響應。說明容器 runtime也是有問題的。那容器 runtime與systemd有不有關系呢?3.我們通過查閱到阿里的一篇文章,阿里巴巴 Kubernetes 集群問題排查思路和方法。找到了關系,有興趣的可以根據文末提供的鏈接去細致了解。以下是在該文章中截取的部分內容。

什么是D-Bus呢?

通過阿里巴巴 Kubernetes 集群問題排查思路和方法[1]中如下描述:在 Linux 上,dbus 是一種進程間進行消息通信的機制。

RunC 請求 D-Bus

容器 runtime 的 runC 命令,是 libcontainer 的一個簡單的封裝。這個工具可以用來管理單個容器,比如容器創建和容器刪除。在上節的最后,我們發現 runC 不能完成創建容器的任務。我們可以把對應的進程殺掉,然后在命令行用同樣的命令啟動容器,同時用 strace 追蹤整個過程。

分析發現,runC 停在了向帶有 org.free 字段的 dbus socket 寫數據的地方。

解決問題

最后可以斷定是systemd的問題,我們用 systemctl daemon-reexec 來重啟 systemd,問題消失了。所以更加確定是systemd的問題。

具體原因大家可以參考:https://www.infoq.cn/article/t_ZQeWjJLGWGT8BmmiU4這篇文章。

根本上解決問題是:將systemd升級到 v242-rc2,升級后需要重啟操作系統。(https://github.com/lnykryn/systemd-rhel/pull/322)

總結

PLEG is not healthy的問題居然是因為systemd導致的。最后通過將systemd升級到 v242-rc2,升級后需要重啟操作系統。(https://github.com/lnykryn/systemd-rhel/pull/322) 參考資料

  • Kubelet: Pod Lifecycle Event Generator (PLEG)
  • Kubelet: Runtime Pod Cache
  • relist() in kubernetes/pkg/kubelet/pleg/generic.go
  • Past bug about CNI — PLEG is not healthy error, node marked NotReady
  • https://www.infoq.cn/article/t_ZQeWjJLGWGT8BmmiU4
  • https://cloud.tencent.com/developer/article/1550038

 

 

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

2018-02-05 15:52:06

硬盤故障損壞

2022-03-24 09:37:35

黑客網絡攻擊

2021-04-20 12:36:33

攻擊漏洞黑客

2015-10-19 11:15:13

2013-06-28 09:45:58

vSphere虛擬機

2018-01-30 11:52:39

IDC全閃存

2020-07-24 09:20:21

彈窗開機游戲

2021-01-22 09:11:34

Python多線程CPU

2009-02-27 09:44:00

2009-08-10 15:52:40

2013-09-02 09:44:54

2024-05-20 08:45:46

2021-08-02 15:06:46

vim服務Java

2021-06-03 14:18:59

勒索軟件攻擊數據泄露

2009-07-03 08:26:09

2025-02-07 20:25:03

2021-06-02 16:19:14

技術研發指標

2010-05-12 19:40:09

2019-08-09 10:15:07

程序員項目研發

2025-03-12 10:36:32

點贊
收藏

51CTO技術棧公眾號

中文字幕第15页| 黄色一级在线视频| 国产麻豆一精品一男同| 黄色综合网站| 日韩精品久久久久| 在线观看岛国av| 黄色的视频在线观看| 99在线视频精品| 国产美女被下药99| 五月天婷婷综合网| 欧美国产美女| 国产丝袜一区视频在线观看| 91欧美一区二区三区| 另类激情视频| 一区二区免费在线| 亚洲精品9999| 熟妇人妻中文av无码| 久久福利资源站| 7777精品视频| 激情小说中文字幕| 郴州新闻综合频道在线直播| 亚洲国产高潮在线观看| 亚洲第一区第二区第三区| 666av成人影院在线观看| 亚洲精品乱码久久久久| 色爱区成人综合网| 日韩专区一区二区| 成人免费观看av| 成人在线播放av| 国产熟妇一区二区三区四区| 好看的av在线不卡观看| 日韩综合视频在线观看| 久久精品成人av| 精品一区二区男人吃奶| 欧美一区二区三区四区在线观看| 中文字幕第36页| 色在线视频观看| 亚洲国产精品人人做人人爽| 成人性做爰片免费视频| 91福利在线视频| 久久久久综合网| 久久伊人资源站| 天堂av资源网| 羞羞网站在线看| 熟妇女人妻丰满少妇中文字幕| 国产欧美va欧美va香蕉在| 欧美福利一区二区三区| 国产视频在线免费观看| 另类中文字幕网| 国产精品久久久久国产a级| 亚州国产精品视频| 国产视频欧美| 91黄色8090| 亚洲 欧美 视频| 亚洲欧洲一区| 亚州av一区二区| 久久一区二区三区视频| 夜夜嗨网站十八久久| 久久久久久午夜| 日本少妇全体裸体洗澡| 亚洲第一黄网| 777777777亚洲妇女| 久久国产视频播放| 久久资源在线| 国产精品男人爽免费视频1| 乱子伦一区二区三区| 日韩成人一级大片| 国产视频福利一区| 国产欧美日韩成人| 国产不卡一区视频| 国产区欧美区日韩区| 亚欧洲精品视频| 国产女主播在线一区二区| 区一区二区三区中文字幕| 波多野结衣在线网站| 国产精品亲子伦对白| 一本一生久久a久久精品综合蜜| 色三级在线观看| 亚洲欧美日韩综合aⅴ视频| 美女黄色片网站| 国产蜜臀在线| 一本色道久久综合精品竹菊| 中文字幕第80页| 国产乱码精品一区二区三区亚洲人| 日韩一区二区免费电影| 亚洲男女在线观看| 精品久久影院| 欧美风情在线观看| 久久精品视频5| 激情都市一区二区| 国产精品视频500部| 国产小视频在线播放| 中文字幕日韩av资源站| 草b视频在线观看| yiren22亚洲综合| 日韩欧美一二三区| 国产美女免费网站| 欧美日韩a区| 国产精品99久久久久久人| 国产av精国产传媒| 久久婷婷色综合| 法国空姐在线观看免费| sis001欧美| 日韩一级二级三级| 调教驯服丰满美艳麻麻在线视频| 欧美日韩亚洲一区在线观看| 久久久久久久久国产精品| 男人天堂av在线播放| 国产精品99久久久久| 国产日韩三区| av软件在线观看| 在线免费亚洲电影| 中文字幕人妻一区| 久久亚洲在线| 日本最新高清不卡中文字幕| 成人黄色在线观看视频| 亚洲国产精品99久久久久久久久| r级无码视频在线观看| 久久久国产精品网站| 日韩电影免费在线观看中文字幕| 污软件在线观看| 日韩不卡一二三区| 久久婷婷开心| 国产黄色大片在线观看| 777午夜精品视频在线播放| 瑟瑟视频在线观看| 99视频精品| 91精品国产一区二区三区动漫| 国产有码在线| 欧美日韩另类字幕中文| 一二三区视频在线观看| 天天综合国产| 国产精品专区h在线观看| 五月天婷婷在线播放| 亚洲一区电影777| 亚洲AV无码久久精品国产一区| 日韩高清欧美| 国产精品第3页| 免费在线黄色电影| 一本大道久久a久久综合| av鲁丝一区鲁丝二区鲁丝三区| 午夜精品偷拍| 97人人模人人爽人人少妇| 好吊日视频在线观看| 欧美精品欧美精品系列| 人与动物性xxxx| 美女视频第一区二区三区免费观看网站| 久久另类ts人妖一区二区| ****av在线网毛片| 亚洲第一精品夜夜躁人人爽| 青草草在线视频| 国产精品中文欧美| www.激情网| 99re热精品视频| 欧美黑人性视频| 黄色av免费观看| 午夜av一区二区| 亚洲乱码国产乱码精品精大量| 亚洲每日更新| 欧美污视频久久久| 国产另类xxxxhd高清| 在线电影av不卡网址| 中文字幕在线观看第二页| 一区在线观看免费| 99久久综合网| 亚洲欧洲一区| 人禽交欧美网站免费| 黄色成人在线视频| 久久精视频免费在线久久完整在线看| 国产女人18毛片水真多| 亚洲一区二区三区四区在线观看| 欧美在线一级片| 老司机午夜精品视频| 亚洲欧美日韩在线综合| 久久久久毛片免费观看| 国内揄拍国内精品| 黄色软件在线| 欧美精品在线一区二区三区| 加勒比av在线播放| 91在线播放网址| 男操女免费网站| 自拍视频亚洲| 免费99视频| 日韩国产大片| 97视频色精品| 成人av毛片| 日韩色在线观看| 欧美亚洲精品天堂| 成人免费一区二区三区在线观看| 伊人av在线播放| 久久福利精品| 午夜啪啪免费视频| 日韩av不卡一区| 91精品久久久久久久久中文字幕| 日韩精品亚洲人成在线观看| 亚洲欧洲一区二区三区在线观看| 国产精品污视频| 亚洲国产三级在线| 亚洲AV成人无码网站天堂久久| 国产白丝网站精品污在线入口| 日韩 欧美 高清| 欧美久久成人| 亚洲精品一区二区毛豆| 都市激情亚洲欧美| 国产精品视频网站| 白浆在线视频| 久久九九热免费视频| 奇米影视888狠狠狠777不卡| 欧美一二三四在线| 中文在线资源天堂| 精品久久久一区二区| 亚洲国产美女视频| 国产日韩欧美不卡在线| 最新日本中文字幕| 久久国产综合精品| 国产精品乱码久久久久| 国产精品vip| 欧美亚洲视频一区| 日本激情一区| 欧美日韩在线高清| 精品国产乱子伦一区二区| 亚洲va欧美va国产综合剧情| 成人免费黄色| 91国内在线视频| 俺来也官网欧美久久精品| 久久夜色精品国产欧美乱| lutube成人福利在线观看| 亚洲人av在线影院| 神马电影在线观看| 亚洲国产天堂久久综合| 亚洲AV无码成人片在线观看| 欧美日本一道本| 国产精品第6页| 日韩欧美在线视频日韩欧美在线视频| 国产一二三四在线| 亚洲免费在线播放| 国产精品国产三级国产传播| 欧美国产日本视频| 精品人伦一区二区三电影| 97久久超碰精品国产| 亚洲欧美日韩偷拍| 99亚偷拍自图区亚洲| 无码国产精品一区二区免费式直播| 国产麻豆成人传媒免费观看| theporn国产精品| 九九九久久久精品| 亚洲精品手机在线观看| 狠狠色丁香婷婷综合| 亚洲精品在线视频播放| 国产一区欧美日韩| 国产人妻精品久久久久野外| 国产福利一区二区三区视频在线| 中文字幕剧情在线观看| 国产精品一区二区黑丝| 97超碰人人看| 国产99久久精品| 在线精品视频播放| av亚洲精华国产精华精| 国产成人无码一区二区在线观看| 91美女片黄在线| 一区二区黄色片| 国产欧美一区二区精品秋霞影院| 精品人妻中文无码av在线| 国产精品伦一区| 国产大片免费看| 亚洲无线码一区二区三区| 日韩欧美三级在线观看| 色哟哟国产精品| 中文字幕日本人妻久久久免费| 欧美精品日韩综合在线| www.久久成人| 亚洲精品视频二区| 高清av电影在线观看| 久久久国产一区二区| 美女精品导航| 日本久久精品视频| 四虎精品永久免费| 国产精选一区二区| 欧美男gay| 欧美精品久久96人妻无码| 一区福利视频| 波多野结衣天堂| 国产成人综合亚洲网站| 少妇饥渴放荡91麻豆| 国产精品伦理一区二区| 久久久久亚洲av片无码下载蜜桃| 欧美三级xxx| 6—12呦国产精品| 亚洲成人黄色网址| av影片在线看| 亚洲91精品在线| 国产综合色激情| 国产精品麻豆免费版| 日本a级不卡| 男人日女人视频网站| 久久精品久久综合| 中文字幕三级电影| 中文字幕欧美国产| 精品美女久久久久| 欧美精品在线视频| 日本一级在线观看| 欧美日韩xxx| 欧美黄页免费| 免费影院在线观看一区| 欧美a级一区| 污污网站免费观看| 99国内精品久久| 日本老熟俱乐部h0930| 欧美在线一区二区| 亚洲AV成人无码一二三区在线| www.日韩.com| 韩国精品主播一区二区在线观看| 国产精品一区视频| 欧美激情麻豆| 久热在线视频观看| 久久精品人人爽人人爽| 日韩乱码人妻无码中文字幕| 欧美一级在线观看| 日韩理伦片在线| 国产成+人+综合+亚洲欧美丁香花| 亚洲一二av| 一区二区三区四区在线视频| 久久一区精品| 国产精品第七页| 亚洲国产精品自拍| 亚洲免费不卡视频| 欧美成人精品一区二区| 美女视频一区| 日韩中文一区二区三区| 麻豆成人精品| 大又大又粗又硬又爽少妇毛片| 香蕉久久一区二区不卡无毒影院| 成人福利小视频| 欧美日本亚洲视频| 免费观看在线一区二区三区| 亚洲天堂av免费在线观看| 青青草成人在线观看| 国产亚洲精品熟女国产成人| 欧美性猛交xxxx久久久| 天天操天天爱天天干| 午夜精品一区二区三区av| 香蕉大人久久国产成人av| 400部精品国偷自产在线观看| 久久se精品一区二区| 91动漫免费网站| 欧美日韩美少妇| 日本a在线播放| 成人欧美一区二区三区在线| 亚洲精品2区| 日韩高清在线一区二区| 亚洲综合一区二区三区| av在线亚洲天堂| 欧美激情久久久久| 国内毛片久久| 久草青青在线观看| 国产日韩欧美一区二区三区乱码 | 奇米一区二区三区四区久久| 久久综合社区| 97xxxxx| 久久精品人人做人人爽人人 | 日韩亚洲欧美中文三级| 最近中文字幕免费mv2018在线| 亚洲一区久久久| 欧美性久久久| 538国产视频| 在线免费观看视频一区| 日本在线人成| 成人av男人的天堂| 在线视频亚洲| 精品无码国产污污污免费网站| 欧美日韩另类一区| 成人video亚洲精品| 国产乱码精品一区二区三区中文 | 91精品国产乱码久久久久久| 国产精品igao网网址不卡| 亚洲曰韩产成在线| 日本五码在线| 国产欧美日韩丝袜精品一区| 欧美激情 亚洲a∨综合| 国产老熟女伦老熟妇露脸| 91精品办公室少妇高潮对白| 九义人在线观看完整免费版电视剧| av免费观看久久| 亚久久调教视频| 四虎影院中文字幕| 亚洲国产精品系列| 成人午夜sm精品久久久久久久| 成年人三级视频| 久久精品亚洲国产奇米99| 国产精品视频第一页| 国内精品久久久久影院 日本资源| 一区二区三区韩国免费中文网站| 国产精品嫩草影院8vv8| 午夜一区二区三区在线观看| 成人免费在线视频网| 粉嫩av四季av绯色av第一区| 国产亚洲午夜| avove在线播放| 亚洲人成网站在线播| 一区视频网站|