大家在使用 Kubernetes 時(shí),會(huì)遇到創(chuàng)建 Pod 失敗却舀,這時(shí)會(huì)分析什么原因?qū)е聞?chuàng)建 Pod 失敵婕浮?

問題

大家在使用 Kubernetes 時(shí)挽拔,會(huì)遇到創(chuàng)建 Pod 失敗辆脸,這時(shí)會(huì)分析什么原因?qū)е聞?chuàng)建 Pod 失敗螃诅?


Pod status 狀態(tài)解釋 [1]

CrashLoopBackOff:容器退出每强,kubelet 正在將它重啟

InvalidImageName:無(wú)法解析鏡像名稱

ImageInspectError:無(wú)法校驗(yàn)鏡像

ErrImageNeverPull:策略禁止拉取鏡像

ImagePullBackOff:鏡像正在重試?yán)?/p>

RegistryUnavailable:連接不到鏡像中心

ErrImagePull:通用的拉取鏡像出錯(cuò)

CreateContainerConfigError:不能創(chuàng)建 kubelet 使用的容器配置

CreateContainerError:創(chuàng)建容器失敗

m.internalLifecycle.PreStartContainer:執(zhí)行 hook 報(bào)錯(cuò)

RunContainerError:?jiǎn)?dòng)容器失敗

PostStartHookError:執(zhí)行 hook 報(bào)錯(cuò)

ContainersNotInitialized:容器沒有初始化完畢

ContainersNotReady:容器沒有準(zhǔn)備完畢

ContainerCreating:容器創(chuàng)建中

PodInitializing:pod 初始化中

DockerDaemonNotReady:docker 還沒有完全啟動(dòng)

NetworkPluginNotReady:網(wǎng)絡(luò)插件還沒有完全啟動(dòng)

容器 Exit Code

容器退出狀態(tài)碼的區(qū)間 [2]

必須在 0-255 之間

0 表示正常退出

外界中斷將程序退出的時(shí)候狀態(tài)碼區(qū)間在 129-255始腾,(操作系統(tǒng)給程序發(fā)送中斷信號(hào)州刽,比如 kill -9 是 SIGKILL空执,ctrl+c 是 SIGINT)

一般程序自身原因?qū)е碌漠惓M顺鰻顟B(tài)區(qū)間在 1-128 (這只是一般約定,程序如果一定要用 129-255 的狀態(tài)碼也是可以的)

注意:有時(shí)我們會(huì)看到代碼中有 exit (-1)穗椅,這時(shí)會(huì)自動(dòng)做一個(gè)轉(zhuǎn)換辨绊,最終輸出的結(jié)果還是會(huì)在 0-255 之間。

轉(zhuǎn)換公式如下匹表,code 表現(xiàn)退出的狀態(tài)碼:


當(dāng)指定的退出時(shí)狀態(tài)碼為負(fù)數(shù)门坷,轉(zhuǎn)換公式如下:


256 - (|code| % 256)

當(dāng)指定的退出時(shí)狀態(tài)碼為正數(shù),轉(zhuǎn)換公式如下:


code % 256

下面是異常狀態(tài)碼區(qū)間表袍镀,具體信息可以參考鏈接:


http://tldp.org/LDP/abs/html/exitcodes.html




查看 Pod 退出狀態(tài)碼

$ kubectl describe pods ${pod-name}

下面 Pod 退出狀態(tài)碼是為 0默蚌,說明容器是正常退出的。




常見的容器退出狀態(tài)碼解釋 [3]

Exit Code 0

退出代碼 0 表示特定容器沒有附加前臺(tái)進(jìn)程

該退出代碼是所有其他后續(xù)退出代碼的例外

這不一定意味著發(fā)生了不好的事情苇羡。如果開發(fā)人員想要在容器完成其工作后自動(dòng)停止其容器绸吸,則使用此退出代碼。比如:kubernetes job 在執(zhí)行完任務(wù)后正常退出碼為 0



Exit Code 1

程序錯(cuò)誤设江,或者 Dockerfile 中引用不存在的文件锦茁,如 entrypoint 中引用了錯(cuò)誤的包

程序錯(cuò)誤可以很簡(jiǎn)單,例如 “除以 0”叉存,也可以很復(fù)雜码俩,比如空引用或者其他程序 crash



Exit Code 137

表明容器收到了 SIGKILL 信號(hào),進(jìn)程被殺掉歼捏,對(duì)應(yīng) kill -9

引發(fā) SIGKILL 的是 docker kill稿存。這可以由用戶或由 docker 守護(hù)程序來(lái)發(fā)起,手動(dòng)執(zhí)行:docker kill

137 比較常見瞳秽,如果 pod 中的 limit 資源設(shè)置較小瓣履,會(huì)運(yùn)行內(nèi)存不足導(dǎo)致 OOMKilled,此時(shí) state 中的 ”O(jiān)OMKilled” 值為 true寂诱,你可以在系統(tǒng)的 dmesg -T 中看到 oom 日志



Exit Code 139

表明容器收到了 SIGSEGV 信號(hào)拂苹,無(wú)效的內(nèi)存引用,對(duì)應(yīng) kill -11

一般是代碼有問題痰洒,或者 docker 的基礎(chǔ)鏡像有問題



Exit Code 143

表明容器收到了 SIGTERM 信號(hào)瓢棒,終端關(guān)閉,對(duì)應(yīng) kill -15

一般對(duì)應(yīng) docker stop 命令

有時(shí) docker stop 也會(huì)導(dǎo)致 Exit Code 137丘喻。發(fā)生在與代碼無(wú)法處理 SIGTERM 的情況下脯宿,docker 進(jìn)程等待十秒鐘然后發(fā)出 SIGKILL 強(qiáng)制退出。



不常用的一些 Exit Code

Exit Code 126: 權(quán)限問題或命令不可執(zhí)行

Exit Code 127: Shell 腳本中可能出現(xiàn)錯(cuò)字且字符無(wú)法識(shí)別的情況

Exit Code 1 或 255:因?yàn)楹芏喑绦騿T寫異常退出時(shí)習(xí)慣用 exit (1) 或 exit (-1)泉粉,-1 會(huì)根據(jù)轉(zhuǎn)換規(guī)則轉(zhuǎn)成 255连霉。這個(gè)一般是自定義 code榴芳,要看具體邏輯。

小結(jié)

在排查 Pod 為什么創(chuàng)建失敗時(shí)跺撼,首先看 Pod 容器退出狀態(tài)碼是非常有用的窟感,能快速的定位問題原因。


參考鏈接

[1] https://blog.51cto.com/shunzi115/2449411

[2] https://imroc.io/posts/kubernetes/analysis-exitcode/

[3] http://www.xuyasong.com/?p=1802

如果文章對(duì)你有幫助歉井,別忘記點(diǎn)贊柿祈、評(píng)論、Get哩至!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末躏嚎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子菩貌,更是在濱河造成了極大的恐慌卢佣,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箭阶,死亡現(xiàn)場(chǎng)離奇詭異虚茶,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)尾膊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門媳危,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人冈敛,你說我怎么就攤上這事待笑。” “怎么了抓谴?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵暮蹂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我癌压,道長(zhǎng)仰泻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任滩届,我火速辦了婚禮集侯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帜消。我一直安慰自己棠枉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布泡挺。 她就那樣靜靜地躺著辈讶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪娄猫。 梳的紋絲不亂的頭發(fā)上贱除,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天生闲,我揣著相機(jī)與錄音,去河邊找鬼月幌。 笑死碍讯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的飞醉。 我是一名探鬼主播冲茸,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缅帘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起难衰,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钦无,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盖袭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體失暂,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年鳄虱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弟塞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拙已,死狀恐怖决记,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情倍踪,我是刑警寧澤系宫,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站建车,受9級(jí)特大地震影響扩借,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缤至,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一潮罪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧领斥,春花似錦嫉到、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至膊存,卻和暖如春导而,著一層夾襖步出監(jiān)牢的瞬間忱叭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工今艺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留韵丑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓虚缎,卻偏偏與公主長(zhǎng)得像撵彻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子实牡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 常見退出碼 Exit Code 0 退出代碼0表示特定容器沒有附加前臺(tái)進(jìn)程陌僵。 該退出代碼是所有其他后續(xù)退出代碼的例...
    _fishman閱讀 7,518評(píng)論 0 1
  • SIGINT SIGTERM SIGKILL區(qū)別 三者都是結(jié)束/終止進(jìn)程運(yùn)行。 1.SIGINT SIGTERM區(qū)...
    go4it閱讀 4,788評(píng)論 0 3
  • 深入分析kubelet(2)——?jiǎng)?chuàng)建Pod 緊接著上一篇繼續(xù)學(xué)習(xí)创坞。上一篇講到生產(chǎn)者碗短,本篇將介紹消費(fèi)者。 backg...
    陳先生_9e91閱讀 1,931評(píng)論 0 1
  • 前言 k8s作為現(xiàn)在最火的容器編排調(diào)度平臺(tái),好用我也就不必多說了纲堵。當(dāng)我們初識(shí)k8s的時(shí)候一個(gè)新的概念就到了我們眼前...
    LinkinStar閱讀 5,075評(píng)論 0 2
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)巡雨、焦點(diǎn)、注意力席函、語(yǔ)言聯(lián)想铐望、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 5,716評(píng)論 0 5