${OVERLEAF_SITE_URL}/git/<project id> üzerinden klonlama ve gönderme (push) yapar; Ayakaleaf Pro pod’u bu istekleri git-bridge’e iletir ve git-bridge proje içeriği ve geçmişi için pod’u geri çağırır. Bunu açmak MCP sunucusunu da etkinleştirir ve GitHub, GitLab, Gitea ve Dropbox Senkronizasyonu için gereklidir.
Bu sayfa, Kubernetes’i Kullanma sayfasındaki tek replikalı kurulumu genişletir. Birden fazla replika için Yatay ölçeklendirme sayfasına bakın.
1
git-bridge'i dağıtın
45-git-bridge.yaml
10.96.100.80, kümenizin hizmet CIDR’ı içinde boş bir adres olmalıdır (kubeadm’in varsayılanı 10.96.0.0/12).2
Ayakaleaf Pro'yu ona yönlendirin
30-config.yaml dosyasına ekleyin:30-config.yaml (additions)
3
Bir projeyi klonlayın
Account Settings içinde bir Git kimlik doğrulama token’ı oluşturun, ardından:Kullanıcı adı olarak
git, parola olarak token’ı kullanın.Manifest neden böyle görünüyor
GIT_BRIDGE_HOSTolarak sabit bir ClusterIP. Ayakaleaf Pro imajındaki nginx,/git/isteklerini Docker’ın yerleşik DNS’i olan127.0.0.11olarak ayarlanmış bir çözümleyiciyle iletir. Kubernetes’te orada bir DNS sunucusu yoktur; bu nedenlegit-bridgegibi bir ana bilgisayar adı502ile başarısız olur ve/var/log/nginx/error.logiçinde “git-bridge could not be resolved” görünür. Bir IP adresi için arama gerekmez.overleaf-internal. git-bridge, Ayakaleaf Pro pod’unun3000(web API’si) ve3100(geçmiş) portlarına ihtiyaç duyar. Ayrı bir ClusterIP Service’i bunları küme içinde tutar; bunları NodePort Service’ine eklemek onları her düğümde yayımlar.enableServiceLinks: false.git-bridgeService’i, Kubernetes’in pod’aGIT_BRIDGE_PORT=tcp://10.96.100.80:8000eklemesine neden olur; git-bridgeGIT_BRIDGE_PORTdeğerini dinleme portu olarak okur veMalformedJsonException ... path $.porthatasıyla durur.- Kendi birimi olan tek bir replika. git-bridge, klonlanan her proje için diskte bir git deposu tutar ve iki kez çalışmamalıdır. Biriminin yedeğini alın.
Kubernetes üzerinde test edildi
HAProxy arkasında üç replikalı ve git-bridge’inoverleaf-0’ın kardeşi olduğu Kubernetes 1.37 üzerinde, Git entegrasyonu için uçtan uca testlerimiz başarılı oldu (19 vaka); git-bridge, nginx’in GIT_BRIDGE_HOST ve GIT_BRIDGE_PORT değerlerini kullanmak zorunda kalması için 8001 portuna taşındığında da: hesap ayarlarındaki Git token’ları, düzenleyicideki klonlama komutu, klonlama, gönderme ve çekme, ikili dosyalar ve klasörler, yeniden adlandırmalar ve silmeler, güncel olmayan gönderimlerin reddedilmesi, role göre erişim (davet edilen düzenleyiciler ve bağlantı üzerinden düzenleyiciler gönderebilir, görüntüleyiciler ve gözden geçirenler yalnızca klonlayabilir, erişimi olmayan kullanıcılar reddedilir), yanlış ve silinmiş token’ların reddedilmesi, git-bridge’in dahili yollarının nginx arkasında tutulması ve askıya alınmış hesaplar. Git kimlik doğrulama token’larının kendileri (oluşturma, listeleme, kullanıcı başına sınır, silme, süre dolumu, git-bridge’in web’den istediği denetim ve askıya alınmış ve silinmiş hesapların token’ları) tek replikada başarılı oldu (16 vaka).
Soru&Cevap
git clone 502 döndürüyor.
git clone 502 döndürüyor.
Cevap:
GIT_BRIDGE_HOST değerini kontrol edin: adı değil, git-bridge Service’inin IP adresi olmalıdır; yukarıya bakın. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log nedeni gösterir.
