📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Módulo 13: DevOps e Cloud. Recomendado revisar antes de começar.
v1.0 — Engenharia de Software & Práticas Profissionais
Trilha de Especialização Pedagógica
- Tecnologias: Kubernetes, K8s Manifests, Ingress Nginx, HPA, ConfigMaps, Secrets
- Arquivo Principal:
k8s/deployment.yaml
Cluster Kubernetes corporativo com manifestos YAML completos: Deployments, Services ClusterIP/LoadBalancer, Ingress Nginx, ConfigMaps, Secrets e HPA (Horizontal Pod Autoscaler).
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
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd infra_k8s_04_kubernetes_cluster
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
O diagrama abaixo ilustra a topologia de componentes, balanceamento, esteiras de automação e observabilidade na subpasta k8s/:
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
| 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 |
| 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 |
| 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 |
| 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 |
| 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 ✅ |