registri kubectl - continuamente


Risposte:


175
kubectl logs -f <pod-id>

Puoi usare la -fbandiera:

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

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs


che dire dei log per il servizio o qualcosa di diverso dai pod?
— Alexander Mills

4
funziona per un breve periodo, quindi i log si interrompono. Devo ctrl-c per uscire da kubectl, quindi riavviarli. Questo mostra più log dopo ma si ferma di nuovo. Qualcuno sa perché i log si fermano in punti casuali quando sono ovviamente ancora generati dal pod?
— pferrel

20

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=10mo così iniziare da quel tempo relativo fa.


può esserci più di un contenitore in un pod?
— Alexander Mills

@AlexanderMills sì, questo è il modello "sidecar"
— grokpot

6

Avevo bisogno di accedere ai registri di un pod di lunga durata e ho -finiziato 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=10mbandiera, ma non sembra funzionare per me.

Ciò che ha fatto miracoli era --tail=100, dov'è 100il numero di righe recenti da visualizzare.


4

aspetta che i kubes girino su pod poi vai avanti

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

tronchi di coda

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

cercare l'indicatore di successo

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

'riuscito!' potrebbe essere necessario modificare a seconda del pod.
— ddtraveller

Ho preso le prime due parti da diversi altri post StackOverflow quindi non posso prendermi il merito per quelli del tutto, ma il combo spero servirà ben altro ...
— ddtraveller

4

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


1

Prova questo,

tronchi di coda da baccelli

kubectl --tail <"numero di righe"> registra <"pod_name">

Esempio :

kubectl --tail 100 log app_pod


0

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.


0

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> 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.