kubernetes go-client は、Kubernetes API へのアクセスを提供し、開発者が Kubernetes リソースをプログラムで管理できるようにします。一般的なタスクの 1 つは、ポッドのステータスを取得することです。これは、pod.Status を使用して実行できます。ただし、このステータスは、kubectl get pods から取得される詳細な出力と比較して限られた情報しか提供しません。
kubectl get pods によって表示されるステータス情報は、通常、サーバー側。これは Kubernetes TablePrinter によって実行され、ServerPrint メソッドを使用してポッドの状態とコンテナーのステータスに基づいてステータスを計算します。このサーバー側の計算により、一貫性と正確性が確保されます。
カスタム ステータスの計算が必要な場合、またはクライアント側の分析を実行する必要がある場合は、kubectl ソース コードを利用できます。 Pod ステータスの計算に関与する関連ビットは、pkg/printers/internalversion/pod.go にあります。このコードは、ポッドの条件とコンテナのステータスを使用して、「Init:0/1」や「PodInitializing」などのステータス文字列を構築します。
Go-client はアクセスを提供します。これらの計算を実行するために必要な情報を入力します。次のコード スニペットを使用して、ポッドの条件とコンテナのステータスを取得できます。
<code class="go">import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" ) func GetPodStatus(clientset *kubernetes.Clientset, podName string) (*v1.Pod, error) { return clientset.CoreV1().Pods("").Get(podName, metav1.GetOptions{}) }</code>
この情報を使用すると、独自のステータス計算ロジックを実装して、目的のステータス形式を取得できます。
go-client は、Pod のステータスを計算するために必要なデータへのアクセスを提供しますが、kubectl get pods によって表示される特定の形式と粒度を直接提供するわけではありません。これを実現するには、kubectl ソース コードを参照するか、取得したポッド条件とコンテナー ステータスに基づいてカスタム ステータス計算を実装することを検討できます。
以上が「kubectl get pods」のように Go クライアントでポッドのステータスを計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。