Pular para o conteúdo principal

Lab 2.2 - Análise dos Worker Nodes

Objetivos​

Ao final deste lab, você será capaz de:

  • Inspecionar os Worker Nodes
  • Compreender o papel do kubelet
  • Analisar o kube-proxy
  • Examinar o Container Runtime

Pré-requisitos​

  • Cluster Kubernetes funcional
  • kubectl instalado e configurado
  • Acesso ao cluster

Exercício 1: Inspecionar os Nodes​

Etapa 1: Listar os Nodes​

# Ver todos os nodes
kubectl get nodes

# Ver detalhes de um node
kubectl describe node <node-name>

# Ver os nodes com mais informações
kubectl get nodes -o wide

Pergunta: Quantos Worker Nodes você tem? Quais são seus papéis?

Etapa 2: Informações de um Node​

# Ver os labels de um node
kubectl get node <node-name> --show-labels

# Ver as anotações
kubectl get node <node-name> -o jsonpath='{.metadata.annotations}'

Exercício 2: Analisar o kubelet​

Etapa 1: Verificar o kubelet​

# Ver os Pods do sistema relacionados ao kubelet
kubectl get pods -n kube-system | grep kubelet

# Ver os eventos de um node
kubectl get events --field-selector involvedObject.name=<node-name>

Etapa 2: Métricas do Node​

# Ver o uso de recursos de um node
kubectl top node <node-name>

# Ver detalhes dos recursos
kubectl describe node <node-name> | grep -A 10 "Allocated resources"

Exercício 3: Analisar o kube-proxy​

Etapa 1: Verificar o kube-proxy​

# Ver o Pod kube-proxy
kubectl get pods -n kube-system -l k8s-app=kube-proxy

# Ver os logs do kube-proxy
kubectl logs -n kube-system -l k8s-app=kube-proxy --tail=50

Etapa 2: Verificar os Services​

# Listar todos os Services
kubectl get services --all-namespaces

# Ver os Endpoints de um Service
kubectl get endpoints <service-name>

Exercício 4: Container Runtime​

Etapa 1: Identificar o Runtime​

# Ver as informações do node (contém o runtime)
kubectl describe node <node-name> | grep "Container Runtime"

# Ver as imagens utilizadas
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | sort -u

Exercício 5: Pods em um Node​

Etapa 1: Pods Atribuídos​

# Ver todos os Pods em um node específico
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name>

# Contar os Pods por node
kubectl get pods --all-namespaces -o wide | awk '{print $7}' | sort | uniq -c

Etapa 2: Recursos Utilizados​

# Ver o uso de recursos por Pod
kubectl top pods --all-namespaces

# Filtrar por node
kubectl top pods --all-namespaces | grep <node-name>

Perguntas para Reflexão​

  1. Quantos Pods podem ser executados em cada node?
  2. Como o kubelet gerencia os recursos?
  3. Qual é o papel do kube-proxy em cada node?
  4. Como o Container Runtime é utilizado?

Limpeza​

Nenhuma limpeza necessária.


Próximos Passos​

Lab 2.3: Monitoramento dos Componentes do Sistema
Módulo 3: Pods e Deployments


Lab criado em: Dezembro de 2024