${OVERLEAF_SITE_URL}/git/<project id>; pod Ayakaleaf Pro meneruskan permintaan tersebut ke git-bridge, dan git-bridge memanggil kembali pod untuk konten dan riwayat proyek. Mengaktifkannya juga mengaktifkan MCP server dan diperlukan oleh Sinkronisasi GitHub, GitLab, Gitea, dan Dropbox.
Halaman ini memperluas instalasi satu replika dari Menggunakan Kubernetes. Untuk beberapa replika, lihat Penskalaan horizontal.
1
Deploy git-bridge
45-git-bridge.yaml
10.96.100.80 harus berupa alamat yang belum terpakai di dalam service CIDR kluster Anda (default kubeadm adalah 10.96.0.0/12).2
Arahkan Ayakaleaf Pro ke git-bridge
Tambahkan ke
30-config.yaml:30-config.yaml (additions)
3
Clone sebuah proyek
Buat token autentikasi Git di Account Settings, lalu:Gunakan
git sebagai nama pengguna dan token tersebut sebagai kata sandi.Mengapa manifest terlihat seperti ini
- ClusterIP tetap sebagai
GIT_BRIDGE_HOST. nginx di dalam image Ayakaleaf Pro meneruskan/git/dengan resolver yang diatur ke127.0.0.11, DNS bawaan Docker. Kubernetes tidak memiliki server DNS di alamat tersebut, sehingga nama host sepertigit-bridgegagal dengan502dan “git-bridge could not be resolved” di/var/log/nginx/error.log. Alamat IP tidak memerlukan lookup. overleaf-internal. git-bridge memerlukan port3000(API web) dan3100(riwayat) dari pod Ayakaleaf Pro. Service ClusterIP terpisah menjaga port tersebut tetap di dalam kluster; menambahkannya ke Service NodePort akan memublikasikannya di setiap node.enableServiceLinks: false. Servicegit-bridgeakan membuat Kubernetes menambahkanGIT_BRIDGE_PORT=tcp://10.96.100.80:8000ke pod; git-bridge membacaGIT_BRIDGE_PORTsebagai port listening-nya dan berhenti denganMalformedJsonException ... path $.port.- Satu replika dengan volume sendiri. git-bridge menyimpan satu repositori git per proyek yang di-clone di disk dan tidak boleh berjalan dua kali. Cadangkan volumenya.
Diuji di Kubernetes
Di Kubernetes 1.37 dengan tiga replika di belakang HAProxy dan git-bridge sebagai sibling darioverleaf-0, pengujian end-to-end kami untuk Integrasi Git lulus (19 kasus), juga dengan git-bridge dipindahkan ke port 8001 sehingga nginx harus menggunakan GIT_BRIDGE_HOST dan GIT_BRIDGE_PORT: token Git di pengaturan akun, perintah clone di editor, clone, push dan pull, file biner dan folder, penggantian nama dan penghapusan, penolakan push yang sudah usang, akses berdasarkan peran (editor yang diundang dan editor melalui tautan boleh melakukan push, viewer dan reviewer hanya boleh melakukan clone, pengguna tanpa akses ditolak), penolakan token yang salah dan yang sudah dihapus, rute internal git-bridge yang tetap berada di balik nginx, dan akun yang ditangguhkan. Token autentikasi Git itu sendiri (pembuatan, daftar, batas per pengguna, penghapusan, kedaluwarsa, pemeriksaan yang diminta git-bridge ke web, serta token dari akun yang ditangguhkan dan dihapus) lulus pada satu replika (16 kasus).
Tanya Jawab
git clone mengembalikan 502.
git clone mengembalikan 502.
Jawaban: Periksa
GIT_BRIDGE_HOST: nilainya harus berupa alamat IP dari Service git-bridge, bukan namanya, lihat di atas. kubectl -n overleaf exec deploy/overleaf -- tail /var/log/nginx/error.log menunjukkan penyebabnya.
