Zum Inhalt springen
aYOUne

Kubernetes

Kubernetes

Für Production-Setups mit hoher Last oder strenger HA-Anforderung ist Kubernetes der bessere Weg. aYOUne kommt mit Helm-Charts und ist auf GKE und Hetzner getestet.

Helm-Charts

Im Repo unter infrastructure/helm-charts/ und infrastructure/helm-umbrella/:

Chart Zweck
node Generisches Chart für Node-Services (API/Worker) — wird von 90% der Services genutzt
frontend Statische Angular-App + nginx
crawler Web-Crawler (mit Chrome-Sidecar)
gateway WebSocket-Gateways
umbrella Meta-Chart, das alle Domänen-Charts orchestriert

Cluster-Setup

GKE

aYOUne läuft in zwei GKE-Clustern in europe-west3-a:

  • de-frankfurt
  • de-frankfurt-2

Achtung: Wenn helm history "release: not found" sagt, kann das einfach am falschen kubectl-Context liegen. Immer prüfen:

kubectl config current-context
gcloud container clusters list

Hetzner

Hetzner-Setup nutzt einen managed K3s über die Tolinax-Konsole. Setup via:

ay provision hetzner

Service-Deploy

Ein einzelnes Modul wird via Bitbucket-Pipeline deployed (master-Branch → develop-Namespace = Production):

helm upgrade --install api-crm \
  infrastructure/helm-charts/node \
  --namespace develop \
  --set image.tag=2026.7.0 \
  --set probes.enabled=true \
  --atomic --wait

Wichtig:

  • --atomic rollback-t auf Fehler — kann aber bei first-install-fail das Release komplett wipen (kein vorheriges Revision da).
  • probes.enabled=true aktiviert die Helm-node-Chart-Probes für /healthz + /readyz (opt-in seit Core 2026.46.0).

Health-Probes

Seit Core 2026.46.0 exposen alle Services standardmäßig:

Endpoint Bedeutung
GET /healthz Process-alive (immer 200, sobald Express läuft)
GET /readyz ay.isReady === true (DB + Models + License)

Workers ohne Express nutzen createWorkerHealthServer(ay) — minimaler HTTP-Listener auf AYOUNE_WORKER_PROBE_PORT (default 3000).

Ingress / Istio

aYOUne nutzt Istio mit einem Gateway pro Module-Host (crm-api.ayoune.app, marketing-api.ayoune.app, …). Plus ein gemeinsames Gateway für Frontend-Apps. Pro-Customer-Custom-Domains werden vom domain-worker provisioniert (Let's-Encrypt + VirtualService).

Sizing-Empfehlungen

Komponente Klein Mittel Groß
API-Pods 1 / Modul 2 / Modul 3+ / Modul
Worker-Pods 1 / Worker 2 / Worker 4+ / Worker
MongoDB M10 (Atlas) M30 M60+
Redis 1 GB 4 GB 16 GB
Cluster-Nodes 3× e2-standard-4 5× e2-standard-8 10× e2-standard-16

Externe MongoDB

Atlas wird empfohlen — Change-Streams sind aus Werk dabei, plus Backup, PITR und Atlas-Search (für die Hub-Module Wiki-Suche).

export MONGO_URL="mongodb+srv://user:pass@cluster.mongodb.net/ayoune?replicaSet=atlas-xxx"

Siehe auch: Environment Variables, Troubleshooting.

Mit dieser Seite weiterarbeiten

Fertige Anweisungen für dein KI-Werkzeug. Kopieren, einfügen, loslegen — die KI holt sich den Inhalt selbst über die Adresse im Text.

Die Schritte für mich zusammenfassen Das Wesentliche, in der richtigen Reihenfolge.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/self-hosting/kubernetes.md
Die vollständige Sammlung: https://ayoune.com/de/docs/self-hosting.md

Fasse den Inhalt für mich zusammen.

- Zuerst in zwei Sätzen: worum geht es hier?
- Dann die Schritte in der Reihenfolge, in der ich sie gehen muss.
- Je Schritt eine Zeile, in einfacher Sprache.
- Am Ende: was ich vorher bereithalten sollte.

Lass nichts weg, was ich brauche, um wirklich fertig zu werden.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
Bei der Einrichtung helfen Schritt für Schritt, mit Rückfragen an mich.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/self-hosting/kubernetes.md
Die vollständige Sammlung: https://ayoune.com/de/docs/self-hosting.md

Begleite mich Schritt für Schritt durch die Einrichtung.

- Sag mir zuerst, was ich bereithalten muss (Zugänge, Daten, Zeit).
- Dann führe mich EINEN Schritt nach dem anderen. Warte auf mein "weiter".
- Nenne je Schritt, woran ich merke, dass er geklappt hat.
- Wenn etwas schiefgeht, frag nach der genauen Meldung, statt zu raten.

Wenn die Anleitung eine Stelle offen lässt, sag mir das, statt sie zu erfinden.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
Bei einem Problem weiterhelfen Ursache eingrenzen statt raten.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/self-hosting/kubernetes.md
Die vollständige Sammlung: https://ayoune.com/de/docs/self-hosting.md

Hilf mir, ein Problem einzugrenzen.

- Frag mich zuerst, was ich beobachte und was ich erwartet hätte.
- Leite daraus die wahrscheinlichsten Ursachen ab, die zu dieser Quelle passen.
- Gib mir je Ursache EINEN Test, der sie bestätigt oder ausschließt.
- Sortiere so, dass der billigste Test zuerst kommt.

Rate nicht. Wenn die Quelle das Problem nicht abdeckt, sag mir, wo ich
weitersuchen sollte.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
In einfachen Worten erklären Ohne Fachbegriffe, von Grund auf.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/self-hosting/kubernetes.md
Die vollständige Sammlung: https://ayoune.com/de/docs/self-hosting.md

Erkläre den Inhalt so, dass ihn jemand ohne Vorwissen versteht.

- Beginne mit dem Zweck: wozu gibt es das überhaupt?
- Fachbegriffe beim ersten Vorkommen in einem Halbsatz erklären.
- Ein Alltags-Vergleich, wo er wirklich trägt — keiner, wo er hinkt.
- Am Ende: die drei Dinge, die man sich merken sollte.

Kürze nicht durch Weglassen von Einschränkungen. Eine Vereinfachung, die eine
Bedingung unterschlägt, ist eine Falschaussage.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
Checkliste zum Abhaken Zum Mitgehen während der Umsetzung.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/self-hosting/kubernetes.md
Die vollständige Sammlung: https://ayoune.com/de/docs/self-hosting.md

Mache daraus eine **abhakbare Checkliste** für die praktische Umsetzung.

- Je Punkt genau eine Handlung, im Imperativ.
- Reihenfolge so, dass kein Punkt eine spätere Voraussetzung braucht.
- Voraussetzungen und Stolperstellen als eingerückte Unterpunkte.
- Am Ende eine Abnahme: woran erkenne ich, dass alles richtig ist?
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.
In mein Projekt einbauen Konkreter Code für meinen Anwendungsfall.
Lies die folgende Dokumentation von tolinax UG und arbeite damit.

Diese Seite: https://ayoune.com/de/docs/self-hosting/kubernetes.md
Die vollständige Sammlung: https://ayoune.com/de/docs/self-hosting.md

Hilf mir, das in mein Projekt einzubauen.

- Frag mich zuerst nach Sprache, Umgebung und dem, was ich erreichen will.
- Gib dann ein minimales, lauffähiges Beispiel — keine Auslassungs-Punkte.
- Benenne die Fehlerfälle, die ich abfangen muss, und wie sie sich zeigen.
- Nenne Grenzen: Zeitlimits, Mengenbegrenzungen, Berechtigungen.

Verwende ausschließlich das, was die Quelle wirklich beschreibt. Erfinde keine
Felder, Parameter oder Endpunkte — ein erfundener Aufruf kostet mich mehr Zeit,
als er spart.
Hinweis zu den Quellen:
- Jede Seite dieser Dokumentation ist als Markdown abrufbar (dieselbe Adresse mit `.md`).
- Ein maschinenlesbarer Überblick aller öffentlichen Inhalte liegt unter `/llms.txt`.
- Falls du Zugriff auf den aYOUne-MCP-Server hast, kannst du damit gegen lebende Daten
  arbeiten statt gegen diese Momentaufnahme. Falls nicht, ignoriere diesen Punkt.

War dieser Artikel hilfreich?

👎 Nein (0)
Kommentar hinterlassen