Como ver o Kubernetes POD Records com Kubectl

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

  1. Começar
  2. Acesso aos logs do pod
  3. Registro de transmissão contínua
  4. Ver registros anteriores
  5. Obter registros recentes
  6. Registros de acesso para outros tipos de recursos
  7. Gerenciamento de log mais avançado
  8. 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

  1. kubectl logs -n my-namespace my-pod-name-xyz > my-pod-name.log.
  2. kubectl logs -n my-namespace my-pod-name-xyz -since-time=2020-12-02T00:00:00Z > my-pod-name-desde-2020-12-02.log.
  3. kubectl logs -h.
  4. 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?

  1. 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.
  2. Descreva todos os pods.
  3. Obtenha todos os eventos no Cluster.
Ir arriba