Pular para o conteúdo principal

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​

  1. Quais componentes são críticos para o funcionamento do cluster?
  2. Como você detecta um problema em um componente?
  3. Quais métricas são as mais importantes para monitorar?
  4. 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