JSONPath
CoddyのTerminalジャーニー「Kubernetes入門」セクションの一部。レッスン 36/45。
オブジェクト全体ではなく、1つの値だけが必要になることがよくあります。-o jsonpathは、波括弧の間に記述したパス式を使って、オブジェクトからフィールドを取り出します。
kubectl get pod web -o jsonpath='{.status.podIP}'これにより、Pod の IP だけが出力されます。パスは YAML の構造に従います。status、次にpodIPです。
リストは角括弧でインデックス付けされます。最初のコンテナのイメージは次のとおりです。
kubectl get pod web -o jsonpath='{.spec.containers[0].image}'オブジェクトのリストでは、.items[*] がすべての項目を選択するため、kubectl get pods -o jsonpath='{.items[*].metadata.name}' はすべての Pod 名を1行に出力します。
jsonpath は、末尾に改行を付けず、指定した内容を正確に出力します。改行が必要な場合は、波括弧の中に {"\n"} を追加してください。
チャレンジ
簡単nginxイメージからwebという名前のPodを起動し、次にjsonpathを使用してそのIPアドレスを出力し、さらにjsonpathを使用して最初のコンテナのイメージを出力してください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Kubernetes入門のすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド