問題タブ [client-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - client-go を使用して、ポッドの準備が整うまで「kubectl 待機」をシミュレートします
bash スクリプトでは、通常、「kubectl wait」を使用して、特定のポッド リソースの準備が整うまでブロックします。たとえば、次のようなものです。
多くの場合、待機する必要があるポッドの正確な名前がわからないため、これはうまく機能します。「kubectl wait」を使用すると、セレクターに基づいてポッドを見つけて、準備が整うまでブロックできます。
次に、golang コードで同様のことを行う必要があります。client-goライブラリを使用して特定のポッドを名前で認証および「取得」する例を見てきました。しかし、この例を私のニーズに最適に適応させる方法についていくつか質問があります...
ポッドを「Get()」できる正確な/完全な名前がわからないため、セレクターを使用してポッドを見つけることができるため、「kubectl wait」が最適です。セレクターを使用して必要なポッドを見つけられるようにするには、代わりに client-go ライブラリを使用して Get() の代わりに CoreV1().Pods().List() 呼び出しを行う必要があると思いますか?
また、ポッドはすぐには存在しない可能性があり、「kubectl wait」が処理する 1 分ほど後にのみ作成される可能性があります。コードでは、ポッドが存在するまでループ/スリープして List() を実行し続ける必要がありますか?
#2と同様の質問... List()がポッド名を返したら、そのポッドが「準備完了」状態になるのをgolangで「待機」する最良の方法は何ですか?回避できる場合は、スリープで醜いポーリングを実行したくありません...だから、golang の「待機」パッケージなどを使用するより良いオプションはありますか? おすすめは何ですか?
go - k8s REST API を使用して特定のノードから Pod を取得する
特定のノードのすべてのポッドとその詳細を取得するための k8s レスト API エンドポイントはありますか。私は minikube を使用し、 を使用してプロキシを開始しましたkubectl proxy --port=7070 &
。のようなエンドポイントがあります GET /api/v1/namespaces/{namespace-name}/pods
。特定のノードに属するポッドにアクセスするための同様のエンドポイントはありますか? kubectl コマンドを使用したくありません。