kubernetes集群之Pod說能不能讓我體面的消亡呀?

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 服務器上移除。

拆分理解

  1. 發起刪除一個Pod命令後系統默認給30s的寬限期,API系統標誌這個Pod對象為Terminating(終止中)狀態
  2. kublectl發現Pod狀態為Terminating則嘗試執行preStop生命周期勾子,並可多給2s的寬限期
  3. 同時控制面將Pod中svc的endpoint中移除
  4. 寬限期到則發送TERM信號,API 服務器刪除 Pod 的 API 對象,同時告訴kubelet刪除Pod資源對象
  5. 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說能不能讓我體面的消亡呀?】

第七段:待更新?推薦休閑閱讀:【囧么肥事】