Pular para o conteúdo

Nó Dedicado de Banco

Este é o contrato de scheduling do nó de banco. O agente injeta o bloco abaixo em toda criação de cluster PostgreSQL para garantir que ele — e somente ele — seja agendado no rke-db-00.

# Injetado em todo manifesto de banco gerado pelo agente
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/database
operator: In
values:
- "true"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "database"
effect: "NoSchedule"
flowchart TB
    subgraph node["rke-db-00"]
        L["Label: node-role.kubernetes.io/database=true"]
        T["Taint: dedicated=database:NoSchedule"]
    end
    A["nodeAffinity (required)"] -->|exige o label| L
    Tol["toleration (Equal/database)"] -->|tolera o taint| T
    PG["Pod PostgreSQL"] --- A
    PG --- Tol
    PG -->|✅ agendado| node
    Other["Outro pod (sem o bloco)"] -.->|❌ repelido| T
MetadePapel
nodeAffinity (dura)Força o pod para o nó com o label de banco
tolerationsPermite que o pod ignore o taint que repele os demais

Sem a affinity, o pod poderia ir para qualquer nó. Sem a toleration, ele seria repelido pelo taint. As duas são obrigatórias.