簡體   English   中英

Kubernetes StatefulSet Pod啟動錯誤恢復

[英]Kubernetes StatefulSet pod startup error recovery

如果您在StatefulSet規范中修補映像名稱,則Kubernetes StatefulSet(v1.8)會自動將其管理的Pod翻轉到新映像-畢竟,安排這種更新是其主要工作之一。 但是,如果在映像提取步驟中部署修改后的映像失敗(例如,映像名稱中有錯字,因此沒有要提取的映像),則嘗試使用新映像重新啟動的第一個Pod將卡在ImagePullBackOff狀態,過渡停止。 很好,這就是您想要和期望的。 但是,如果您隨后再次修補StatefulSet規范以更正錯誤,則該集不會被修復-它只是處於斷開狀態而已-直到您(手動)刪除失敗的Pod,此時一切都會按原樣進行一切都恢復健康狀態。

我認為應該有一種配置方法,以便在更新映像名稱時自動進行這種恢復,就像正常部署一樣,而不是需要人工干預(特別是因為這是針對CI-類型應用程序,無論如何都需要將其全部自動化)。 我忍不住覺得自己只是在文檔中找不到合適的選項,但是仔細研究文檔並進行無休止的Google搜索並沒有顯示出成功的秘訣。 有沒有一種方法可以將這種恢復配置為自動發生,如果可以,那是什么?

如果失敗,是否有一種優雅的方法可以自動檢測失敗的狀態,從而觸發腳本刪除失敗的Pod? 我嘗試過的所有內容似乎都很混亂,有很多輪詢和臨時超時,所以我很難相信這是正確的方法。

我在GitHub上也提出了同樣的問題。 現在的答案是,不,沒有選擇的余地,並且可能缺少文檔。 我們正在開始討論,看是否有任何方法可以改善這一點。 目前,解決方法可能將取決於輪詢和超時。 但是,這取決於您首先如何部署StatefulSet。 可以將某些部署工具(例如帶有--wait選項的Helm)配置為等待所有Pod運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM