Skip to content

Orquestração com Kubernetes (k8s)

A infraestrutura de contêineres e microsserviços do Centro de Tecnologia e Inovação (CeTI/PMDF) é orquestrada através do Kubernetes. Nosso cluster hospeda as principais aplicações corporativas, sites e sistemas internos.

Arquitetura do Cluster

  • Control Plane: Múltiplos masters garantem alta disponibilidade.
  • Worker Nodes: Separados em node pools de acordo com o recurso demandado (CPU/Memória intensiva, ou genéricos).
  • Ingress Controller: Empregamos um Ingress Controller (como NGINX ou Traefik) que recebe o tráfego externo, passando primeiro pelo Firewall Checkpoint, para rotear aos services em namespaces adequados.

Ferramentas de CI/CD

O deploy de novas aplicações na infraestrutura k8s é integrado a canais de CI/CD definidos pelos times de desenvolvimento, porém a SSSI é responsável pela alocação de namespaces e cotas de recursos, bem como pela configuração de volumes persistentes (PVC) e Secrets (como o Client Secret do Keycloak).

yaml
# Exemplo Técnico: Estrutura de Deployment Básico e Resource Limits
apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-frontend
  namespace: pmdf-apps
spec:
  replicas: 3
  selector:
    matchLabels:
      app: frontend
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: container-frontend
        image: dev-repo.pmdf.df.gov.br/frontend:latest
        resources:
          requests:
            memory: "128Mi"
            cpu: "100m"
          limits:
            memory: "256Mi"
            cpu: "500m"
        ports:
        - containerPort: 80

Gestão de Cotas (Resource Quotas)

Cada namespace das secretarias e diretorias possui Resource Quotas rígidos, impedindo que um Pod ou Deployment defectivo comprometa totalmente a banda ou capacidade de processamento do cluster.

Monitoramento

O tráfego de pods e a saúde do cluster são acompanhados através da integração do K8s com o Zabbix e Prometheus/Grafana locais. Todos os logs das aplicações (stdout/stderr) são centralizados.


Guia de Operação: Scale e Restart de Pods

Público-alvo: Operadores de Infraestrutura SSSI

  1. Para escalar rapidamente aplicações com gargalo (por Ex., um alto volume de acessos repentino num serviço específico).
bash
kubectl scale deployment/api-frontend --replicas=5 -n pmdf-apps
  1. Para resolver falhas intermitentes realizando um restart do Deployment sem ocasionar downtime na ponta (Rolling Restart):
bash
kubectl rollout restart deployment/api-frontend -n pmdf-apps