A visualização de logs de pod geralmente é a primeira etapa para diagnosticar um problema com suas cargas de trabalho de cluster. Veja como usar o Kubectl para transmitir logs para o seu terminal, permitindo que você inspecione a saída do seu aplicativo.
índice
- Começar
- Acesso aos logs do pod
- Registro de transmissão contínua
- Ver registros anteriores
- Obter registros recentes
- Registros de acesso para outros tipos de recursos
- Gerenciamento de log mais avançado
- Resumo
Começar
Certifique-se de ter o Kubectl instalado e conectado ao seu cluster. Você pode especificar um arquivo Kubeconfig definindo a variável de ambiente KUBECONFIG
em seu shell:
export KUBECONFIG=~/.kube/my-cluster.yaml
Em seguida, use o Kubectl para listar seus pods:
kubectl get pods
Lembre-se de adicionar o --namespace
quando seus pods estiverem fora do namespace padrão:
kubectl --namespace my-namespace get pods
Adicionar um alias temporário ao seu shell é uma boa maneira de encurtar essa etapa, ajudando você a executar vários comandos no mesmo namespace:
alias k="kubectl --namespace my-namespace" k get pods
Acesso aos logs do pod
O comando kubectl logs
permite inspecionar os logs produzidos por um pod chamado:
kubectl logs pod-name
Os registros de pod existentes serão enviados ao seu terminal. Quando o pod consiste em vários contêineres, você também deve especificar o nome do contêiner que deseja inspecionar:
kubectl logs pod-name container-name
Como alternativa, defina o --all-containers
para incluir linhas de log produzidas por qualquer um dos pods no pod. Observe que você pode ver a saída detalhada e clichê quando esse sinalizador é usado em um pod ocupado:
kubectl logs pod-name --all-containers
Você também pode obter logs de um conjunto de pods com uma determinada tag. Isso permite adicionar registros de diferentes pods, desde que todos compartilhem a mesma tag:
kubectl logs -l my-label=my-value --all-containers
Registro de transmissão contínua
Planejar logs
O comando gera os logs de pod armazenados no momento e sai. Adicione o sinalizador -f
( --follow
) ao comando para seguir os logs e transmiti-los ao vivo para o seu terminal.
O Kubectl produzirá cada nova linha de log em seu terminal até que você cancele o comando com Ctrl + C. Isso é equivalente a usar tail -f
com um arquivo de log local em um ambiente sem contêiner.
Ver registros anteriores
kubectl logs
não incluirão linhas de log produzidas por contêineres mais antigos que já foram membros do Pod, mas foram substituídos. Esses logs podem ser acessados adicionando o sinalizador -p
( --previous
).
O Kubectl exibirá todo o log armazenado para o Pod, incluindo linhas emitidas por contêineres que já foram encerrados.
Obter registros recentes
Às vezes, não é necessário ver todo o fluxo de logs. Kubectl suporta um sinalizador --since
que gera linhas de log após um determinado tempo:
kubectl logs pod-name --since=2h
Este comando exibirá a saída de log para pod-name
que ocorreu nas últimas duas horas. Outra variante, --since-time
, oferece suporte a uma string de carimbo de data/hora compatível com RFC3339 em vez da expressão de tempo relativa mostrada acima.
O sinalizador --tail
é outra opção para condensar logs. Isso limita o número de linhas exibidas, evitando um terminal cheio quando você só precisa ver uma saída muito recente:
# Shows the last 10 lines of the log kubectl logs pod-name --tail=10
O Kubectl não exibe timestamps de linha por padrão, pois muitos aplicativos já os incluem em sua saída de log. Adicione o --timestamps
para que o Kubectl inclua carimbos de data/hora no início das linhas quando a carga de trabalho não os fornecer.
Você também pode preceder os nomes de pods e contêineres inspecionados para registrar linhas. Esta função é ativada com o sinalizador --prefix
. Pode ser combinado com --timestamps
para ver a hora em que cada linha foi criada e a origem de onde ela se originou.
Registros de acesso para outros tipos de recursos
kubectl logs
funciona com recursos de distribuição e de trabalho, além de pods:
kubectl logs job/my-job kubectl logs deployment/my-deployment
Obtenha os logs do primeiro contêiner no trabalho ou distribuição. Use o --all-containers
para visualizar os logs criados por qualquer um dos contêineres correspondentes. Você pode usar todas as marcas descritas acima se estiver visualizando um pod, um layout ou um trabalho.
Gerenciamento de log mais avançado
O Kubectl não inclui uma maneira de filtrar, pesquisar ou transformar seus registros. É melhor transmitir a saída dos kubectl logs
para ferramentas de terminal estabelecidas, como awk
, grep
ou sed
para essa finalidade.
kubectl logs my-pod | grep search-expression
Da mesma forma, use as funções de redirecionamento existentes em seu shell para salvar os logs em um arquivo:
kubectl logs my-pod > my-pod-logs.txt
Resumo
Kubectl permite que você acesse seus logs de recursos por contêiner ou de forma agregada. Você pode visualizar um instantâneo dos logs coletados atualmente, transmitir continuamente novas linhas para seu terminal e acessar fluxos históricos de contêineres concluídos.
O comando vem com algumas opções de personalização limitadas, incluindo um limitador de contagem de linhas e um filtro de data simples. Quando uma análise mais extensa for necessária, redirecione a saída para comandos de terminal Unix para verificar rapidamente os logs e encontrar as causas dos erros do aplicativo.
O Kubectl coleta logs da saída padrão e dos fluxos de erro de seus contêineres. É importante garantir que você grave a saída nesses fluxos corretamente, pois um contêiner configurado incorretamente resultará em uma saída vazia quando executado. kubectl logs
.
- Subsistema Windows 11 para Android permite sideload de aplicativos
- Como agrupar e separar linhas e colunas no Planilhas Google
descubra mais conteúdo
O que é um amplificador integrado?
Google Pixel Watch também tem detecção de queda, mas não até o próximo ano
As melhores xícaras de café aquecidas de 2022
Como automatizar seu iPhone com base na hora, atividade ou localização
"Isso deve ter sido antes do meu tempo"
Por que a NASA enviou Snoopy para a Lua? – Revisão geek
Deixe uma resposta Cancelar resposta
Como você obtém logs de pod no kubectl?
Para obter logs do pod Kubectl, você pode acessá-los adicionando o sinalizador -p . O Kubectl obterá todos os logs armazenados para o pod. Isso inclui linhas que foram emitidas por contêineres que foram encerrados.
Como posso ver os logs de um pod?
Verificando os logs de um pod em execução
Tudo o que você precisa fazer para fazer isso é executar o seguinte comando: kubectl logs nginx-7d8b49557c-c2lx9 .
Como extraio um log do pod?
kubectl: exporta logs de pod para arquivo
- kubectl logs -n my-namespace my-pod-name-xyz > my-pod-name.log.
- kubectl logs -n my-namespace my-pod-name-xyz -since-time=2020-12-02T00:00:00Z > my-pod-name-desde-2020-12-02.log.
- kubectl logs -h.
- Imprima os logs de um contêiner em um pod ou recurso especificado.
Como obtenho todos os logs no Kubernetes?
Como obter todos os logs do cluster Kubernetes?
- Obtenha todos os logs do pod (atual e anterior) Current -> logs do pod atual. Anterior -> logs do pod de execuções anteriores. Isso mostrará os logs da última execução do pod antes de travar.
- Descreva todos os pods.
- Obtenha todos os eventos no Cluster.