k8s.io/client-go/kubernetes client-go を使用すると、Pod を取得できますpod.Status.Phase を含む .Status。ただし、この情報は、Pending、Running、Succeeded、Failed、Unknown の 5 つの値に制限されています。
「Init:0/1」や「PodInitializing」などのより詳細なステータス情報を取得したい場合は、 kubectl get pods の [ステータス] 列に表示される「ステータスはサーバー レベルで実行されるため、クライアント側で計算されます。これらのステータスは、ServerPrint 関数を使用して計算されます。この関数のデフォルトは Kubernetes TablePrinter です。 TablePrinter は、サーバーから返されたデータを人間が判読できる形式に変換します。
Status 列を計算するロジックは、
https:// のコードベースで処理されます。 github.com/kubernetes/kubernetes/tree/4477bf02f211093b32cf58f64aa42aff77daea61/pkg/printers/internalversion クライアント側の計算プリンターの使用
別のオプションは、カスタム プリンターを使用することです。 client-go ライブラリは、次のようなオブジェクトを印刷するための関数を多数提供します。
https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cli -runtime/pkg/printers
これらの関数を使用して、kubectl get pods の形式に一致するカスタム プリンターを作成できます。
client-go ライブラリを使用すると、kubectl get pods と同じ Pod ステータス情報を取得できます。ただし、この情報は通常サーバー側で計算されるため、クライアント側での計算の必要性を回避できる可能性があることに注意してください。ステータス出力をカスタマイズする必要がある場合は、プリンターを使用するのが良い方法です。
以上がClient-Go を使用して詳細なポッド ステータス情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。