Antworten:
kubectl logs -f <pod-id>
Sie können die -f
Flagge verwenden:
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
kubectl logs --help
wird dich führen:
Beispiel:
# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1
Flaggen:
-f, --follow[=false]: Specify if the logs should be streamed.
Sie können auch hinzufügen --since=10m
oder so von dieser relativen Zeit vor beginnen.
Ich musste auf die Protokolle eines lang laufenden Pods zugreifen und -f
begann vor Tagen mit dem Streaming von Protokollen. Es hätte Stunden gedauert, bis ich dort ankam, wo ich sie anzeigen musste (nur in den letzten paar Minuten oder so).
Es gibt eine --since=10m
Flagge, aber das schien bei mir nicht zu funktionieren.
Was Wunder tat, war --tail=100
, wo 100
die Anzahl der zuletzt anzuzeigenden Zeilen ist.
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
Wenn Sie den Protokollstrom von einer Multi-Pod-App abrufen möchten , können Sie kubetail verwenden . Beispiel:
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
Mit diesem Befehl wird kubetail Tailing die Protokolle von pod app2-v31-9pbpn und app2-v31-q74wg
Versuche dies,
Schwanzprotokolle von Hülsen
kubectl --tail <"Anzahl der Zeilen"> protokolliert <"pod_name">
Beispiel :
kubectl --tail 100 logs app_pod
kubctl logs -f = true [Pod-Name] -c [Containername]
Wenn Sie nur einen einzelnen Container über dem Pod haben, ist der Containername nicht erforderlich. Andernfalls verwenden Sie den Containernamen mit der Option -c. -f dh follow ist standardmäßig false. Wenn Sie es nicht auf true setzen, erhalten Sie eine Momentaufnahme Ihrer Containerprotokolle.
Sie können Protokollen mit -f folgen
kubectl logs -f <pod_name>
Wenn Protokolle gestoppt werden, stürzt der Pod höchstwahrscheinlich ab. Können Sie überprüfen, ob der Pod tatsächlich ausgeführt wird oder nicht? Überprüfen Sie das Alter vielleicht oder:
kubectl describe deploy/ds <deploy_or_ds_name>?
Sie können auch die Protokolle auf Container im Pod überprüfen, in denen sich mehrere Container befinden
kubectl -f <pod_name> -c <container_name>