使用k8s.io/client-go/kubernetes client-go 時,可以擷取pod .Status,其中包括pod.Status.Phase。但是,此資訊僅限於五個值:Pending、Running、Succeeded、Failed 和 Unknown。
如果您想獲取更詳細的狀態信息,例如“Init:0/1”或“PodInitializing, " 顯示在 kubectl get pods 的 Status 列中,有幾個可用選項。
伺服器端計算
通常,您不需要在客戶端計算狀態,因為它是在伺服器層級完成的。這些狀態是使用 ServerPrint 函數計算的,預設為 Kubernetes TablePrinter。 TablePrinter 負責將伺服器傳回的資料轉換為人類可讀的格式。
計算Status 欄位的邏輯在程式碼庫中處理:
客戶端運算
如果您仍然喜歡計算狀態在客戶端,您可以使用kubeconfig 函式庫來存取Kubernetes API 伺服器。然而,這需要對 Kubernetes API 有深入的了解,而且可能相當複雜。使用印表機
另一個選項是使用自訂印表機。 client-go 函式庫提供了許多列印物件的函數,包括:結論
使用 client-go 函式庫可以擷取與 kubectl get pods 相同的 Pod 狀態資訊。不過,值得注意的是,這些資訊通常是在伺服器端計算的,您也許可以避免客戶端計算的需要。如果您確實需要自訂狀態輸出,使用印表機是一個很好的方法。以上是如何使用Client-Go取得詳細的Pod狀態資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!