DevOps

Kubernetes do Zero: Parte 1 - Introdução e Conceitos Fundamentais

✍️ Taylson Martinez
10 min read
Kubernetes do Zero: Parte 1 - Introdução e Conceitos Fundamentais

Primeiro post da série sobre Kubernetes. Aprenda os conceitos fundamentais, arquitetura e por que Kubernetes é essencial para containers em produção.

🌐

Este artigo também está disponível em inglês

Ler em Inglês →

Bem-vindo à Série Kubernetes do Zero!

Esta é a Parte 1 de uma série completa sobre Kubernetes. Vamos do básico ao avançado, construindo conhecimento de forma progressiva.

O que é Kubernetes?

Kubernetes (K8s) é uma plataforma de orquestração de containers open-source que automatiza deployment, scaling e gerenciamento de aplicações containerizadas.

Por que Kubernetes?

Imagine que você tem 100 containers rodando em produção:

  • Como você faz deploy de novas versões?
  • Como você escala quando o tráfego aumenta?
  • O que acontece quando um container falha?
  • Como você gerencia networking entre containers?

Kubernetes resolve tudo isso e muito mais!

Arquitetura do Kubernetes

Control Plane (Plano de Controle)

O “cérebro” do cluster Kubernetes:

┌─────────────────────────────────┐
│     Control Plane               │
│  ┌───────────┐  ┌──────────┐  │
│  │ API Server│  │ Scheduler│  │
│  └───────────┘  └──────────┘  │
│  ┌────────────┐ ┌───────────┐ │
│  │ Controller │ │   etcd    │ │
│  │  Manager   │ │ (Storage) │ │
│  └────────────┘ └───────────┘ │
└─────────────────────────────────┘

Componentes:

  1. API Server: Ponto de entrada para todas as operações
  2. Scheduler: Decide em qual node rodar os pods
  3. Controller Manager: Mantém o estado desejado do cluster
  4. etcd: Armazena toda a configuração e estado do cluster

Worker Nodes

Onde os containers realmente rodam:

┌──────────────────────────────┐
│      Worker Node             │
│  ┌──────────────────────┐   │
│  │   Kubelet            │   │
│  │   (Node Agent)       │   │
│  └──────────────────────┘   │
│  ┌──────────────────────┐   │
│  │   Kube-proxy         │   │
│  │   (Networking)       │   │
│  └──────────────────────┘   │
│  ┌──────────────────────┐   │
│  │   Container Runtime  │   │
│  │   (Docker/containerd)│   │
│  └──────────────────────┘   │
│  ┌─────┐ ┌─────┐ ┌─────┐   │
│  │ Pod │ │ Pod │ │ Pod │   │
│  └─────┘ └─────┘ └─────┘   │
└──────────────────────────────┘

Conceitos Fundamentais

1. Pod

A menor unidade deployável no Kubernetes. Um pod pode conter um ou mais containers.

apiVersion: v1
kind: Pod
metadata:
  name: meu-app
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80

Características:

  • Containers no mesmo pod compartilham network e storage
  • Pods são efêmeros (podem ser criados e destruídos)
  • Cada pod tem seu próprio IP

2. Deployment

Gerencia pods de forma declarativa. Define quantas réplicas você quer e o K8s garante que estejam rodando.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: meu-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: meu-app
  template:
    metadata:
      labels:
        app: meu-app
    spec:
      containers:
      - name: nginx
        image: nginx:latest

3. Service

Expõe seus pods para o mundo exterior ou internamente no cluster.

apiVersion: v1
kind: Service
metadata:
  name: meu-app-service
spec:
  selector:
    app: meu-app
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

Por que Você Deveria Aprender Kubernetes?

1. Padrão da Indústria

  • Usado por Google, Netflix, Spotify, Uber
  • Adotado por quase todas as empresas cloud-native

2. Portabilidade

  • Roda em qualquer lugar: AWS, GCP, Azure, on-premise
  • Evita vendor lock-in

3. Escalabilidade

  • Escala horizontal automaticamente
  • Lida com milhões de requisições

4. Self-Healing

  • Reinicia containers que falham
  • Substitui nodes problemáticos
  • Redistribui carga automaticamente

5. Alta Demanda no Mercado

  • Salários acima da média
  • Crescimento de 200%+ na demanda

Casos de Uso Reais

Spotify

  • Desafio: Rodar 1000+ microservices
  • Solução: Kubernetes para orquestração
  • Resultado: Deploy 10x mais rápido

The New York Times

  • Desafio: Migrar de datacenter legado para cloud
  • Solução: Containerização com Kubernetes
  • Resultado: Redução de 60% nos custos

Pokemon GO

  • Desafio: Escalar de 0 para 500M+ usuários
  • Solução: Google Kubernetes Engine
  • Resultado: Escalou 50x em poucos dias

Próximos Passos

Na Parte 2 desta série, vamos:

  • Instalar Kubernetes localmente (Minikube)
  • Fazer nosso primeiro deploy
  • Explorar comandos kubectl essenciais
  • Criar nosso primeiro pod

Conceitos Importantes para Próxima Parte

Certifique-se de entender:

  • ✅ O que é um Pod
  • ✅ Diferença entre Deployment e Pod
  • ✅ O que é um Service
  • ✅ Arquitetura básica (Control Plane + Nodes)

Recursos Adicionais


🎯 Na próxima parte: Vamos colocar a mão na massa e fazer nosso primeiro deploy no Kubernetes!

Vejo você na Parte 2! 🚀