Pular para o conteúdo principal

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:

  1. Control Plane: Toma decisões e gerencia o estado
  2. 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