kubectl logs <pod-id>
obtém os logs mais recentes da minha implantação - Estou trabalhando em um bug e interessado em saber os logs em tempo de execução - Como posso obter um fluxo contínuo de logs?
editar: questão corrigida no final.
kubectl logs <pod-id>
obtém os logs mais recentes da minha implantação - Estou trabalhando em um bug e interessado em saber os logs em tempo de execução - Como posso obter um fluxo contínuo de logs?
editar: questão corrigida no final.
kubectl logs -f <pod-id>
Você pode usar a -f
bandeira:
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
kubectl logs --help
irá guiá-lo:Exemplo:
# Begin streaming the logs of the ruby container in pod web-1 kubectl logs -f -c ruby web-1
Bandeiras:
-f, --follow[=false]: Specify if the logs should be streamed.
Você também pode adicionar
--since=10m
ou começar a partir desse tempo relativo atrás.fonte
Eu precisava acessar os logs de um pod de longa execução e
-f
comecei a transmitir os logs dias atrás, o que levaria horas para chegar onde eu precisava ver (apenas os últimos minutos ou mais).Existe uma
--since=10m
bandeira, mas isso não parece funcionar para mim.O que fez maravilhas foi
--tail=100
onde100
está o número de linhas recentes a serem exibidas.fonte
espere os kubes girarem e siga em frente ...
k8s_pod=some_pod kubectl get pods -w $k8s_pod | while read LOGLINE do [[ "${LOGLINE}" == *"Running"* ]] && pkill -P $$ kubectl done
toras da cauda
for line in $(kubectl get pods | grep $k8s_pod | awk '{print $1}'); do kubectl logs -f $line | tee logfile done
procure o indicador de sucesso
tail logfile | grep successful! RESULT=$? exit $RESULT
fonte
Se você deseja obter o fluxo de registros de um aplicativo multi-pod, pode usar o kubetail , por exemplo:
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
Com esse comando, kubetail está seguindo os registros de pod app2-v31-9pbpn e app2-v31-q74wg
fonte
Você pode seguir os registros com -f
kubectl logs -f <pod_name>
Se os registros forem interrompidos, provavelmente o pod está travando, você pode verificar se o pod está realmente em execução ou não? Verifique a idade talvez ou:
kubectl describe deploy/ds <deploy_or_ds_name>?
Ou você também pode verificar os registros do contêiner dentro do pod, pois há vários contêineres
kubectl logs -f <pod_name> -c <container_name>
fonte
Tente isto,
registros finais de pods
kubectl --tail <"no of lines"> logs <"pod_name">
Exemplo :
kubectl --tail 100 logs app_pod
fonte
Se você tiver apenas um único contêiner sobre o pod, o nome do contêiner não será necessário, caso contrário, use o nome do contêiner com a opção -c. -f ie follow é falso por padrão. Se você não definir como verdadeiro, obterá um instantâneo dos logs do seu contêiner.
fonte