kubernetes集群之Pod說能不能讓我體面的消亡呀?
由于 Pod 所代表的是在集群中節點上運行的行程,當不再需要這些行程時允許其體面地終止,
1、如果 preStop 回呼所需要的時間長于默認的體面終止限期會發生什么?
2、 Pod 的體面終止限期是默認值是多少?
3、超出終止寬限期限時,kubelet 會觸發強制關閉程序,這個程序是怎么樣的?
4、強制洗掉 StatefulSet 的 Pod,會出現什么問題?為什么強制洗掉 StatefulSet 的 Pod可能會違背至多一個Pod原則?

囧么肥事-胡說八道



1、Pod 的體面終止限期是默認值是多少?
默認情況下,所有的洗掉操作都會附有 30 秒鐘的寬限期限,
kubectl delete 命令支持 --grace-period=<seconds> 選項,允許你多載默認值, 設定自己希望的期限值,
將寬限期限強制設定為 0 意味著立即從 API 服務器洗掉 Pod,
如果 Pod 仍然運行于某節點上,強制洗掉操作會觸發 kubelet 立即執行清理操作,
說明: 你必須在設定
--grace-period=0的同時額外設定--force引數才能發起強制洗掉請求,
2、Pod體面終止程序是怎么樣的?
Pod正常終止,容器運行時會發送一個 TERM 信號到每個容器中的主行程,kubelet 開始本地的 Pod 關閉程序,API 服務器中的 Pod 物件被更新,記錄涵蓋體面終止限期在內 Pod 的最終死期30秒,超出所計算時間點則認為 Pod 已死(dead),之后 Pod 就會被從 API 服務器上移除,
拆分理解
- 發起洗掉一個Pod命令后系統默認給30s的寬限期,API系統標志這個Pod物件為
Terminating(終止中)狀態 - kublectl發現Pod狀態為
Terminating則嘗試執行preStop生命周期勾子,并可多給2s的寬限期 - 同時控制面將Pod中svc的
endpoint中移除 - 寬限期到則發送
TERM信號,API 服務器洗掉 Pod 的 API 物件,同時告訴kubelet洗掉Pod資源物件 - Pod還不關閉再發送
SIGKILL強制關閉,kubelet也會清理隱藏的pause容器

2、超出終止寬限期限時,kubelet 會觸發強制關閉程序,這個程序是怎么樣的?
直接執行強制洗掉操作時,API 服務器不再等待來自 kubelet 的、關于 Pod 已經在原來運行的節點上終止執行的確認訊息,
API 服務器直接洗掉 Pod 物件,無論強制洗掉是否成功殺死了 Pod,都會立即從 API 服務器中釋放該名字,
不過在節點側,被設定為立即終止的 Pod 仍然會在被強行殺死之前獲得一點點的寬限時間,
注意:這里的強制洗掉主要說的是從API服務器移除Pod物件
ReplicaSets和其他作業負載資源不再將 Pod 視為合法的、能夠提供服務的副本
節點端依然是可以允許Pod體面消亡
3、 如果 preStop 回呼所需要的時間長于默認的體面終止限期會發生什么?
如果 Pod 中的容器之一定義了 preStop 回呼勾子, kubelet 開始在容器內運行該回呼邏輯,如果超出體面終止限期時,preStop 回呼邏輯 仍在運行,kubelet 會請求給予該 Pod 的寬限期一次性增加 2 秒鐘,
4、強制洗掉 StatefulSet 的 Pod,會出現什么問題?為什么強制洗掉 StatefulSet 的 Pod可能會違背至多一個Pod原則?
強制洗掉不會等待來自 kubelet 對 Pod 已終止的確認訊息, 無論強制洗掉是否成功殺死了 Pod,它都會立即從 API 服務器中釋放該名字,
這將讓 StatefulSet 控制器可以創建一個具有相同標識的替身 Pod;因而可能導致正在運行 Pod 的重復,
StatefulSets 可用于運行分布式和集群級的應用,這些應用需要穩定的網路標識和可靠的存盤, 這些應用通常配置為具有固定標識固定數量的成員集合,
具有相同身份的多個成員可能是災難性的,并且可能導致資料丟失 (例如:票選系統中的腦裂場景),

《Kubernetes-企業級容器應用托管》-持續胡說八道
第一段:推薦閱讀:【云原生新時代弄潮兒k8s憑什么在容器化方面獨樹一幟?】
第二段:推薦閱讀:【趁著同事玩游戲偷偷認識k8s一家子補補課】
第三段:推薦閱讀:【Kubernetes家族容器小管家Pod在線答疑?】
第四段:推薦閱讀:【同事提出個我從未想過的問題,為什么Kubernetes要"多此一舉"推出靜態Pod概念?】
第五段:推薦閱讀:【探針配置失誤,線上容器應用例外死鎖后,kubernetes集群未及時回應自愈重啟容器?】
第六段:推薦閱讀:【kubernetes集群之Pod說能不能讓我體面的消亡呀?】
第七段:待更新?推薦休閑閱讀:【囧么肥事】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431421.html
標籤:其他
上一篇:TensorRT 筆記 - 在 Conda 虛擬環境中安裝
下一篇:安全最佳實踐+Klocwork
