Lab 2.3 - Monitoramento dos Componentes do Sistema
Objetivos
Ao final deste lab, você será capaz de:
- Monitorar os componentes do Control Plane
- Observar os Worker Nodes
- Analisar as métricas do sistema
- Identificar possíveis problemas
Pré-requisitos
- Cluster Kubernetes funcional
- kubectl instalado
- Metrics Server instalado (para kubectl top)
Exercício 1: Monitoramento do Control Plane
Etapa 1: Estado dos Componentes
# Ver o estado dos componentes (obsoleto, mas útil)
kubectl get componentstatuses
# Ver os Pods do Control Plane
kubectl get pods -n kube-system
Etapa 2: Logs dos Componentes
# Logs do API Server
kubectl logs -n kube-system -l component=kube-apiserver --tail=100
# Logs do Controller Manager
kubectl logs -n kube-system -l component=kube-controller-manager --tail=100
# Logs do Scheduler
kubectl logs -n kube-system -l component=kube-scheduler --tail=100
Exercício 2: Monitoramento dos Nodes
Etapa 1: Saúde dos Nodes
# Ver o estado de todos os nodes
kubectl get nodes
# Detalhes de um node
kubectl describe node <node-name>
# Ver as condições de um node
kubectl get node <node-name> -o jsonpath='{.status.conditions}'
Etapa 2: Métricas dos Nodes
# Uso de recursos
kubectl top nodes
# Detalhes dos recursos
kubectl describe node <node-name> | grep -A 20 "Allocated resources"
Exercício 3: Eventos e Alertas
Etapa 1: Eventos Recentes
# Todos os eventos
kubectl get events --all-namespaces --sort-by='.lastTimestamp'
# Eventos de erro
kubectl get events --all-namespaces --field-selector type=Warning
# Eventos de um namespace
kubectl get events -n kube-system
Etapa 2: Eventos de um Componente
# Eventos relacionados a um Pod do sistema
kubectl describe pod <pod-name> -n kube-system | grep Events -A 10
Exercício 4: Saúde do Cluster
Etapa 1: Verificação Geral
# Informações do cluster
kubectl cluster-info
# Versão
kubectl version
# Recursos disponíveis
kubectl api-resources
Etapa 2: Namespace do Sistema
# Todos os recursos em kube-system
kubectl get all -n kube-system
# Secrets do sistema
kubectl get secrets -n kube-system
# ConfigMaps do sistema
kubectl get configmaps -n kube-system
Exercício 5: Diagnóstico
Etapa 1: Problemas Comuns
# Pods com erro
kubectl get pods --all-namespaces --field-selector status.phase!=Running
# Pods reiniciando
kubectl get pods --all-namespaces | grep -E "Error|CrashLoopBackOff"
# Nodes NotReady
kubectl get nodes | grep NotReady
Etapa 2: Análise de Logs
# Logs de um Pod que está falhando
kubectl logs <pod-name> -n <namespace> --previous
# Logs de todos os containers
kubectl logs <pod-name> -n <namespace> --all-containers=true
Perguntas para Reflexão
- Quais componentes são críticos para o funcionamento do cluster?
- Como você detecta um problema em um componente?
- Quais métricas são as mais importantes para monitorar?
- Como você reagiria se um node se tornasse NotReady?
Limpeza
Nenhuma limpeza necessária.
Próximos Passos
Módulo 3: Pods e Deployments
Quiz Módulo 2: Valide seus conhecimentos
Lab criado em: Dezembro de 2024