Kubelet 檢查點 API
Kubernetes v1.30 [beta]
(預設啟用:true)容器檢查點功能是建立執行中容器的狀態副本的功能。一旦您擁有容器的狀態副本,您可以將其移動到不同的電腦以進行除錯或類似目的。
如果您將檢查點容器資料移動到能夠還原它的電腦,則還原的容器會從與檢查點完全相同的點繼續執行。您也可以檢查已儲存的資料,前提是您擁有適合這樣做的工具。
建立容器的檢查點可能具有安全性含義。通常,檢查點包含檢查點容器中所有程序的所有記憶體頁面。這表示曾經在記憶體中的所有內容現在都可在本機磁碟上取得。這包括所有私人資料以及可能用於加密的金鑰。底層 CRI 實作(該節點上的容器執行期)應建立僅可由 root
使用者存取的檢查點封存檔。如果檢查點封存檔傳輸到另一個系統,則所有記憶體頁面都將可由檢查點封存檔的擁有者讀取,這一點仍然很重要。
操作
post
檢查指定的容器
告知 kubelet 從指定的 Pod 檢查特定容器。
請參閱Kubelet 驗證/授權參考,以取得有關如何控制對 kubelet 檢查點介面存取的更多資訊。
kubelet 將從底層CRI 實作請求檢查點。在檢查點請求中,kubelet 將檢查點封存檔的名稱指定為 checkpoint-<podFullName>-<containerName>-<timestamp>.tar
,並請求將檢查點封存檔儲存在其根目錄下的 checkpoints
目錄中(由 --root-dir
定義)。預設值為 /var/lib/kubelet/checkpoints
。
檢查點封存檔為 tar 格式,可以使用 tar
的實作來列出。封存檔的內容取決於底層 CRI 實作(該節點上的容器執行期)。
HTTP 請求
POST /checkpoint/{namespace}/{pod}/{container}
參數
namespace (在路徑中):字串,必填
命名空間pod (在路徑中):字串,必填
Podcontainer (在路徑中):字串,必填
容器timeout (在查詢中):整數
等待檢查點建立完成的逾時時間(以秒為單位)。如果指定零或未指定逾時時間,則將使用預設的 CRI 逾時值。檢查點建立時間直接取決於容器使用的記憶體。容器使用的記憶體越多,建立相應檢查點所需的時間就越多。
回應
200: OK
401: 未經授權
404: 找不到 (如果 ContainerCheckpoint
功能閘道已停用)
404: 找不到 (如果找不到指定的 namespace
、pod
或 container
)
500: 內部伺服器錯誤 (如果 CRI 實作在檢查點期間遇到錯誤 (請參閱錯誤訊息以取得更多詳細資訊))
500: 內部伺服器錯誤 (如果 CRI 實作未實作檢查點 CRI API (請參閱錯誤訊息以取得更多詳細資訊))