Pod 生命週期和重啟策略

2022-07-03 06:39:11 字數 1441 閱讀 9579

pod 在整個生命週期中被系統定義為各種狀態,熟悉 pod 的各種狀態對於理解如何設定 pod 的排程策略、重啟策略是很有必要的。

pod 的狀態

狀態值描述

pending

running

pod 內所有容器均已建立,且至少有乙個容器處於執行狀態、正在啟動狀態或正在重啟狀態

succeeded

pod 內所有容器均成功執行後退出,且不會再重啟

failed

pod 內所有容器均已退出,但至少有乙個容器退出為失敗狀態

unknown

由於某種原因無法獲取該 pod 的狀態,可能由於網路通訊不暢導致

pod 的重啟策略(restartpolicy)應用於 pod 內的所有容器,並且僅在 pod 所處的 node 上由kubelet進行判斷和重啟操作。

當某個容器異常退出或者健康檢查失敗時,kubelet將根據 restartpolicy 的設定來進行相應的操作。

pod 的重啟策略包括alwaysonfailurenever,預設值為always

kubelet重啟失效容器的時間間隔以sync-frequency乘以 2n 來計算,例如,1、2、4、8倍等,最長延時 5min,並且在成功重啟後的 10min 後重置該時間。

pod 的重啟策略與控制方式息息相關,當前可用於管理 pod 的控制器包括replicationcontrollerjobdaemonset及直接通過kubelet管理(靜態pod)。 每種控制器對 pod 的重啟策略要求如下。

結合 pod 的狀態和重啟策略,下表列出了一些常見的狀態轉換場景。

pod 包含的容器數

pod 當前的狀態

發生時間

pod 的結果狀態 always

pod 的結果狀態 onfailure

pod 的結果狀態 never

包含 1 個容器

running

容器成功退出

running

succeeded

succeeded

包含 1 個容器

running

容器失敗退出

running

running

failed

包含兩個容器

running

1 個容器失敗退出

running

running

running

包含兩個容器

running

容器被 oom 殺掉

running

running

failed

pod 生命週期

此刻建立 pod 因為容器的路徑下沒有 index1.html 這個檔案,所有 pod 一直處在 ready 狀態 我們進入容器,在網頁根目錄下建立乙個 index1.html 的檔案 此刻檢視 pod 狀態,發現 pod 已經 ready command 命令的意思是 1 建立 tmp live ...

pod的生命週期

pod的生命週期 pod phase pod的相位 pod的status資訊儲存在podstatus中定義,其中有乙個phase欄位。pod的相位phase是pod在其生命週期的加到巨集觀概述。pod相位的數量和含義是嚴格指定的。phase可能的值 running pod已經被排程到某節點上,並且所...

k8s Pod生命週期和重啟策略

kubernetes k8s pod生命週期和重啟策略 pod的狀態描述 狀態值 描述 runnung pod內所有容器均已建立,且至少有乙個容器處於執行狀態 正在啟動狀態或正在重啟狀態。succeeded pod內所有容器均成功執行後退出,且不會再重啟。failed pod內所有容器均已退出,但至...