run pods nodeselector logs delete kubernetes google-container-engine google-kubernetes-engine kubectl

pods - kubernetes nodeselector



registros de kubectl-continuamente (5)

kubectl logs <pod-id>

obtiene los últimos registros de mi implementación. Estoy trabajando en un error y estoy interesado en conocer los registros en tiempo de ejecución. ¿Cómo puedo obtener una secuencia continua de registros?

editar: pregunta corregida al final.


espera a que los kubes giren la vaina y luego sigue adelante ...

k8s_pod=some_pod kubectl get pods -w $k8s_pod | while read LOGLINE do [[ "${LOGLINE}" == *"Running"* ]] && pkill -P $$ kubectl done

registros de cola

for line in $(kubectl get pods | grep $k8s_pod | awk ''{print $1}''); do kubectl logs -f $line | tee logfile done

buscar indicador de éxito

tail logfile | grep successful! RESULT=$? exit $RESULT


Necesitaba acceder a los registros de un pod de larga ejecución, y -f comenzó a transmitir registros desde hace días, lo que habría tomado horas para llegar a donde necesitaba ver (solo los últimos dos minutos más o menos).

Hay una bandera --since=10m , pero eso no pareció funcionar para mí.

Lo que hizo maravillas fue --tail=100 , donde 100 es el número de líneas recientes para mostrar.


Si desea obtener la secuencia de registros de una aplicación de pod múltiple, puede usar kubetail , por ejemplo:

kubectl get pods NAME READY STATUS RESTARTS AGE app2-v31-9pbpn 1/1 Running 0 1d app2-v31-q74wg 1/1 Running 0 1d kubetail app2

Con ese comando, kubetail sigue los registros de pod app2-v31-9pbpn y app2-v31-q74wg


kubectl logs --help lo guiará:

Ejemplo:

# Begin streaming the logs of the ruby container in pod web-1 kubectl logs -f -c ruby web-1

Banderas

-f, --follow[=false]: Specify if the logs should be streamed.

También puede agregar --since=10m o menos a partir de ese tiempo relativo anterior.