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.
kubectl logs -f <pod-id>
Puede usar la bandera
-f
:
-f, --follow=false: Specify if the logs should be streamed.