what run node create kubernetes kubectl

kubernetes - run - minikube



Obtener imagen actual de despliegue kubernetes (5)

¿Cómo puedo usar kubectl o la API para recuperar la imagen actual de los contenedores en un pod o implementación?

Por ejemplo, en una implementación creada con la siguiente configuración, quiero recuperar el valor 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


Desde kubectl 1.6, la opción -o wide hace esto, así que

kubectl get deployments -o wide

mostrará la imagen actual en la salida.


Puede listar la etiqueta de imagen de todos los despliegues en una lista:

kubectl get deployment -o=jsonpath="{range .items[*]}{''/n''}{.metadata.name}{'':/t''}{range .spec.template.spec.containers[*]}{.image}{'', ''}{end}{ end}"

Salida de muestra:

deployment-a: docker-registry.com/group/image-a:v1, deployment-b: docker-registry.com/group/image-b:v2, deployment-c: docker-registry.com/group/image-c:v3, deployment-d: docker-registry.com/group/image-d:v4,


Puedes usar la opción de salida jsonpath de jsonpath para lograr esto:

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


lo siguiente me funcionó:

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

..my config config fue claramente diferente (con el elemento ''elementos'' al comienzo) por alguna razón.

ACTUALIZACIÓN: el elemento ''elementos'' (que es solo una lista de elementos de implementación) aparecerá solo si se hace:

kubectl get deployment -o=json

mientras que si especifico el nombre del despliegue, no habrá ningún elemento de elementos en el json devuelto, por ejemplo:

kubectl get deployment [deploymentName] -o=json