Skip to main content
تخزّن خدمة history-v1 ملفات المشاريع وسجلّها، وتخزّن خدمة filestore ملفات القوالب، وكلتاهما داخل كل pod من Ayakaleaf Pro. افتراضيًا تكتبان إلى وحدة تخزين البيانات؛ أما مع S3 فتكتبان إلى حاويات التخزين (buckets). الحاويات والصلاحيات المطلوبة موضّحة في S3.
اختر S3 قبل أن ينشئ المستخدمون مشاريع. أما المثيل الذي يحتفظ بالفعل بالملفات على وحدة التخزين الخاصة به فيحتاج أولًا إلى الترحيل إلى S3.

الإعداد

1

حاويات التخزين والمفاتيح

أنشئ حاويات التخزين الثلاث overleaf-template-files وoverleaf-project-blobs وoverleaf-chunks والمستخدمَين المقيّدَين لدى خدمة S3 الخاصة بك كما هو موضّح في إعداد S3، أو شغّل Garage داخل العنقود كما هو موضّح أدناه. ضع المفاتيح الأربعة في Secret:
2

ConfigMap

30-config.yaml (additions)
3

أضف الـ Secret إلى الـ pod وأعد التشغيل

في الـ Deployment (أو الـ StatefulSet)، أضف الـ Secret بجانب الأخرى:

Garage داخل العنقود

في حال عدم توفّر خدمة S3، فإن Garage خادم S3 صغير يعمل داخل العنقود (cluster). وقد اختُبر إعداد التوسّع الأفقي باستخدامه. تُولّد الأوامر أدناه المفاتيح وتُنشئ الـ Secret المسمّى overleaf-s3 بنفسها، لذا استخدمها بدلًا من أمر الـ Secret في الخطوة 1.
لم يعد MinIO، المستخدم في النموذج الذي يقدّمه Overleaf، ينشر صور حاويات: فقد أُزيلت minio/minio من Docker Hub ومن quay.io.
50-garage.yaml
ولّد الأسرار، وشغّل Garage، ثم أنشئ التخطيط (layout) وحاويات التخزين والمفتاحين المقيّدين. تتكوّن معرّفات مفاتيح Garage من GK متبوعة بـ 24 حرفًا ست عشريًا، والأسرار من 64 حرفًا ست عشريًا:
تطابق هذه الصلاحيات السياسات الواردة في S3. يتحقّق Garage من المنطقة (region): وهي هنا garage، ويجب أن تكون قيمة OVERLEAF_*_S3_REGION هي نفسها. مع Garage، اضبط نقطة النهاية، وPATH_STYLE: "true"، والمنطقة garage لكلتا الخدمتين في الـ ConfigMap، كما في 60-config.yaml من التوسّع الأفقي.

عدة نسخ متماثلة

يجب أن تستخدم كل النسخ المتماثلة (replicas) حاويات التخزين والمفاتيح نفسها. انسخ حاويات التخزين احتياطيًا باستخدام أدوات مزوّد S3 لديك؛ وعندئذٍ لا تحتوي الأقراص الخاصة بالنسخ المتماثلة على أي بيانات تحتاج إلى نسخ احتياطي.

الاختبار على Kubernetes

على Kubernetes 1.37 مع ثلاث نسخ متماثلة وGarage كما هو موضّح أعلاه، نجح كل اختبار شامل (end-to-end) في هذه الصفحات يُنشئ مشاريع أو يرفع ملفات أو يستخدم السجلّ أو ينشر قوالب، وبعد ذلك احتوت حاويات التخزين overleaf-project-blobs وoverleaf-chunks وoverleaf-template-files على الكائنات، بينما بقي المجلد /var/lib/overleaf/data/history الخاص بالنسخ المتماثلة فارغًا.
آخر تعديل في ٢ نوفمبر ٢٠٢٦