Netzwerk und Kommunikation¶
Netzwerktopologie der Inovetra AI Platform
Übersicht der Netzwerkkommunikation, Ingress-Routing, Firewall-Anforderungen und TLS-Konfiguration.
Ingress-Routing¶
Der Ingress Controller empfängt alle externen HTTPS-Anfragen und leitet sie anhand des URL-Pfads an den entsprechenden Service weiter:
| Pfad | Ziel-Service | Port | Beschreibung |
|---|---|---|---|
/ |
LibreChat | — | Chat-Frontend und -Backend |
/portal |
Customer Portal | 443 | Self-Service Admin-UI |
/api/customer/* |
Customer API | 8000 | Plattform-Management-Backend |
/api/rag/* |
RAG API | 8443 | RAG-Endpunkte |
/api/connectors/* |
Connector Service | 8000 | Datenquellen-Synchronisation |
Externe Ports (Firewall)¶
Die folgenden Ports müssen auf der VM-Firewall geöffnet sein:
| Port | Protokoll | Richtung | Zweck |
|---|---|---|---|
| 80 | TCP | Inbound | HTTP → HTTPS-Redirect |
| 443 | TCP | Inbound | HTTPS (Ingress Controller) |
| 6443 | TCP | Inbound | K8s API — nur Management-VPN |
K8s API-Zugriff
Port 6443 darf ausschließlich über das Management-VPN erreichbar sein. Dieser Port darf niemals öffentlich zugänglich gemacht werden.
Interne Service-Kommunikation¶
Alle Services kommunizieren über Kubernetes-interne DNS-Namen. Das Format lautet:
<service-name>.<namespace>.svc.cluster.local:<port>
Beispiele:
| Service | Interner DNS-Name |
|---|---|
| Customer API | inovetra-customer-api.inovetra-platform.svc.cluster.local:8000 |
| RAG API | inovetra-rag-api.inovetra-platform.svc.cluster.local:8443 |
| PostgreSQL | inovetra-postgres.inovetra-platform.svc.cluster.local:5432 |
| MongoDB | inovetra-mongodb.inovetra-platform.svc.cluster.local:27017 |
| Qdrant | inovetra-vectordb.inovetra-platform.svc.cluster.local:6333 |
| Redis | inovetra-redis.inovetra-platform.svc.cluster.local:6379 |
| MinIO | inovetra-minio.inovetra-platform.svc.cluster.local:9000 |
| LiteLLM | inovetra-llm-proxy.inovetra-platform.svc.cluster.local:4000 |
| SearXNG | inovetra-searxng.inovetra-platform.svc.cluster.local:8080 (nur bei aktiver Websuche) |
| web-scraper | inovetra-web-scraper.inovetra-platform.svc.cluster.local:8080 (nur bei aktiver Websuche) |
Internet-Egress bei aktivierter Websuche
Bei eingeschalteter Websuche von Inovetra AI stellen SearXNG (Suchanfragen an externe Suchmaschinen) und web-scraper (Abruf ausgewählter Webseiten) ausgehende Verbindungen ins Internet über Ports 80/443 her. Der web-scraper besitzt SSRF-Schutz und ist über NetworkPolicies abgesichert. Bei aktivierten Egress-Policies (networkPolicies.egress.enabled: true) müssen entsprechende Egress-Regeln vorhanden sein. Details: Websuche.
TLS-Konfiguration¶
Externes TLS¶
Externe TLS-Terminierung erfolgt am Ingress Controller. Zwei Optionen:
| Methode | Konfiguration |
|---|---|
| Let's Encrypt (automatisch) | tls.letsencrypt.enabled: true — cert-manager stellt Zertifikate automatisch aus |
| Custom-Zertifikat | Manuell als K8s Secret hinterlegt |
Internes TLS¶
Bei aktiviertem TLS (tls.enabled: true, Standard) verwenden die meisten internen Service-zu-Service-Verbindungen bereits HTTPS (z.B. Ingress → Backend-Services, RAG API → Qdrant, Connector → RAG API). Zusätzliche TLS-Absicherung ist über folgende Parameter steuerbar:
| Parameter | Beschreibung | Standard |
|---|---|---|
tls.internal.enabled |
Erweiterte TLS-Absicherung für alle internen Services | false |
tls.verify |
Strikte TLS-Zertifikatsverifizierung für internen Traffic | false |
Empfehlung
Für Produktivumgebungen mit erhöhten Sicherheitsanforderungen sollte internes TLS aktiviert und eine interne CA (z. B. cert-manager Self-Signed CA) eingerichtet werden.
Network Policies¶
Kubernetes Network Policies sind standardmäßig aktiviert und schränken den erlaubten Netzwerkverkehr zwischen Pods ein:
| Parameter | Beschreibung | Standard |
|---|---|---|
networkPolicies.enabled |
Aktiviert Ingress Network Policies | true |
networkPolicies.egress.enabled |
Aktiviert Egress Network Policies | false |
Egress-Policies nicht ohne Vorbereitung aktivieren
Die Egress-Policies sind standardmäßig deaktiviert. Wenn Sie networkPolicies.egress.enabled: true setzen, ohne für jeden Service passende Egress-Regeln zu definieren, werden Services daran gehindert, ausgehende Verbindungen herzustellen. Dies führt zu Totalausfall der Plattform (DNS-Auflösung, API-Calls, Datenbankverbindungen).
DNS-Anforderungen¶
- Die Kundendomain (z. B.
ai.kunde.de) muss per DNS-A-Record auf die externe IP der VM zeigen - Der DNS-Eintrag muss konfiguriert sein, bevor Let's Encrypt-Zertifikate ausgestellt werden können (ACME HTTP-01 Challenge)
- Die Domain wird in den Helm Values unter
global.domainkonfiguriert
Weiterführende Seiten¶
- Plattform-Architektur — Gesamtarchitektur und Deployment-Modelle
- Netzwerksicherheit — Sicherheitsaspekte der Netzwerkkonfiguration