Faça um backup consistente antes de cada atualização, com o Ayakaleaf Pro parado. Leia as notas de versão para conhecer as etapas da versão para a qual você está atualizando.
sudo docker pull qualquer imagem do TeX Live listada pela nova versão ou pela sua nova configuração.
- Uma réplica
- Várias réplicas
1
Pare o Ayakaleaf Pro
2
Faça backup
O MongoDB, a partir de qualquer membro:O volume de dados, por meio de um pod de curta duração que o monta (ele é alocado no nó do volume):Faça o mesmo com o volume do git-bridge (
data-git-bridge-0) e guarde uma cópia do Secret overleaf-secrets. Se o seu armazenamento oferecer suporte a VolumeSnapshots, um snapshot dos volumes tem o mesmo efeito.3
Altere a versão e inicie
Defina a nova tag em O Deployment usa
40-overleaf.yaml (e em 45-git-bridge.yaml, que precisa usar a mesma tag) e, em seguida:strategy: Recreate, então, mesmo com uma tag alterada, nunca são executadas duas versões ao mesmo tempo.MongoDB e Redis
Atualize-os separadamente do Ayakaleaf Pro. Para o MongoDB, siga Atualizando o MongoDB (uma versão principal por vez,featureCompatibilityVersion após cada etapa); um replica set adota a nova imagem um membro por vez quando você altera a imagem em 10-mongo.yaml, porque o StatefulSet substitui mongo-2, mongo-1 e mongo-0 sucessivamente.
Revertendo
Pare o Ayakaleaf Pro como acima, restaure o MongoDB a partir do arquivo (mongorestore --drop --archive --gzip) e os volumes ou buckets a partir do backup, defina a tag antiga e inicie novamente. De outra forma, as migrações da nova versão não podem ser desfeitas.
Q&A
Uma réplica permanece não pronta, e as outras réplicas nunca iniciam
Uma réplica permanece não pronta, e as outras réplicas nunca iniciam
Resposta: Com Encontramos isso no nosso cluster de teste depois que uma configuração impediu
podManagementPolicy: OrderedReady, overleaf-1 só inicia quando overleaf-0 está pronto, e uma atualização gradual não substitui um pod que nunca ficou pronto. Depois de corrigir a causa, por exemplo uma configuração incorreta no ConfigMap, exclua o pod travado para que o StatefulSet o crie novamente a partir do template atual:overleaf-0 de ficar pronto; excluir o pod permitiu que as três réplicas iniciassem.
