Licensed to be used in conjunction with basebox, only.
// installation
basebox – Helm Charts verwenden
Gilt für
Produkt: Server · Zielgruppe: Platform Operator
basebox mit einem Befehl aus der OCI-Helm-Registry installieren.
Nutzen Sie diese Seite für echte Domains, TLS über cert-manager oder kundenverwaltete TLS-Secrets.
Aktuelles stabiles Release
Die Chart-Version von basebox.ai ist 0.3.32 und stellt
Komponenten von basebox 1.8.8 bereit.
Zur Bereitstellung optionaler Konnektor-Dienste im Cluster siehe MCP-Konnektoren mit Helm bereitstellen.
Soll basebox ein LLM auf einem separaten GPU-Server nutzen, lesen Sie zuerst Deployment-Topologien. Der basebox-Anwendungscluster kann rein CPU-basiert sein, wenn alle GPU-Workloads woanders liegen oder im CPU-Modus konfiguriert sind.
Sie suchen den kürzesten lokalen Installationsweg?
Für eine Einzelknoten-Evaluierungsinstallation basebox.local mit lokalen/selbst verwalteten TLS-Standards nutzen Sie den Lokalen Schnellstart.
Voraussetzungen
- Kubernetes-Cluster bereits vorbereitet
kubectlundhelmauf Ihrer Workstation installiert- CloudNativePG-Operator im Cluster installiert
- Ingress-Controller im Cluster installiert
- NVIDIA-GPU-Unterstützung auf den Knoten, die Inferenz oder RAG-Dienste im GPU-Modus ausführen; auf einem reinen CPU-Anwendungscluster mit externer Inferenz nicht erforderlich
- DNS für Ihren öffentlichen Hostname zeigt bereits auf die Ingress-IP
- cert-manager installiert und ein
ClusterIssuerverfügbar, wenn Sieglobal.tls.mode=cert-managernutzen
Registry-Zugangsdaten
Das OCI-Chart ist unter oci://gitea.basebox.health/basebox-distribution/helm/basebox.ai veröffentlicht.
Erfordern OCI-Pull oder Registry-Login Zugangsdaten, verwenden Sie den Benutzernamen pacman mit diesem Token:
TLS-Modi
Das Verhalten des Charts wird über global.tls.mode gesteuert.
local
- lokales/selbst verwaltetes TLS
- AISRV nutzt den JWKS-Dateimodus
- gedacht für lokale Evaluierung und interne Installationen
cert-manager
- cert-manager verwaltet das Ingress-TLS-Secret
- AISRV nutzt den normalen JWKS-URL-Modus
- empfohlen für öffentliche Domains
existing-secret
- Sie stellen das Ingress-TLS-Secret selbst bereit
- AISRV nutzt den normalen JWKS-URL-Modus
- nutzen Sie diesen Modus, wenn Sie TLS bereits selbst verwalten
Der Hostname selbst ist nicht das Unterscheidungsmerkmal; basebox.internal kann z. B. local oder existing-secret nutzen. Entscheidend ist das TLS-Vertrauensmodell.
Schritt 1: Kubeconfig setzen
Schritt 2: Optionaler OCI-Registry-Login
Funktioniert der anonyme OCI-Pull in Ihrer Umgebung, ist dieser Schritt optional.
Schritt 3: TLS-Konfiguration wählen
Wählen Sie genau eine der folgenden Optionen. Führen Sie nicht beide Helm-Befehle aus.
helm upgrade --install installiert basebox, wenn das Release noch nicht existiert,
und aktualisiert das bestehende Release, wenn es existiert.
Option A: cert-manager verwenden
Nutzen Sie diese Option, wenn cert-manager installiert ist und der Cluster einen
passenden ClusterIssuer hat. cert-manager erzeugt und erneuert das Kubernetes-TLS-Secret
mit dem Namen aus global.tls.secretName.
helm upgrade --install basebox oci://gitea.basebox.health/basebox-distribution/helm/basebox.ai \
--version 0.3.32 \
-n basebox \
--create-namespace \
--wait \
--timeout 120m \
--set global.domain=kubetest.bbox-dev.de \
--set global.tls.mode=cert-manager \
--set global.tls.clusterIssuer=letsencrypt-prod \
--set global.tls.secretName=kubetest-bbox-dev-de-tls \
--set quickstart.adminEmail=admin@kubetest.bbox-dev.de
Was dabei geschieht:
- alle basebox-Dienste und Datenbanken werden installiert
- Bootstrap-Secrets werden automatisch erzeugt
- der Ingress wird für
kubetest.bbox-dev.dekonfiguriert - cert-manager wird um Ausstellung des TLS-Zertifikats gebeten
- OIDC wird für denselben externen Hostname konfiguriert
Option B: Bestehendes TLS-Secret verwenden
Nutzen Sie diese Option, wenn Sie Zertifikat und privaten Schlüssel bereits haben.
Ein Kubernetes-TLS-Secret ist ein Secret vom Typ kubernetes.io/tls. Es enthält das
Zertifikat in tls.crt und den privaten Schlüssel in tls.key. Das Secret muss im
selben Namespace wie basebox liegen, und sein Name muss global.tls.secretName
entsprechen.
Legen Sie zum Beispiel den Namespace basebox und ein Secret customer-tls an:
kubectl create namespace basebox --dry-run=client -o yaml | kubectl apply -f -
kubectl -n basebox create secret tls customer-tls \
--cert=<PATH_TO_TLS_CERTIFICATE> \
--key=<PATH_TO_TLS_PRIVATE_KEY>
Installieren oder aktualisieren Sie basebox dann mit diesem Secret:
helm upgrade --install basebox oci://gitea.basebox.health/basebox-distribution/helm/basebox.ai \
--version 0.3.32 \
-n basebox \
--create-namespace \
--wait \
--timeout 120m \
--set global.domain=basebox.customer.internal \
--set global.tls.mode=existing-secret \
--set global.tls.secretName=customer-tls \
--set quickstart.adminEmail=admin@basebox.customer.internal
Anforderungen für diesen Modus:
- das Secret
customer-tlsexistiert bereits im Namespacebasebox - der Secret-Typ ist
kubernetes.io/tls, und es enthälttls.crtundtls.key - das Zertifikat ist für
global.domaingültig
Schritt 4: TLS-Konfiguration prüfen
Prüfen Sie in beiden TLS-Modi, dass der Ingress Ihren konfigurierten Hostname nutzt:
Haben Sie Option A (cert-manager) gewählt, beobachten Sie die Zertifikatsressourcen:
Erwartet:
- die Zertifikatsressourcen erreichen den Zustand ready
Haben Sie Option B (existing-secret) gewählt, prüfen Sie den Secret-Typ:
Erwartet:
In beiden Modi muss der Ingress-Host global.domain entsprechen.
k3s-DNS-Probleme
Wenn Sie k3s verwenden, beachten Sie diesen FAQ-Eintrag, um DNS-Probleme zu vermeiden.
Schritt 5: Pods und Bootstrap-Job prüfen
kubectl -n basebox get pods
kubectl -n basebox wait --for=condition=complete job/idp-keycloak-bootstrap --timeout=10m
Erwartet:
- Dienst-Pods werden
Running idp-keycloak-bootstrapwird erfolgreich abgeschlossen
Schritt 6: Anmeldedaten holen
Login für die Oberfläche:
kubectl -n basebox get secret basebox-admin-secret \
-o jsonpath='{.data.ADMIN_EMAIL}' | base64 -d && echo
kubectl -n basebox get secret basebox-admin-secret \
-o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d && echo
Keycloak-Admin-Passwort:
kubectl -n basebox get secret keycloak-admin-secret \
-o jsonpath='{.data.KEYCLOAK_ADMIN_PASSWORD}' | base64 -d && echo
Schritt 7: Smoke-Checks
curl -k -X POST "https://kubetest.bbox-dev.de/graphql" \
-H 'Content-Type: application/json' \
-H 'X-Realm: primary' \
--data-binary '{"query":"query { __typename }"}'
Erwartete Antwort:
Im Browser öffnen:
Alternative: minimale Values-Datei
Wenn Sie eine Values-Datei vielen --set-Flags vorziehen:
# values.customer.yaml
global:
domain: kubetest.bbox-dev.de
tls:
mode: cert-manager
clusterIssuer: letsencrypt-prod
secretName: kubetest-bbox-dev-de-tls
quickstart:
adminEmail: admin@kubetest.bbox-dev.de
Installieren:
helm upgrade --install basebox oci://gitea.basebox.health/basebox-distribution/helm/basebox.ai \
--version 0.3.32 \
-n basebox \
--create-namespace \
--wait \
--timeout 120m \
-f values.customer.yaml
Bestehende Installation aktualisieren
Erstellen und prüfen Sie vor dem Upgrade ein Backup der AISRV-Datenbank und bewahren Sie die für die Installation verwendeten Values-Dateien auf.
Verwenden Sie denselben TLS-Modus und dieselben Einstellungen wie die bestehende
Installation. Enthält values.customer.yaml zum Beispiel die oben gezeigte
cert-manager-Konfiguration, aktualisieren Sie mit den neuen Chart-Standards und
dieser Values-Datei:
helm upgrade basebox oci://gitea.basebox.health/basebox-distribution/helm/basebox.ai \
--version 0.3.32 \
--namespace basebox \
--reset-then-reuse-values \
--wait \
--timeout 120m \
--values values.customer.yaml
Verwalten Sie die cert-manager-Einstellungen direkt auf der Kommandozeile statt in einer Values-Datei, nutzen Sie:
helm upgrade basebox oci://gitea.basebox.health/basebox-distribution/helm/basebox.ai \
--version 0.3.32 \
--namespace basebox \
--reset-then-reuse-values \
--wait \
--timeout 120m \
--set global.domain=<YOUR_DOMAIN> \
--set global.tls.mode=cert-manager \
--set global.tls.clusterIssuer=<YOUR_CLUSTER_ISSUER> \
--set global.tls.secretName=<YOUR_TLS_SECRET_NAME>
global.tls.secretName ist hier das Secret, das cert-manager erzeugt und erneuert;
Sie legen dieses Secret nicht manuell an.
Fügen Sie jede weitere von der Installation verwendete Values-Datei hinzu, etwa die
optionale Values-Datei für MCP-Konnektoren. --reset-then-reuse-values übernimmt
die Image-Standards von basebox 1.8.8 und behält
bestehende Installations-Overrides bei.
basebox 1.8.6 ergänzt die AISRV-Datenbankmigration V32. Eine Rückkehr zu einer
AISRV-Version älter als 1.8.6 erfordert die Wiederherstellung des passenden
AISRV-Datenbank-Backups von vor dem Upgrade zusammen mit dem früheren Helm-Release.
Troubleshooting
404auf dem öffentlichen Hostname:- DNS und Ingress-Host auf Übereinstimmung prüfen
- Zertifikat wird nicht ausgestellt:
ClusterIssuer, ACME-Erreichbarkeit und Ingress-Adresse prüfen- Fehler beim Login-Callback:
- bestätigen, dass der externe Hostname in
global.domainderselbe ist - GraphQL liefert HTML statt JSON:
- Ingress-Regeln und Host-Zuordnung prüfen
- Image-Pulls auf Cluster-Knoten scheitern:
- Registry-Pull-Zugang aus der Runtime prüfen, nicht nur von Ihrer Workstation