${OVERLEAF_SITE_URL}/git/<project id>; il pod di Ayakaleaf Pro inoltra queste richieste a git-bridge, e git-bridge richiama il pod per ottenere il contenuto e la cronologia dei progetti. Attivarla abilita anche il server MCP ed è necessaria per la sincronizzazione con GitHub, GitLab, Gitea e Dropbox.
Questa pagina estende l’installazione a replica singola di Usare Kubernetes. Per più repliche, vedi Scalabilità orizzontale.
1
Esegui il deploy di git-bridge
45-git-bridge.yaml
10.96.100.80 deve essere un indirizzo libero all’interno del CIDR dei servizi del tuo cluster (il valore predefinito di kubeadm è 10.96.0.0/12).2
Fai puntare Ayakaleaf Pro a git-bridge
Aggiungi a
30-config.yaml:30-config.yaml (additions)
3
Clona un progetto
Crea un token di autenticazione Git in Account Settings, quindi:Usa
git come nome utente e il token come password.Perché il manifest è fatto così
- Un ClusterIP fisso come
GIT_BRIDGE_HOST. L’nginx all’interno dell’immagine di Ayakaleaf Pro inoltra/git/con un resolver impostato su127.0.0.11, il DNS integrato di Docker. Kubernetes non ha un server DNS a quell’indirizzo, quindi un nome host comegit-bridgefallisce con502e “git-bridge could not be resolved” in/var/log/nginx/error.log. Un indirizzo IP non richiede alcuna risoluzione. overleaf-internal. git-bridge ha bisogno delle porte3000(API di web) e3100(cronologia) del pod di Ayakaleaf Pro. Un Service ClusterIP separato le mantiene all’interno del cluster; aggiungerle al Service NodePort le pubblicherebbe su ogni nodo.enableServiceLinks: false. Il Servicegit-bridgefarebbe aggiungere a KubernetesGIT_BRIDGE_PORT=tcp://10.96.100.80:8000al pod; git-bridge leggeGIT_BRIDGE_PORTcome porta di ascolto e si arresta conMalformedJsonException ... path $.port.- Una replica con un volume dedicato. git-bridge conserva su disco un repository git per ogni progetto clonato e non deve essere eseguito due volte. Esegui il backup del suo volume.
Testato su Kubernetes
Su Kubernetes 1.37 con tre repliche dietro HAProxy e git-bridge come sibling dioverleaf-0, i nostri test end-to-end per l’integrazione Git vengono superati (19 casi), anche con git-bridge spostato sulla porta 8001 in modo che nginx debba usare GIT_BRIDGE_HOST e GIT_BRIDGE_PORT: token Git nelle impostazioni dell’account, il comando di clonazione nell’editor, clone, push e pull, file binari e cartelle, rinominazioni ed eliminazioni, push non aggiornati rifiutati, accesso per ruolo (gli editor invitati e gli editor tramite link possono eseguire il push, i visualizzatori e i revisori possono solo clonare, gli utenti senza accesso vengono rifiutati), token errati ed eliminati rifiutati, le route interne di git-bridge mantenute dietro nginx, e account sospesi. I token di autenticazione Git stessi (generazione, elenco, limite per utente, eliminazione, scadenza, la verifica che git-bridge richiede a web, e i token di account sospesi ed eliminati) vengono superati su una replica (16 casi).
Domande e risposte
git clone restituisce 502.
git clone restituisce 502.
Risposta: Controlla
GIT_BRIDGE_HOST: deve essere l’indirizzo IP del Service git-bridge, non il suo nome, vedi sopra. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log mostra il motivo.
