Skip to main content
تستبدل الترقية وسم الصورة. يُرحّل الإصدار الجديد قاعدة البيانات عند بدء تشغيله، ويجب أن تُجرى عمليات الترحيل هذه مرة واحدة، من pod واحد، بينما لا يعمل أي pod أقدم. وعلى Kubernetes يستبعد ذلك التحديث المتدرّج (rolling update) العادي لـ StatefulSet موسَّع.
خذ نسخة احتياطية متّسقة قبل كل ترقية، مع إيقاف Ayakaleaf Pro. اقرأ ملاحظات الإصدار للاطلاع على خطوات الإصدار الذي تُرقّي إليه.
قبل أن تبدأ، اسحب على كل عقدة تشغّل Ayakaleaf Pro أي صورة TeX Live يدرجها الإصدار الجديد أو إعداداتك الجديدة، باستخدام sudo docker pull.
1

أوقف Ayakaleaf Pro

2

خذ نسخة احتياطية

MongoDB، من أي عضو:
وحدة تخزين البيانات، عبر pod قصير العمر يركّبها (ويُجدوَل على عقدة وحدة التخزين):
افعل الشيء نفسه مع وحدة التخزين الخاصة بـ git-bridge ‏(data-git-bridge-0)، واحتفظ بنسخة من الـ Secret المسمّى overleaf-secrets. إذا كان التخزين لديك يدعم VolumeSnapshots، فإن لقطة (snapshot) لوحدات التخزين تؤدي الغرض نفسه.
3

غيّر الإصدار وابدأ التشغيل

اضبط الوسم الجديد في 40-overleaf.yaml (وفي 45-git-bridge.yaml، الذي يجب أن يستخدم الوسم نفسه)، ثم:
يستخدم الـ Deployment ‏strategy: Recreate، لذا حتى مع تغيير الوسم لا يعمل إصداران أبدًا في الوقت نفسه.

MongoDB وRedis

رقِّهما بشكل منفصل عن Ayakaleaf Pro. بالنسبة إلى MongoDB، اتّبع تحديث MongoDB (إصدار رئيسي واحد في كل مرة، مع featureCompatibilityVersion بعد كل خطوة)؛ وتأخذ مجموعة النسخ المتماثلة الصورة الجديدة عضوًا تلو الآخر عند تغيير الصورة في 10-mongo.yaml، لأن الـ StatefulSet يستبدل mongo-2 وmongo-1 وmongo-0 بالتناوب.

التراجع

أوقف Ayakaleaf Pro كما هو موضّح أعلاه، واستعد MongoDB من الأرشيف (mongorestore --drop --archive --gzip) ووحدات التخزين أو حاويات التخزين من النسخة الاحتياطية، واضبط الوسم القديم وابدأ التشغيل مجددًا. لا يمكن التراجع عن عمليات الترحيل الخاصة بالإصدار الجديد بأي طريقة أخرى.

أسئلة وأجوبة

الإجابة: مع podManagementPolicy: OrderedReady، لا يبدأ overleaf-1 إلا بعد أن يصبح overleaf-0 جاهزًا، ولا يستبدل التحديث المتدرّج pod لم يصبح جاهزًا قط. بعد إصلاح السبب، مثل إعداد خاطئ في الـ ConfigMap، احذف الـ pod العالق حتى يُنشئه الـ StatefulSet من جديد من القالب الحالي:
واجهنا ذلك في عنقود الاختبار لدينا بعد أن منع أحد الإعدادات overleaf-0 من أن يصبح جاهزًا؛ وقد أتاح حذف الـ pod بدء تشغيل النسخ المتماثلة الثلاث كلها.
آخر تعديل في ٢ نوفمبر ٢٠٢٦