2016-08-22 4 views
11

Как использовать kubectl или API для получения текущего изображения для контейнеров в контейнере или в развертывании?Получить текущее изображение развертывания кубернетов

Например, в развертывании, созданном с помощью следующей конфигурации, я хочу получить значение 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 1,6 вариант -o wide делает это, так

kubectl get deployments -o wide 

отобразит текущее изображение на выходе.

11

Вы можете использовать опцию jsonpath вывода kubectl для достижения этой цели:

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

Вы будете нуждаться в одинарные или двойные кавычки вокруг фильтр JSONpath, если вы используете оболочку zsh. Хорошая практика - всегда использовать их. –

+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 
Смежные вопросы