como preparación voy a contar lo que sé
Cuando ejecuto kubectl logs --previous <pod_name> , obtendré las últimas 20 líneas de registros antes de reiniciar y la marca de tiempo cuando sucedió, pero quería que se mostrara esa marca de tiempo cuando ejecuto kubectl get pods como una columna adicional.
Los documentos de Kube sobre cómo crear columnas personalizadas muestran que
kubectl get pods <my_pod_name -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion NAME RSRC submit-queue 610995pero mi pregunta es ¿dónde se almacenan estos metadatos/especificaciones? ¿Dónde puedo enumerar todos los metadatos posibles para saber qué columna buscar o escribir, y lo mismo para las especificaciones y cualquier otra columna posible?
Sé que puedo mirar el pod con kubectl describe pod <pod> pero, ¿cómo traduzco los campos allí a este formato .metadata.name ?
Parte de mi descripción se ve así
MacBook-Pro% kubectl describe pod xxx Name: xxx Namespace: xx Priority: 0 Node: myname/myip Start Time: Tue, 23 Feb 2021 11:37:01 +0100 Labels: app=xx app.kubernetes.io/instance=xx app.kubernetes.io/managed-by=Helm app.kubernetes.io/name=xx env=xx helm.sh/chart=xx pod-template-hash=yy Annotations: kubectl.kubernetes.io/restartedAt: 2020-10-23T11:21:09+02:00 Status: Running IP: 10.xx IPs: IP: 10.xx Controlled By: ReplicaSet/xxx Containers: my_app: Container ID: docker://xxxx Image: gcr.ioxxxx Image ID: docker-pullable://gcrxxx Port: 8080/TCP Host Port: 0/TCP State: Running Started: Fri, 12 Mar 2021 11:34:42 +0100 Last State: Terminated Reason: Error Exit Code: 143 Started: Fri, 05 Mar 2021 12:34:58 +0100 Finished: Fri, 12 Mar 2021 11:34:41 +0100 ¿Alguna idea de cómo llegar al Last State.Finished ? ¿Campo terminado?
Agradecería cualquier ayuda, gracias.
Puede usar kubectl get pod -o yaml para ver su recurso POD en formato YAML (o -o json si lo prefiere).
En este formato, puede ver las claves y los valores de los metadata . p.ej:
$ kubectl get po -o yaml my-nginx-5b56ccd65f-4vmms | head -n 5 apiVersion: v1 kind: Pod metadata: creationTimestamp: "2021-03-09T15:19:38Z" generateName: my-nginx-5b56ccd65f- También puede usar kubectl explain pod para enumerar y describir todos los campos posibles asociados con el recurso de la API del pod. Es posible obtener la documentación de un campo específico de un recurso (p. ej., kubectl explain pods.status.containerStatuses ).
Para obtener el valor Last State.Finished , puede usar:
$ kubectl get pods my-nginx-5b56ccd65f-4vmms -o custom-columns=NAME:.metadata.name,FINISHED:.status.containerStatuses[*].lastState.terminated.finishedAt NAME FINISHED my-nginx-5b56ccd65f-4vmms 2021-03-09T15:35:45Z