redis aus 3. MongoDB und Redis bereitstellen; für das Toolkit siehe Redis.
Passwortauthentifizierung
1
Das Passwort speichern
2
Redis damit starten
Geben Sie dem Container in Kubernetes ersetzt
20-redis.yaml das Passwort und übergeben Sie es an redis-server:20-redis.yaml (changes)
$(REDIS_PASS) durch den Wert aus dem Secret. Die Readiness-Probe (tcpSocket) muss nicht geändert werden.3
Anwenden und neu starten
Stoppen Sie zuerst Ayakaleaf Pro, damit zwischen den beiden Neustarts keine Bearbeitung verloren geht:
OVERLEAF_REDIS_HOST (und REDIS_HOST) in der ConfigMap auf dessen Adresse, das Passwort wie oben und OVERLEAF_REDIS_TLS: "true", falls es TLS erfordert.
AOF-Persistenz
Die Installation startet Redis bereits mit--appendonly yes, dem Gegenstück zu REDIS_AOF_PERSISTENCE=true im Toolkit, und bewahrt seine Daten auf dem Volume data-redis-0 auf. Um ein bestehendes Redis ohne AOF umzustellen, folgen Sie den Schritten auf der Toolkit-Seite mit kubectl -n overleaf exec -it redis-0 -- redis-cli statt docker exec und fügen Sie anschließend --appendonly yes zu den args hinzu.
Mehrere Replikate
Alle Replikate müssen dasselbe Redis verwenden: Es enthält die Sitzungen, die noch nicht in MongoDB gespeicherten Bearbeitungen und die Sperren, die verhindern, dass zwei Replikate gleichzeitig dasselbe Projekt verarbeiten.Auf Kubernetes getestet
Auf Kubernetes 1.37 mit einem Replikat lehnte Redis, gestartet mit--requirepass $(REDIS_PASS) aus dem Secret redis-auth wie oben, redis-cli ohne Passwort ab (NOAUTH), und mit OVERLEAF_REDIS_PASS und REDIS_PASSWORD in overleaf-secrets bestanden unsere End-to-End-Tests für das Launchpad (13 Fälle) sowie für die Bearbeitung mit Änderungsverfolgung, Kommentaren und anonymer Freigabe (22 Fälle), die web, real-time, document-updater und project-history durchlaufen; kein Dienst protokollierte einen Redis-Authentifizierungsfehler. Alle anderen Kubernetes-Tests auf diesen Seiten liefen gegen das Redis-StatefulSet aus der Installation, mit AOF-Persistenz und ohne Passwort.
