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
- Quantos Pods podem ser executados em cada node?
- Como o kubelet gerencia os recursos?
- Qual é o papel do kube-proxy em cada node?
- 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