Pular para o conteúdo

Topologia

A topologia abaixo mostra os dois sites, os três clusters RKE e como tudo se conecta pela malha privada Headscale. Nenhuma porta administrativa é exposta à internet pública — todo acesso flui pela tailnet.

graph TB
    subgraph OVH["☁️ OVH — Canadá (Produção)"]
        subgraph MNGM["Cluster rke-mngm (Gestão)"]
            M0["rke-mngm-00<br/>Control Plane"]
            M1["rke-mngm-01<br/>LLDAP · Headscale · Vault"]
        end
        subgraph APP["Cluster rke-app (Produção)"]
            A0["rke-app-00<br/>Control Plane"]
            A1["rke-app-01<br/>Stateless"]
            A2["rke-app-02<br/>Stateless"]
            DB["rke-db-00<br/>PostgreSQL · Stateful<br/>🔒 Tainted + NVMe"]
        end
    end

    subgraph BR["🏢 Escritório Serigy — Aracaju, BR"]
        subgraph HML["Cluster rke-hml (Homologação)"]
            H0["rke-hml-00<br/>Control Plane + Worker"]
        end
        MK["mkrb-00<br/>MikroTik RouterBoard"]
    end

    R2["🪣 Cloudflare R2<br/>Backups (Wal-G / S3)"]

    M1 -.->|coordena tailnet| A0
    M1 -.->|coordena tailnet| A1
    M1 -.->|coordena tailnet| A2
    M1 -.->|coordena tailnet| DB
    M1 -.->|coordena tailnet| H0
    MK -->|roteia escritório| M1
    DB ==>|Wal-G archiving| R2

    classDef db fill:#7c2d12,stroke:#fb923c,color:#fff;
    classDef cp fill:#1e3a8a,stroke:#60a5fa,color:#fff;
    classDef svc fill:#14532d,stroke:#4ade80,color:#fff;
    class DB db;
    class M0,A0,H0 cp;
    class M1 svc;
  • OVH (Canadá) concentra produção: o cluster de gestão (mngm) e o cluster de aplicações (app).
  • O nó rke-db-00 é o coração de dados: isolado por taint, com volume NVMe dedicado, e é o único que recebe pods de PostgreSQL. Veja Computação & Scheduling e Dados & Armazenamento.
  • rke-mngm-01 ancora a confiança: roda LLDAP (identidade), Headscale (malha) e Vault (segredos). Todos os outros nós se juntam à tailnet coordenada por ele.
  • O escritório de Aracaju conecta-se via MikroTik (mkrb-00) e mantém o cluster de homologação (rke-hml-00).
  • Os backups do rke-db-00 são arquivados continuamente no Cloudflare R2 via Wal-G.
flowchart LR
    Dev["👩‍💻 Engenharia"] -->|SSO via LLDAP| ID[(LLDAP)]
    Dev -->|tailnet WireGuard| HS{{Headscale}}
    HS --> Nodes["Nós RKE<br/>(SSH só pela malha)"]
    Apps["Pods / Apps"] -->|secrets sob demanda| V[(Vault)]
    ID --> V
    ID --> Apps