- MongoDB 8 als Replikatset (es verwendet Transaktionen). Drei auf drei Knoten verteilte Mitglieder überstehen den Ausfall eines Knotens; ein einzelnes Mitglied funktioniert ebenfalls.
- Redis 7, einen Server mit AOF-Persistenz. Redis enthält die noch nicht in MongoDB geschriebenen Bearbeitungen, die Sitzungen und die Nachrichten zwischen den Overleaf-Diensten. Overleaf verbindet sich mit einem einzelnen Redis-Server: Sentinel und Redis Cluster werden nicht unterstützt.
Sie können stattdessen verwaltete Dienste verwenden, etwa MongoDB Atlas oder das Redis Ihrer Cloud. Überspringen Sie diese Seite und setzen Sie
OVERLEAF_MONGO_URL und OVERLEAF_REDIS_HOST in Schritt 4 auf diese Dienste.1
MongoDB
10-mongo.yaml
PRIMARY und die anderen SECONDARY sein. Der Job versucht es erneut, bis alle Mitglieder antworten, daher sind einige fehlgeschlagene Job-Pods normal.- Der Headless Service benötigt
publishNotReadyAddresses: true: Die Mitglieder müssen sich gegenseitig über ihren Namen finden, bevor das Replikatset existiert. - Die Mitglieder werden mit ihren stabilen Namen (
mongo-0.mongo.overleaf.svc.cluster.local) hinzugefügt, nie mit Pod-IPs, die sich bei jedem Neustart ändern. - Für ein einzelnes Mitglied setzen Sie
replicas: 1und behalten im Job nurmongo-0.
2
Redis
20-redis.yaml
Q&A
MongoDB 8 stürzt auf einem aktuellen Kernel beim Start ab. Warum?
MongoDB 8 stürzt auf einem aktuellen Kernel beim Start ab. Warum?
Antwort: MongoDB 8 schlägt unter Linux-Kernel 6.19 und neuer fehl (SERVER-121912). Kommentieren Sie die Umgebungsvariable
GLIBC_TUNABLES in 10-mongo.yaml ein.Wie viel Arbeitsspeicher benötigt MongoDB?
Wie viel Arbeitsspeicher benötigt MongoDB?
Antwort: Standardmäßig verwendet MongoDB die Hälfte des Knotenspeichers abzüglich 1 GB für seinen Cache, und es sieht den Speicher des Knotens, nicht das Limit des Pods. Setzen Sie
--wiredTigerCacheSizeGB passend zu Ihren Knoten; mit 0.25 blieb jedes Mitglied auf unseren Testknoten mit 4 GB bei etwa 200 bis 260 MiB.
