خذ نسخة احتياطية متّسقة قبل كل ترقية، مع إيقاف Ayakaleaf Pro. اقرأ ملاحظات الإصدار للاطلاع على خطوات الإصدار الذي تُرقّي إليه.
sudo docker pull.
- نسخة متماثلة واحدة
- عدة نسخ متماثلة
1
أوقف Ayakaleaf Pro
2
خذ نسخة احتياطية
MongoDB، من أي عضو:وحدة تخزين البيانات، عبر pod قصير العمر يركّبها (ويُجدوَل على عقدة وحدة التخزين):افعل الشيء نفسه مع وحدة التخزين الخاصة بـ git-bridge (
data-git-bridge-0)، واحتفظ بنسخة من الـ Secret المسمّى overleaf-secrets. إذا كان التخزين لديك يدعم VolumeSnapshots، فإن لقطة (snapshot) لوحدات التخزين تؤدي الغرض نفسه.3
غيّر الإصدار وابدأ التشغيل
اضبط الوسم الجديد في يستخدم الـ Deployment
40-overleaf.yaml (وفي 45-git-bridge.yaml، الذي يجب أن يستخدم الوسم نفسه)، ثم: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 بدء تشغيل النسخ المتماثلة الثلاث كلها.
