kubectl logs <pod-id>
ottiene i log più recenti dalla mia distribuzione - Sto lavorando su un bug e sono interessato a conoscere i log in fase di esecuzione - Come posso ottenere un flusso continuo di log?
modifica: domanda corretta alla fine.
kubectl logs <pod-id>
ottiene i log più recenti dalla mia distribuzione - Sto lavorando su un bug e sono interessato a conoscere i log in fase di esecuzione - Come posso ottenere un flusso continuo di log?
modifica: domanda corretta alla fine.
Risposte:
kubectl logs -f <pod-id>
Puoi usare la -f
bandiera:
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
kubectl logs --help
ti guiderà:
Esempio:
# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1
Bandiere:
-f, --follow[=false]: Specify if the logs should be streamed.
Puoi anche aggiungere --since=10m
o così iniziare da quel tempo relativo fa.
Avevo bisogno di accedere ai registri di un pod di lunga durata e ho -f
iniziato a trasmettere i registri da giorni fa, il che avrebbe richiesto ore per arrivare dove avevo bisogno di visualizzare (solo gli ultimi due minuti circa).
C'è una --since=10m
bandiera, ma non sembra funzionare per me.
Ciò che ha fatto miracoli era --tail=100
, dov'è 100
il numero di righe recenti da visualizzare.
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
Se vuoi ottenere il flusso di log da un'app multi pod puoi usare kubetail , ad esempio:
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 questo comando, kubetail sta pedinando i log da pod app2-v31-9pbpn e app2-V31-q74wg
Prova questo,
tronchi di coda da baccelli
kubectl --tail <"numero di righe"> registra <"pod_name">
Esempio :
kubectl --tail 100 log app_pod
log di kubctl -f = true [nome-pod] -c [nome-contenitore]
Se hai solo un singolo contenitore sul pod, il nome del contenitore non è necessario altrimenti usa il nome del contenitore con l'opzione -c. -f ie follow è false per impostazione predefinita. Se non lo imposti su true, otterrai un'istantanea dei log del contenitore.
Puoi seguire i log con -f
kubectl logs -f <pod_name>
Se i registri vengono interrotti molto probabilmente il pod si blocca, puoi verificare se il pod è effettivamente in esecuzione o meno? Controlla l'età forse o:
kubectl describe deploy/ds <deploy_or_ds_name>?
Oppure puoi anche controllare i log per il contenitore all'interno del pod in cui sono presenti più contenitori
kubectl -f <pod_name> -c <container_name>