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
para obtener solo el uri de imagen para todos los pods (en todos los espacios de nombres, por ejemplo):
kubectl get pods --all-namespaces -o jsonpath="{..image}"
(vea https://kubernetes.io/docs/tasks/access-application-cluster/list-all-running-container-images/ para más detalles)