${OVERLEAF_SITE_URL}/git/<project id>; de Ayakaleaf Pro-pod stuurt die verzoeken door naar git-bridge, en git-bridge roept de pod terug aan voor projectinhoud en geschiedenis. Inschakelen activeert ook de MCP-server en is vereist voor GitHub-, GitLab-, Gitea- en Dropbox-synchronisatie.
Deze pagina breidt de installatie met één replica uit Kubernetes gebruiken uit. Zie voor meerdere replica’s Horizontaal schalen.
1
Implementeer git-bridge
45-git-bridge.yaml
10.96.100.80 moet een vrij adres zijn binnen de service-CIDR van je cluster (de standaard van kubeadm is 10.96.0.0/12).2
Laat Ayakaleaf Pro ernaar verwijzen
Voeg toe aan
30-config.yaml:30-config.yaml (additions)
3
Kloon een project
Maak een Git-authenticatietoken aan in Account Settings en voer daarna uit:Gebruik
git als gebruikersnaam en het token als wachtwoord.Waarom het manifest er zo uitziet
- Een vaste ClusterIP als
GIT_BRIDGE_HOST. De nginx in de Ayakaleaf Pro-image stuurt/git/door met een resolver die is ingesteld op127.0.0.11, de ingebouwde DNS van Docker. Kubernetes heeft daar geen DNS-server, dus een hostnaam zoalsgit-bridgemislukt met502en “git-bridge could not be resolved” in/var/log/nginx/error.log. Een IP-adres hoeft niet te worden opgezocht. overleaf-internal. git-bridge heeft de poorten3000(web-API) en3100(geschiedenis) van de Ayakaleaf Pro-pod nodig. Een aparte ClusterIP-Service houdt ze binnen het cluster; als je ze aan de NodePort-Service toevoegt, worden ze op elke node gepubliceerd.enableServiceLinks: false. De Servicegit-bridgezou KubernetesGIT_BRIDGE_PORT=tcp://10.96.100.80:8000aan de pod laten toevoegen; git-bridge leestGIT_BRIDGE_PORTals zijn luisterpoort en stopt metMalformedJsonException ... path $.port.- Eén replica met een eigen volume. git-bridge bewaart per gekloond project een git-repository op schijf en mag niet twee keer draaien. Maak een back-up van het volume.
Getest op Kubernetes
Op Kubernetes 1.37 met drie replica’s achter HAProxy en git-bridge als sibling vanoverleaf-0 slagen onze end-to-endtests voor de Git-integratie (19 gevallen), ook met git-bridge verplaatst naar poort 8001 zodat nginx GIT_BRIDGE_HOST en GIT_BRIDGE_PORT moet gebruiken: Git-tokens in de accountinstellingen, de kloonopdracht in de editor, klonen, pushen en pullen, binaire bestanden en mappen, hernoemingen en verwijderingen, verouderde pushes geweigerd, toegang per rol (uitgenodigde editors en editors via de link mogen pushen, kijkers en reviewers mogen alleen klonen, gebruikers zonder toegang worden geweigerd), verkeerde en verwijderde tokens geweigerd, de interne routes van git-bridge afgeschermd achter nginx, en geschorste accounts. De Git-authenticatietokens zelf (genereren, weergeven, de limiet per gebruiker, verwijderen, verlopen, de controle die git-bridge aan web vraagt, en tokens van geschorste en verwijderde accounts) slagen op één replica (16 gevallen).
Vragen en antwoorden
git clone geeft 502 terug.
git clone geeft 502 terug.
Antwoord: Controleer
GIT_BRIDGE_HOST: dit moet het IP-adres van de git-bridge-Service zijn, niet de naam ervan, zie hierboven. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log toont de reden.
