2016-08-22 11 views
11

kubectlまたはAPIを使用して、ポッドまたはデプロイメントのコンテナの現在のイメージを取得するにはどうすればよいですか?kubernetesデプロイメントの現在のイメージを取得

たとえば、以下の設定で作成されたデプロイメントでは、値eu.gcr.io/test0/brain:latestを取得したいと考えています。

apiVersion: v1 
    kind: Deployment 
    metadata: 
    name: flags 
    spec: 
    replicas: 6 
    template: 
     metadata: 
     labels: 
     app: flags 
     spec: 
     containers: 
     - name: flags 
      image: eu.gcr.io/test0/brain:latest 

答えて

8

kubectl get deployments -o wide 
0ので、1.6 -o wideオプションがこれを行う kubectlから

は出力に現在のイメージを表示します。

11

あなたはこれを達成するためにkubectlのjsonpath出力オプションを使用することができます。

kubectl get deployment flags -o=jsonpath='{$.spec.template.spec.containers[:1].image}' 
+0

あなたは周りの単一引用符または二重引用符が必要です(詳細はhttps://kubernetes.io/docs/tasks/access-application-cluster/list-all-running-container-images/を参照してください) zshシェルを使用している場合はJSONpathフィルターを使用します。いつもそれらを使うのは良い習慣です。 –

+0

@AntoineCottenポインタありがとう!それらをに追加しました。 –

1

私のために働い以下:

kubectl get deployment -o=jsonpath='{$.items[:1].spec.template.spec.containers[:1].image}' 

..my展開の設定は明らかに異なっていた(「項目に'要素)を何らかの理由で削除します。

UPDATE:ちょうどやっている場合(デプロイメント要素のリストだけがある)「の項目」要素が表示されます は:

kubectl get deployment -o=json 

私はデプロイメント名を指定した場合に対し、何の項目要素がありませんよ返されるJSONで、例えば:

kubectl get deployment [deploymentName] -o=json 
0

は、(例えば、すべての名前空間内)のすべてのポッドのためだけに画像のURIを取得します

kubectl get pods --all-namespaces -o jsonpath="{..image}"

関連する問題