kubectl logs <pod-id>
récupère les derniers journaux de mon déploiement - Je travaille sur un bogue et je souhaite connaître les journaux au moment de l'exécution - Comment puis-je obtenir un flux continu de journaux?
edit: question corrigée à la fin.
kubectl logs -f <pod-id>
Vous pouvez utiliser l'indicateur -f
:
-f, --follow=false: Specify if the logs should be streamed.
kubectl logs --help
vous guidera:
Exemple:
# Begin streaming the logs of the Ruby container in pod web-1
kubectl logs -f -c Ruby web-1
Drapeaux:
-f, --follow[=false]: Specify if the logs should be streamed.
Vous pouvez également ajouter --since=10m
à partir de cette heure relative.
k8s_pod=some_pod
kubectl get pods -w $k8s_pod | while read LOGLINE
do
[[ "${LOGLINE}" == *"Running"* ]] && pkill -P $$ kubectl
done
for line in $(kubectl get pods | \
grep $k8s_pod | awk '{print $1}'); do
kubectl logs -f $line | tee logfile
done
tail logfile | grep successful!
RESULT=$?
exit $RESULT
J'avais besoin d'accéder aux journaux d'un pod long, et -f
a commencé à les diffuser il y a plusieurs jours, ce qui aurait pris des heures pour arriver à l'endroit où je devais voir (juste les dernières minutes).
Il y a un drapeau --since=10m
, mais cela n'a pas semblé fonctionner pour moi.
--tail=100
, où 100
est le nombre de lignes récentes à afficher.
Si vous souhaitez obtenir le flux de journaux d'une application multi-pod, vous pouvez utiliser kubetail , exemple:
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
Avec cette commande, kubetail est suivi des journaux du pod app2-v31-9pbpn et app2-v31-q74wg