- MongoDB 8 como um replica set (ele usa transações). Três membros distribuídos em três nós sobrevivem à perda de um nó; um único membro também funciona.
- Redis 7, um servidor com persistência AOF. O Redis guarda as edições que ainda não foram gravadas no MongoDB, as sessões e as mensagens entre os serviços do Overleaf. O Overleaf se conecta a um único servidor Redis: Sentinel e Redis Cluster não são suportados.
Você pode usar serviços gerenciados em vez disso, como o MongoDB Atlas ou o Redis da sua nuvem. Pule esta página e defina
OVERLEAF_MONGO_URL e OVERLEAF_REDIS_HOST para eles na etapa 4.1
MongoDB
10-mongo.yaml
PRIMARY e os outros como SECONDARY. O Job tenta novamente até que todos os membros respondam, então alguns pods do Job com falha são normais.- O Service headless precisa de
publishNotReadyAddresses: true: os membros precisam se encontrar pelo nome antes que o replica set exista. - Os membros são adicionados com seus nomes estáveis (
mongo-0.mongo.overleaf.svc.cluster.local), nunca com IPs de pods, que mudam a cada reinicialização. - Para um único membro, defina
replicas: 1e mantenha apenasmongo-0no Job.
2
Redis
20-redis.yaml
Q&A
O MongoDB 8 trava na inicialização em um kernel recente. Por quê?
O MongoDB 8 trava na inicialização em um kernel recente. Por quê?
Resposta: O MongoDB 8 falha no kernel Linux 6.19 e posteriores (SERVER-121912). Descomente a variável de ambiente
GLIBC_TUNABLES em 10-mongo.yaml.Quanta memória o MongoDB precisa?
Quanta memória o MongoDB precisa?
Resposta: Por padrão, o MongoDB usa para seu cache metade da memória do nó menos 1 GB, e ele enxerga a memória do nó, não o limite do pod. Defina
--wiredTigerCacheSizeGB de acordo com os seus nós; 0.25 manteve cada membro em cerca de 200 a 260 MiB nos nossos nós de teste de 4 GB.
