> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.adid.dev/llms.txt.
> For full documentation content, see https://docs.adid.dev/llms-full.txt.

# Deployment Topology — Kubernetes

**Used in:** §14.3 Kubernetes & Helm
**Audience:** DevOps
**IA ID:** D18

```mermaid
graph TB
  classDef ing fill:#dbeafe,stroke:#1d4ed8
  classDef svc fill:#dcfce7,stroke:#15803d
  classDef pod fill:#fef9c3,stroke:#b45309
  classDef pvc fill:#fae8ff,stroke:#a21caf
  classDef ext fill:#e5e7eb,stroke:#475569

  Ingress["Ingress (TLS, host: adid.dev)"]:::ing

  Ingress --> SvcPortal["Service: portal"]:::svc
  Ingress --> SvcAPI["Service: api"]:::svc

  SvcPortal --> PodPortal1["Pod portal-1"]:::pod
  SvcPortal --> PodPortal2["Pod portal-2"]:::pod
  SvcAPI --> PodAPI1["Pod api-1"]:::pod
  SvcAPI --> PodAPI2["Pod api-2"]:::pod
  SvcAPI --> PodAPI3["Pod api-3"]:::pod

  SvcPG["Service: postgres (headless)"]:::svc
  SvcRedis["Service: redis"]:::svc

  PodAPI1 --> SvcPG
  PodAPI2 --> SvcPG
  PodAPI3 --> SvcPG
  PodAPI1 --> SvcRedis
  PodAPI2 --> SvcRedis
  PodAPI3 --> SvcRedis

  SvcPG --> StsPG["StatefulSet postgres"]:::pod
  SvcRedis --> StsRedis["StatefulSet redis"]:::pod
  StsPG --> PVCPG[("PVC postgres-data")]:::pvc
  StsRedis --> PVCRedis[("PVC redis-data")]:::pvc

  ADI["ADI RPC (external)"]:::ext
  PodAPI1 --> ADI
  PodAPI2 --> ADI
  PodAPI3 --> ADI
```

**Reading guide:** API is a stateless Deployment (HPA-friendly); Postgres and Redis are StatefulSets backed by PVCs. The chain is treated as an external dependency.

***