Capítulo 1.4 - Arquitetura de Alto Nível
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender a estrutura de um cluster Kubernetes
- Identificar os componentes do Control Plane
- Identificar os componentes dos Worker Nodes
- Entender a comunicação entre os componentes
Introdução
Um cluster Kubernetes é composto por máquinas organizadas em dois grupos principais: o Control Plane (anteriormente chamado de Master) e os Worker Nodes. Compreender essa arquitetura é essencial para dominar o Kubernetes.
Visão Geral de um Cluster
Estrutura Básica
Dois tipos de máquinas:
- Control Plane: Toma decisões e gerencia o estado
- Worker Nodes: Executam as aplicações
O Control Plane (Master)
Papel Principal
O Control Plane é o "cérebro" do cluster:
Responsabilidades:
- Gerenciar o estado desejado do cluster
- Tomar decisões de deploy
- Coordenar os Worker Nodes
- Expor a API do Kubernetes
Componentes do Control Plane
1. API Server
Papel: Ponto de entrada único para todas as interações
Funcionalidades:
- Valida e processa todas as requisições
- Expõe a API REST do Kubernetes
- Autenticação e autorização
- Rate limiting
2. etcd
Papel: Banco de dados distribuído - Fonte da verdade
Características:
- Banco de dados chave-valor distribuído
- Armazena TODO o estado do cluster
- Fonte única da verdade
- Alta disponibilidade (várias instâncias)
Importante: etcd é crítico - sua perda = perda do cluster!
3. Controller Manager
Papel: Executa os loops de controle
Controllers incluídos:
- Deployment Controller
- ReplicaSet Controller
- Service Controller
- Node Controller
- E muitos outros...
Princípio: Monitora o estado desejado vs o estado real e toma ações corretivas
4. Scheduler
Papel: Decide em qual node colocar os novos Pods
Critérios de seleção:
- Recursos disponíveis (CPU, RAM)
- Restrições (affinity, anti-affinity)
- Balanceamento de carga
- Políticas de alocação
Os Worker Nodes
Papel Principal
Os Worker Nodes executam as aplicações:
Componentes de um Worker Node
1. kubelet
Papel: Agente que comunica com o API Server
Funcionalidades:
- Recebe instruções do API Server
- Gerencia os Pods no node
- Monitora a saúde dos containers
- Reporta o estado ao Control Plane
2. kube-proxy
Papel: Gerencia o networking no nível do node
Funcionalidades:
- Implementa os Services (load balancing)
- Gerencia as regras de rede
- Roteamento do tráfego para os Pods
- Network Policies
3. Container Runtime
Papel: Executa os containers
Runtimes suportados:
- Docker (descontinuado, mas ainda utilizado)
- containerd (recomendado)
- CRI-O (leve)
Interface: CRI (Container Runtime Interface)
Comunicação no Cluster
Fluxo de Comunicação
Comunicação API Server ↔ Nodes
Protocolo: HTTPS (seguro) Direção: Bidirecional
- API Server → Nodes: Instruções
- Nodes → API Server: Relatórios de estado
Alta Disponibilidade
Control Plane HA
Para produção, o Control Plane deve ser altamente disponível:
Recomendação: Mínimo de 3 instâncias para quorum
Resumo do Capítulo
Neste capítulo, você aprendeu:
Cluster = Control Plane + Worker Nodes
Control Plane: API Server, etcd, Controller Manager, Scheduler
Worker Nodes: kubelet, kube-proxy, Container Runtime
API Server: Ponto de entrada único
etcd: Banco de dados do estado
kubelet: Agente em cada node
Comunicação: HTTPS entre todos os componentes
Próximos Passos
Agora que você entende a arquitetura:
Capítulo 1.5: Conceitos Fundamentais (Pods, Services, etc.)
Lab 1.1: Primeiro Deploy
Capítulo criado em: Dezembro 2024