Pular para o conteúdo principal

Boas Práticas de Arquitetura

Siga o AKS Baseline. Não invente sua própria arquitetura. A Microsoft testou isso em escala com centenas de clientes corporativos.

A arquitetura AKS baseline

O AKS Baseline é a arquitetura de referência da Microsoft para Kubernetes em produção. Ele cobre rede, identidade, segurança, operações e padrões de implantação. Comece por aqui, depois personalize.

Opinião

Comece pelo baseline, depois personalize para suas necessidades. Não o contrário. Times que projetam do zero inevitavelmente redescobrem cada problema que o baseline já resolveu.

Princípios arquiteturais fundamentais

PrincípioImplementaçãoPor que
API server privado--enable-private-clusterControl plane não exposto à internet
Workload IdentityIdentidade federada, sem secrets nos podsZero credenciais armazenadas, rotação automática
Network policiesCalico ou Azure NPM, default-denyPrevenção de movimentação lateral
Availability Zones3 zonas para todos os node poolsSobreviver a falha de datacenter
GitOpsFlux ou ArgoCD para deploymentsAuditável, repetível, recuperável
Managed IdentityIdentidades system + user assignedSem secrets de service principal para rotacionar

Topologia de rede hub-spoke

Topologia de Rede Hub-Spoke

O hub contém serviços compartilhados (Azure Firewall, Bastion, DNS). Cada spoke é um ambiente de workload isolado. O AKS fica em seu próprio spoke com uma subnet dedicada para pods e outra para nodes.

Componentes do baseline

# The baseline includes all of these. Don't skip any for production:
- Azure Firewall (egress control)
- Azure Application Gateway + WAF (ingress)
- Azure Container Registry (private, geo-replicated)
- Azure Key Vault (secrets, certs)
- Azure Monitor + Log Analytics (observability)
- Microsoft Defender for Containers (security)
- Azure Policy (governance)
- Private DNS Zones (name resolution)
aviso

Pular o Azure Firewall para egress significa que seu cluster pode alcançar qualquer endpoint na internet. Um pod comprometido pode exfiltrar dados para qualquer lugar. O firewall adiciona custo, mas é inegociável para workloads regulados.

Microsserviços no AKS

DecisãoRecomendação
Estratégia de namespaceUm namespace por time de serviço
Isolamento de recursosResourceQuotas por namespace
Limites de redeNetworkPolicies entre namespaces (default-deny)
Comunicação entre serviçosDNS in-cluster para interno, HTTPS para externo
SecretsExternal Secrets Operator + Key Vault, nunca Kubernetes Secrets diretamente
ConfiguraçãoConfigMaps para dados não-sensíveis, Key Vault para dados sensíveis
# Resource quota per team namespace
apiVersion: v1
kind: ResourceQuota
metadata:
name: team-quota
namespace: payments-team
spec:
hard:
requests.cpu: "20"
requests.memory: 40Gi
limits.cpu: "40"
limits.memory: 80Gi
persistentvolumeclaims: "10"
services.loadbalancers: "2"

Antipadrões a evitar

  1. API server público -- Seu control plane está na internet. Use private cluster.
  2. Namespace único para todos os workloads -- Sem isolamento, sem quotas, um time pode deixar outro sem recursos.
  3. Service principals com secrets -- Use managed identity. Secrets expiram e vazam.
  4. Sem network policies -- Todo pod pode se comunicar com qualquer outro pod. Uma brecha compromete tudo.
  5. Deploy direto com kubectl -- Sem trilha de auditoria, sem rollback, sem reprodutibilidade. Use GitOps.
  6. Sem filtragem de egress -- Pods comprometidos podem se comunicar com qualquer servidor C2.
informação

A implementação de referência do AKS Baseline é totalmente implantável. Clone o repositório, personalize os parâmetros, faça o deploy. Não construa do zero.

Recursos