Auf einen Blick
Voraussetzungen
Die vollständige Liste der Ports, ausgehenden Verbindungen und Images steht unter Systemvoraussetzungen. Gib diese Seite an das Team weiter, das deinen Cluster betreibt.
Was im Cluster läuft
Das Chart erstellt sechs Workloads mit je einer Instanz und zwei einmalige Jobs.
Der Scheduler reserviert 512 MB für die App, 1 GB für die Datenbank und 256 MB für die Sandbox. Das Chart setzt keine CPU-Requests. Verlangt ein Resource Quota oder ein Limit Range in deinem Namespace welche, trägst du sie in deiner Werte-Datei ein, siehe Ressourcen anpassen.
Mit den Standardeinstellungen laufen die App und ihre Volumes als einzelne Instanz. Für mehr als eine Instanz siehe Skalieren.
Installieren
Phase 1 von 3. Weiter: Installation prüfen.1
Release-Paket entpacken
Lade
collabase-deployment-<version>.zip von der Download-Seite herunter und entpacke es. Das Chart liegt in deployment/helm.2
Werte-Datei schreiben
Halte deine Einstellungen in einer Datei fest, nicht in einem langen Befehl. Erstelle
collabase-values.yaml:collabase-values.yaml
app.url ist die öffentliche Adresse, die die Leute öffnen. Sie muss zu ingress.host passen.3
Chart installieren
4
Ersten Start abwarten
Die Datenbank wird von einem einmaligen Job vorbereitet. Bis er fertig ist, kann die Anwendung mit Fehlern antworten.
5
Administrator-Passwort auslesen
Installation prüfen
Phase 2 von 3. Zurück: Installieren. Weiter: Lizenz aktivieren und Personen hinzufügen.Kontrollpunkt. Alle Pods sind Ist etwas nicht bereit, siehe Fehlersuche.
Running und bereit, beide Jobs sind Complete, und die Adresse antwortet mit "status":"ok".Zertifikate
Der Ingress terminiert HTTPS. Wähle einen Weg zum Zertifikat.Eigenes Zertifikat verwenden
Anderen Ingress-Controller verwenden
Das Chart setzt nginx-Annotationen und nutzt standardmässig die Klassenginx. Für einen anderen Controller setzt du ingress.className und prüfst diese drei Punkte:
- Upload-Grösse. Erlaube Request-Bodies von mindestens 32 MB. Das Chart setzt die nginx-Annotation
proxy-body-sizeausingress.maxBodySize. Andere Controller brauchen dasselbe Limit auf ihre Weise, überingress.annotations. - WebSockets. Die Live-Zusammenarbeit verbindet sich mit
/collabauf derselben Adresse. Der Controller muss WebSocket-Upgrades durchreichen. - Limit für Anmeldungen. Das Chart ergänzt einen zweiten Ingress, der Anmeldeversuche mit einer nginx-Annotation begrenzt. Setze
ingress.authRateLimit.enabled: falsefür einen Controller, der sie ignoriert, und begrenze/api/auth/callbackin deinem eigenen Gateway.
ingress.enabled: false. Leite / an den Service collabase-app auf Port 3000 und /collab an den Service collabase-collab auf Port 1234. Die Servicenamen beginnen mit deinem Release-Namen.
Eigene Image-Registry nutzen
Viele Cluster können nicht vonghcr.io laden. Kopiere die Images in deine Registry und richte das Chart darauf aus.
1
Images kopieren
Kopiere diese Images in der Version deines Release-Pakets. Der Tag ist die Versionsnummer ohne führendes
v.2
Repositories setzen
collabase-values.yaml
3
Dem Cluster das Laden erlauben
Verlangt deine Registry eine Anmeldung, erstelle ein Pull-Secret und hänge es an den Default-Service-Account des Namespace. Das Chart hat keine Einstellung für Pull-Secrets.
Eigene Datenbank verwenden
Nutze eine verwaltete PostgreSQL, indem du die mitgelieferte ausschaltest:collabase-values.yaml
vector enthalten. Der Migrations-Job führt CREATE EXTENSION IF NOT EXISTS vector aus, wofür ein privilegierter Benutzer nötig ist. Schränkt dein Anbieter das ein, aktiviere die Erweiterung einmalig in der Konsole des Anbieters. Siehe Systemvoraussetzungen.
Der Connection Pool wird für dich dimensioniert. Jeder App-Prozess erhält 80 % von max_connections, geteilt durch die Zahl der Prozesse, höchstens 100 pro Prozess. Überschreibe das mit database.connectionLimit.
Secrets verwalten
Bei der ersten Installation erzeugt das Chart alle Passwörter und Schlüssel und legt sie im Secretcollabase ab. Spätere Upgrades behalten die bestehenden Werte.
Werkzeuge, die das Chart ohne Verbindung zum Cluster rendern, etwa helm template in einer GitOps-Pipeline, können das bestehende Secret nicht lesen. Sie würden bei jedem Rendern neue Schlüssel erzeugen. Lege das Secret in diesem Fall selbst an und verweise darauf:
collabase-values.yaml
postgresPassword, nextauthSecret, adminPassword, pdfPrintToken, automationEncryptionKey, encryptionKey, mailEncryptionKey, databaseUrl, collabSharedSecret, sandboxSharedSecret und engineTokenSecret. Bei S3-Speicher kommen s3AccessKeyId und s3SecretAccessKey dazu. Erzeuge jeden Wert als Zufallszeichenfolge von mindestens 32 Zeichen.
Ziehst du eine bestehende Docker-Installation auf Kubernetes um, kopierst du ENCRYPTION_KEY, MAIL_ENCRYPTION_KEY, AUTOMATION_ENCRYPTION_KEY, NEXTAUTH_SECRET, PDF_PRINT_TOKEN und POSTGRES_PASSWORD bei der ersten Installation aus der Datei .env in den Abschnitt secrets deiner Werte-Datei.
Ressourcen anpassen
Jeder Workload bezieht seine Limits aus der Werte-Datei. Erhöhe sie am selben Ort:collabase-values.yaml
resources gibt es für documentProcessor, collab, sandbox und postgresql. Wie du die gesamte Installation für dein Team dimensionierst, steht unter Dimensionierung und Skalierung. Die Datenbankeinstellungen unter postgresql.tuning gehen von einem Node mit mindestens 8 GB RAM aus. Senke shared_buffers und effective_cache_size auf einem kleineren.
Plug-Sandbox
Die Sandbox führt Automation-Plugs von Dritten isoliert aus. Sie startet bei jeder Installation. Für die vollständige Isolation braucht sie ein Sicherheitsprofil auf dem Node. Ohne das Profil startet sie trotzdem, meldet bei ihrer Health-Prüfungdegraded und führt keine Plugs von Dritten aus. Alles andere funktioniert wie gewohnt.
Localhost für AppArmor braucht Kubernetes 1.30 oder neuer. Network Policies halten die Sandbox von Datenbank und Queue fern. Dein Cluster muss sie durchsetzen.
Pod Security
Viele Plattformen erzwingen die Kubernetes Pod Security Standards auf einem Namespace oder betreiben eine Policy-Engine wie Kyverno oder OPA Gatekeeper. Was das Chart unter den einzelnen Stufen tut, ergibt sich aus seinen Pod-Definitionen. Auf einem Cluster, der sie durchsetzt, ist es nicht bestätigt.
Verlangt deine Richtlinie
restricted, betreibe Collabase in einem Namespace auf baseline, oder bitte dein Plattformteam um eine Ausnahme für diesen Namespace. Sag uns Bescheid, falls das nicht möglich ist.
Eine Policy-Engine kann ausserdem Resource Requests und Limits, Images aus freigegebenen Registries oder festgelegte Versionen verlangen. Das Chart legt jedes Image standardmässig auf das Release fest und setzt Speicher-Requests. CPU-Requests setzt es nur, wenn du sie ergänzt, siehe Ressourcen anpassen.
Netzwerkverbindungen
Das Chart liefert eine einzige Network Policy mit, für die Plug-Sandbox. Verweigert dein Cluster Verkehr standardmässig, erlaube diese Verbindungen. Alle Ports sind TCP.
Die App-Pods und der Worker-Pod brauchen dieselben Verbindungen. Die Sandbox darf das Internet erreichen, ausser privaten Adressbereichen, sowie DNS. Ergänze dein Pod-Netz in
sandbox.networkPolicy.internetExceptCidrs, falls es nicht in einem privaten Bereich liegt.
Scheduling und Plattformeinstellungen
Diese Version des Charts hat keine Einstellungen fürnodeSelector, tolerations, affinity, Topology Spread, Priority Class, Pod-Annotationen, zusätzliche Umgebungsvariablen oder Pull-Secrets. Nutze stattdessen diese Wege:
- Pull-Secrets: hänge das Secret an den Default-Service-Account des Namespace, siehe Eigene Image-Registry nutzen.
- Scheduling und Annotationen: lass Helm die gerenderten Manifeste mit
helm install --post-rendereran einen Post-Renderer wie Kustomize übergeben. Der Post-Renderer ergänzt die Felder, die du an den Pods brauchst. - Node-Pools: weist deine Plattform Nodes pro Namespace zu, setze das am Namespace.
Überwachung
Collabase hat keinen Metrics-Endpunkt für Prometheus. Überwache es mit Probes, Cluster-Metriken und der Health-Adresse.
Richte Alarme ein für Pods, die neu starten oder nicht bereit bleiben, für fehlgeschlagene Jobs, für volllaufende Volumes, für ein Zertifikat kurz vor dem Ablauf und für
degraded in der Health-Antwort. Siehe Health-Check.
Verfügbarkeit
Mit den Standardeinstellungen läuft jeder Teil einmal. Ein Neustart von App, Datenbank oder Queue unterbricht den Dienst für die Zeit, die der Pod zum Starten braucht, und nichts springt auf eine andere Kopie um.Skalieren
Mehr als eine App-Instanz zu betreiben, braucht zwei Dinge. Das Chart verweigert das Rendern ohne sie.- S3-Dateispeicher. Mit Cluster-Volumes sieht eine zweite Instanz die Dateien der ersten nicht. Richte zuerst einen privaten Bucket ein, siehe Dateispeicher.
- Ein eigener Worker. Hintergrundjobs wandern in eine eigene einzelne Instanz, damit sie genau einmal laufen.
collabase-values.yaml
Aktualisieren
Entpacke das neue Release-Paket und führe das Upgrade mit derselben Werte-Datei aus:Backup und Wiederherstellung
Sichere drei Dinge: die Datenbank, die hochgeladenen Dateien und das Secretcollabase. Das Chart kann zusätzlich vor jedem Upgrade einen Datenbank-Dump erstellen:
collabase-values.yaml
helm upgrade aus. Spiele nicht in eine neue helm install zurück. Eine frische Installation führt ihr Ersteinrichtung aus und würde über deine wiederhergestellten Daten schreiben.
Collabase entfernen
kubectl delete pvc, wenn die Daten endgültig weg sein sollen. Das lässt sich nicht rückgängig machen.
Kubernetes-Versionen
Das Chart ist für Kubernetes 1.26 oder neuer geschrieben. Eine Liste der Versionen, gegen die wir jedes Release getestet haben, ist noch nicht veröffentlicht. Frag uns nach dem aktuellen Stand, bevor du planst.
Helm 3.10 oder neuer ist erforderlich. Eine neuere Minor-Version von Kubernetes braucht keine Änderung am Chart, solange die genutzten APIs verfügbar bleiben:
apps/v1, batch/v1 und networking.k8s.io/v1.
OpenShift und andere Distributionen
Verwaltete Kubernetes-Dienste und hybride Plattformen auf Basis von Upstream-Kubernetes brauchen nichts über die Voraussetzungen hinaus. Das Chart wurde auf OpenShift nicht getestet. In diesen Punkten unterscheidet es sich dort. Sag uns Bescheid, wenn du es einsetzt, dann prüfen wir die Installation gemeinsam mit dir.Fehlersuche
Sammle
kubectl get pods -n collabase und das Log des fehlgeschlagenen Pods oder Jobs, bevor du den Support unter collabase.featurebase.app kontaktierst.
Nächste Schritte
Phase 3 von 3. Zurück: Installation prüfen.Lizenz aktivieren
Die Enterprise-Funktionen freischalten.
Erster Start
Dein Team einladen und einen Space erstellen.
Updates
Planen, wie du Collabase aktuell hältst.