${OVERLEAF_SITE_URL}/git/<project id>; o pod do Ayakaleaf Pro encaminha essas requisições ao git-bridge, e o git-bridge chama de volta o pod para obter o conteúdo e o histórico do projeto. Ativá-la também habilita o servidor MCP e é um requisito das sincronizações com GitHub, GitLab, Gitea e Dropbox.
Esta página estende a instalação com uma réplica de Usando o Kubernetes. Para várias réplicas, consulte Escalonamento horizontal.
1
Implante o git-bridge
45-git-bridge.yaml
10.96.100.80 deve ser um endereço livre dentro do CIDR de serviços do seu cluster (o padrão do kubeadm é 10.96.0.0/12).2
Aponte o Ayakaleaf Pro para ele
Adicione a
30-config.yaml:30-config.yaml (additions)
3
Clone um projeto
Crie um token de autenticação Git em Account Settings e, em seguida:Use
git como nome de usuário e o token como senha.Por que o manifesto é assim
- Um ClusterIP fixo como
GIT_BRIDGE_HOST. O nginx dentro da imagem do Ayakaleaf Pro encaminha/git/com um resolver definido como127.0.0.11, o DNS embutido do Docker. O Kubernetes não tem um servidor DNS nesse endereço, então um nome de host comogit-bridgefalha com502e “git-bridge could not be resolved” em/var/log/nginx/error.log. Um endereço IP não precisa de resolução. overleaf-internal. O git-bridge precisa das portas3000(API do web) e3100(histórico) do pod do Ayakaleaf Pro. Um Service ClusterIP separado as mantém dentro do cluster; adicioná-las ao Service NodePort as publicaria em todos os nós.enableServiceLinks: false. O Servicegit-bridgefaria o Kubernetes adicionarGIT_BRIDGE_PORT=tcp://10.96.100.80:8000ao pod; o git-bridge lêGIT_BRIDGE_PORTcomo sua porta de escuta e para comMalformedJsonException ... path $.port.- Uma réplica com seu próprio volume. O git-bridge mantém em disco um repositório git por projeto clonado e não deve ser executado duas vezes. Faça backup do volume dele.
Testado no Kubernetes
No Kubernetes 1.37 com três réplicas atrás do HAProxy e o git-bridge ao lado deoverleaf-0, nossos testes de ponta a ponta para a integração com Git passam (19 casos), também com o git-bridge movido para a porta 8001, de modo que o nginx precise usar GIT_BRIDGE_HOST e GIT_BRIDGE_PORT: tokens Git nas configurações da conta, o comando de clone no editor, clone, push e pull, arquivos binários e pastas, renomeações e exclusões, pushes desatualizados recusados, acesso por função (editores convidados e editores via link podem fazer push, leitores e revisores podem apenas clonar, usuários sem acesso são recusados), tokens incorretos e excluídos recusados, rotas internas do git-bridge mantidas atrás do nginx e contas suspensas. Os próprios tokens de autenticação Git (geração, listagem, limite por usuário, exclusão, expiração, a verificação que o git-bridge solicita ao web e tokens de contas suspensas e excluídas) passam em uma réplica (16 casos).
Q&A
git clone retorna 502.
git clone retorna 502.
Resposta: Verifique
GIT_BRIDGE_HOST: ele deve ser o endereço IP do Service do git-bridge, não o nome dele; veja acima. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log mostra o motivo.
