Introdução
Neste laboratório, você aprenderá como usar o comando logs do Kubernetes para visualizar os logs de pods em execução em um cluster Kubernetes. Você começará com exemplos simples e progredirá gradualmente para cenários mais complexos.
Neste laboratório, você aprenderá como usar o comando logs do Kubernetes para visualizar os logs de pods em execução em um cluster Kubernetes. Você começará com exemplos simples e progredirá gradualmente para cenários mais complexos.
Antes de criar recursos, você precisa de um cluster Kubernetes em execução. Minikube é um ambiente Kubernetes leve que roda em sua máquina local.
Navegue para o seu diretório de trabalho:
Abra o terminal e navegue até a pasta do projeto padrão:
cd /home/labex/project
Iniciar Minikube:
Inicie o Minikube para inicializar um cluster Kubernetes:
minikube start
Verifique se o Minikube está em execução:
Verifique o status do cluster Minikube:
minikube status
kubelet e apiserver listados como Running (Em execução).minikube start.Se você encontrar problemas ao iniciar o Minikube. Use minikube delete para redefinir o ambiente, se necessário.
O comando kubectl logs é usado para imprimir os logs de um contêiner em um pod ou em um recurso especificado. Ele suporta logs de snapshot, streaming, filtragem e várias outras opções para um gerenciamento de logs eficiente.
Execute o seguinte comando para visualizar as opções disponíveis para kubectl logs:
kubectl logs -h
Você verá a seguinte saída:
Print the logs for a container in a pod or specified resource. If the pod has only one container, the container name is optional.
Examples:
## Return snapshot logs from pod nginx with only one container
kubectl logs nginx
## Return snapshot logs from pod nginx with multi containers
kubectl logs nginx --all-containers=true
## Return snapshot logs from all containers in pods defined by label app=nginx
kubectl logs -l app=nginx --all-containers=true
## Return snapshot of previous terminated ruby container logs from pod web-1
kubectl logs -p -c ruby web-1
## Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1
## Begin streaming the logs from all containers in pods defined by label app=nginx
kubectl logs -f -l app=nginx --all-containers=true
## Display only the most recent 20 lines of output in pod nginx
kubectl logs --tail=20 nginx
## Show all logs from pod nginx written in the last hour
kubectl logs --since=1h nginx
## Show logs from a kubelet with an expired serving certificate
kubectl logs --insecure-skip-tls-verify-backend nginx
## Return snapshot logs from first container of a job named hello
kubectl logs job/hello
## Return snapshot logs from container nginx-1 of a deployment named nginx
kubectl logs deployment/nginx -c nginx-1
Nesta etapa, você aprenderá como visualizar os logs de um contêiner em execução em um pod.
Comece criando um deployment com uma réplica e um contêiner Nginx:
kubectl create deployment nginx --image=nginx --replicas=1
Aguarde até que o pod esteja pronto:
kubectl wait --for=condition=Ready pod -l app=nginx
Use o comando kubectl logs para visualizar os logs do contêiner Nginx:
kubectl logs POD_NAME
Substitua POD_NAME pelo nome do pod criado na etapa 1, e você pode obter o POD_NAME com o comando kubectl get pod -l app=nginx.
Nesta etapa, você aprenderá como visualizar os logs de um contêiner específico em execução em um pod.
Crie um pod com dois contêineres: Nginx e BusyBox:
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: nginx-busybox
spec:
containers:
- name: nginx
image: nginx
- name: busybox
image: busybox
command:
- sleep
- "3600"
EOF
Aguarde até que o pod esteja pronto:
kubectl wait --for=condition=Ready pod nginx-busybox
Use o comando kubectl logs para visualizar os logs do contêiner BusyBox:
kubectl logs nginx-busybox -c busybox
Nesta etapa, você aprenderá como acompanhar logs em tempo real à medida que são gerados.
Use o comando kubectl logs com a opção -f para acompanhar os logs em tempo real:
kubectl logs -f nginx-busybox
Abra um novo terminal e crie um shell no contêiner Nginx:
kubectl exec -it nginx-busybox -c nginx -- /bin/sh
Gere alguns logs executando um comando dentro do contêiner:
curl 127.0.0.1
Volte para o primeiro terminal onde você está acompanhando os logs e observe que a nova entrada de log é exibida.
Nesta etapa, você aprenderá como visualizar logs de múltiplos contêineres em execução em um pod.
Crie um pod com dois contêineres: Nginx e Fluentd:
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: nginx-fluentd
spec:
containers:
- name: nginx
image: nginx
- name: fluentd
image: fluentd
EOF
Aguarde até que o pod esteja pronto:
kubectl wait --for=condition=Ready pod nginx-fluentd
Use o comando kubectl logs para visualizar logs de ambos os contêineres:
kubectl logs nginx-fluentd -c nginx
kubectl logs nginx-fluentd -c fluentd
Parabéns, você concluiu com sucesso o laboratório de comandos de logs do Kubernetes! Neste laboratório, você aprendeu como visualizar logs de contêineres em execução em um pod usando o comando kubectl logs. Você também aprendeu como visualizar logs de contêineres específicos e múltiplos contêineres, acompanhar logs em tempo real e gerar logs de dentro de um contêiner. Essas habilidades são essenciais para solucionar problemas em um cluster Kubernetes.