2016-03-24 9 views
3

を使用してポッドを得るkubectlからコンテナ名を生成しましたここでは、Googleのクラウドクラスター...コマンド上記からのJSON出力の顕著なビットである: enter image description here:私はシステムを入手する必要があり、コマンドラインから</p> <pre><code>kubectl get pods -o json </code></pre> <p>の出力からフィールドを取得するために、どのようにJSONをパースするjsonpath

Here is entire json output

だから最JSONキーが配列である:商品[] metadata.labels.nameここで、続いてthその複合キーの検索基準値は "web"です(上の画像の緑色のマークを参照)。私は

kubectl get pods 
のテキスト解析出力を避けたい

web-controller-5e6ij // I need to retrieve this value 

Here are docs on jsonpath

:試合で、私はそのフィールド

ので、値を持つように起こる
.items[].metadata.name 

を取得する必要があります

これは、既知の検索のとき

kubectl get pods -o=jsonpath='{.items[?(@.metadata.labels.name=="web")].metadata.name}' 

NAME      READY  STATUS RESTARTS AGE 
mongo-controller-h714w 1/1  Running 0   12m 
web-controller-5e6ij  1/1  Running 0   9m 

後は正しくずっとこの1つのライナーを戦っするコンテナ名を取得した後、私は

kubectl get pods | tail -1 | cut -d' ' -f1 

答えて

5

そのあまりにも脆弱な感じ、まだこのget podsコマンドを解析します基準:

items[].metadata.labels.name == "web" 

このi必要な検索フィールド

items[].metadata.name : "web-controller-5e6ij" 
関連する問題

 関連する問題