本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

Kubernetes 1.29:PodReadyToStartContainers 狀況進入 Beta 階段

隨著 Kubernetes 1.29 的釋出,PodReadyToStartContainers 狀況(condition)預設可用。Kubelet 在 Pod 的整個生命週期中管理該狀況的值,該值位於 Pod 的 status 欄位中。Kubelet 將使用 PodReadyToStartContainers 狀況來準確地從 Pod 沙箱建立和容器執行時網路配置的角度反映 Pod 的初始化狀態。

此功能背後的動機是什麼?

叢集管理員過去沒有清晰且易於訪問的方式來檢視 Pod 的沙箱建立和初始化是否完成。截至 1.28 版本,Pod 中的 Initialized 狀況用於跟蹤 init 容器的執行情況。然而,它在準確反映叢集中所有 Pod 的沙箱建立完成和容器啟動就緒情況方面存在侷限性。這種區分在多租戶叢集中尤其重要,因為租戶擁有 Pod 的規約,包括 init 容器的集合,而叢集管理員則管理儲存外掛、網路外掛和容器執行時處理程式。因此,需要一種改進的機制,為叢集管理員提供關於 Pod 沙箱建立完成和容器就緒情況的清晰全面的檢視。

這樣做有什麼好處?

  1. 提高可見性:叢集管理員可以更清晰、更全面地瞭解 Pod 沙箱建立完成和容器就緒情況。這種增強的可見性使他們能夠做出更明智的決策,並更有效地排查問題。
  2. 指標收集與監控:監控服務可以利用與 PodReadyToStartContainers 狀況相關的欄位來報告沙箱建立狀態和延遲。可以按 Pod 基數收集指標,也可以根據 Pod 的各種屬性(例如 volumesruntimeClassName、用於 CNI 和 IPAM 外掛的自定義註解或任意標籤和註解,以及 PersistentVolumeClaim 的 storageClassName)進行聚合。這使得能夠在整個叢集中對 Pod 就緒情況進行全面的監控和分析。
  3. 增強的故障排查:透過更準確地表示 Pod 沙箱建立和容器就緒情況,叢集管理員可以快速識別和解決初始化過程中可能出現的任何問題。這有助於提高故障排查能力並減少停機時間。

下一步是什麼?

基於收到的反饋和廣泛採用,Kubernetes 團隊在 1.29 版本中將 PodReadyToStartContainersCondition 提升為 Beta 階段。你的意見將有助於決定此狀況是否能繼續推進並最終成為正式釋出(GA)的功能,因此請就此功能提交更多反饋!

我如何瞭解更多資訊?

請查閱 PodReadyToStartContainersCondition文件,以瞭解更多關於它的資訊以及它與其他 Pod 狀況的關係。

如何參與?

此功能由 SIG Node 社群推動。歡迎加入我們,與社群建立聯絡,分享你對上述功能及其他方面的想法和反饋。我們期待你的迴音!