${OVERLEAF_SITE_URL}/git/<project id>; el pod de Ayakaleaf Pro reenvía esas peticiones a git-bridge, y git-bridge vuelve a llamar al pod para obtener el contenido y el historial del proyecto. Al activarla también se habilita el servidor MCP, y es necesaria para la sincronización con GitHub, GitLab, Gitea y Dropbox.
Esta página amplía la instalación con una sola réplica de Usar Kubernetes. Para varias réplicas, consulta Escalado horizontal.
1
Despliega git-bridge
45-git-bridge.yaml
10.96.100.80 debe ser una dirección libre dentro del CIDR de servicios de tu clúster (el valor por defecto de kubeadm es 10.96.0.0/12).2
Haz que Ayakaleaf Pro apunte a él
Añade a
30-config.yaml:30-config.yaml (additions)
3
Clona un proyecto
Crea un token de autenticación de Git en Account Settings y, después:Usa
git como nombre de usuario y el token como contraseña.Por qué el manifiesto es así
- Una ClusterIP fija como
GIT_BRIDGE_HOST. El nginx de la imagen de Ayakaleaf Pro reenvía/git/con un resolver configurado en127.0.0.11, el DNS integrado de Docker. Kubernetes no tiene ningún servidor DNS ahí, así que un nombre de host comogit-bridgefalla con502y “git-bridge could not be resolved” en/var/log/nginx/error.log. Una dirección IP no necesita resolución. overleaf-internal. git-bridge necesita los puertos3000(API de web) y3100(historial) del pod de Ayakaleaf Pro. Un Service ClusterIP independiente los mantiene dentro del clúster; añadirlos al Service NodePort los publicaría en todos los nodos.enableServiceLinks: false. El Servicegit-bridgeharía que Kubernetes añadieraGIT_BRIDGE_PORT=tcp://10.96.100.80:8000al pod; git-bridge leeGIT_BRIDGE_PORTcomo su puerto de escucha y se detiene conMalformedJsonException ... path $.port.- Una réplica con su propio volumen. git-bridge guarda en disco un repositorio git por cada proyecto clonado y no debe ejecutarse dos veces. Haz copias de seguridad de su volumen.
Probado en Kubernetes
En Kubernetes 1.37 con tres réplicas detrás de HAProxy y git-bridge como contenedor hermano deoverleaf-0, nuestras pruebas de extremo a extremo para la integración con Git se superan (19 casos), también con git-bridge movido al puerto 8001 para que nginx tenga que usar GIT_BRIDGE_HOST y GIT_BRIDGE_PORT: los tokens de Git en la configuración de la cuenta, el comando de clonación en el editor, clone, push y pull, archivos binarios y carpetas, cambios de nombre y eliminaciones, el rechazo de pushes desactualizados, el acceso por rol (los editores invitados y los editores mediante enlace pueden hacer push, los lectores y revisores solo pueden clonar, los usuarios sin acceso son rechazados), el rechazo de tokens incorrectos y eliminados, las rutas internas de git-bridge protegidas detrás de nginx, y las cuentas suspendidas. Los propios tokens de autenticación de Git (generación, listado, el límite por usuario, eliminación, caducidad, la comprobación que git-bridge solicita a web, y los tokens de cuentas suspendidas y eliminadas) se superan en una réplica (16 casos).
Preguntas y respuestas
git clone devuelve 502.
git clone devuelve 502.
Respuesta: Comprueba
GIT_BRIDGE_HOST: debe ser la dirección IP del Service de git-bridge, no su nombre; consulta más arriba. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log muestra el motivo.
