📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Módulo 13: DevOps e Cloud. Recomendado revisar antes de começar.

☁️ Orquestração de Contêineres com Kubernetes (K8s)

v1.0 — Engenharia de Software & Práticas Profissionais

Trilha de Especialização Pedagógica


🎯 Objetivo & Escopo do Projeto

Cluster Kubernetes corporativo com manifestos YAML completos: Deployments, Services ClusterIP/LoadBalancer, Ingress Nginx, ConfigMaps, Secrets e HPA (Horizontal Pod Autoscaler).


🛠️ Código de Exemplo da Implementação

apiVersion: apps/v1
kind: Deployment
metadata:
  name: portal-api-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: portal-api
  template:
    metadata:
      labels:
        app: portal-api
    spec:
      containers:
      - name: api
        image: portal/api:latest
        ports:
        - containerPort: 8080


🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd infra_k8s_04_kubernetes_cluster

2. Execute a aplicação ou testes

terraform init && terraform plan
# ou docker-compose up -d

[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd catalogo_projetos/infra_k8s_04_kubernetes_cluster


🏛️ Arquitetura Visual & Engenharia de Infraestrutura

O diagrama abaixo ilustra a topologia de componentes, balanceamento, esteiras de automação e observabilidade na subpasta k8s/:

Arquitetura de Infraestrutura

flowchart TD
    subgraph Config["Configuração & IaC"]
        C1["Manifestos Declarativos"] --> C2["Variáveis & Segredos"]
    end
    subgraph Orquestracao["Orquestração & Redes"]
        O1["Load Balancer / Ingress"] --> O2["Pods / Contêineres de Serviço"]
    end
    subgraph Observabilidade["Observabilidade & Segurança"]
        M1["Telemetria Prometheus / k6"] --> M2["Scanners SAST & Dashboards"]
    end
    subgraph Qualidade["Homologação & Qualidade"]
        Q1["Automação CI/CD"] --> Q2["Checkpoints CP-01..05 PASS"]
    end

    Config --> Orquestracao
    Orquestracao --> Observabilidade
    Observabilidade --> Qualidade

    style Config fill:#e3f2fd,stroke:#1976d2,stroke-width:1.5px
    style Orquestracao fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px
    style Observabilidade fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px
    style Qualidade fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px

🎯 Engenharia de Requisitos & Modelagem Formal

👤 User Stories (Histórias de Usuário)

ID Persona História de Usuário Critério de Aceite Prioridade
US-01 Engenheiro de Plataforma Desejo manifestos de Deployment com réplicas e rolling updates Atualização contínua de versões sem indisponibilidade de serviço Alta
US-02 Arquiteto de Microsserviços Desejo Services ClusterIP e Ingress Controller para roteamento Descoberta de serviços interna e balanceamento de entrada externo via Ingress Alta
US-03 Especialista em Segurança Desejo segregação de configurações e segredos com ConfigMaps e Secrets Injeção segura de variáveis de ambiente sem expor senhas em repositório Alta
US-04 Operador de SRE Desejo Horizontal Pod Autoscaler (HPA) escalando pods sob uso de CPU Métricas de recursos acionando escala automática de 2 a 10 réplicas Média
US-05 Auditor de Qualidade Desejo testes de resiliência deletando pods aleatoriamente (Chaos simples) ReplicaSet restabelecendo a contagem desejada de pods imediatamente Média

⚙️ Requisitos Funcionais (RF)

ID Descrição do Requisito Criticidade
RF-01 Manifestos de Deployment com probes livenessProbe e readinessProbe Alta
RF-02 Services do tipo ClusterIP e NodePort com seletores de labels Alta
RF-03 ConfigMaps para parâmetros e Secrets base64 para credenciais Alta
RF-04 Configuração HPA com métricas de CPU e memória para auto-scale Média
RF-05 Scripts de validação com kubectl e suíte de testes de resiliência Média

🛡️ Requisitos Não-Funcionais (RNF)

ID Especificação Arquitetural Criticidade
RNF-01 Conformidade rigorosa com especificações da CNCF e Kubernetes v1.28+ Alta
RNF-02 Garantia de recuperação automática de pods com falha em menos de 10s Alta
RNF-03 Isolamento de recursos por Namespace e limites de requests/limits Alta
RNF-04 Manifestos limpos e declarativos organizados na subpasta k8s/ Alta
RNF-05 Compatibilidade com minikube, kind, k3s e clusters cloud gerenciados Média

🔗 Matriz de Rastreabilidade (RTM)

User Story Requisito Funcional Requisito Não-Funcional Módulo / Artefato de Código Status de Homologação
US-01 RF-01 RNF-01, RNF-02 k8s/deployment.yaml Testado
US-02 RF-02 RNF-01, RNF-03 k8s/service.yaml Testado
US-03 RF-03 RNF-01, RNF-04 k8s/configmap.yaml Testado
US-04 RF-04 RNF-02, RNF-03 k8s/hpa.yaml Testado
US-05 RF-05 RNF-02, RNF-05 k8s/test_cluster.sh Testado

🏁 Checkpoints de Qualidade & Homologação

Checkpoint Escopo da Validação Artefato Verificado Status
CP-01 Configuração Declarativa do Ambiente k8s/ PASS ✅
CP-02 Provisionamento & Orquestração Deployments / Services PASS ✅
CP-03 Redes, Proxies & Segurança de Borda Ingress / Security Groups PASS ✅
CP-04 Observabilidade, Métricas & SAST Metrics / Scanners PASS ✅
CP-05 Homologação com Suíte de Testes Test Suite / CI Gate PASS ✅