Skip to main content
تستخدم كل خدمة من خدمات Ayakaleaf Pro التي تحتفظ بحالة حيّة خادم Redis الواحد نفسه: web (الجلسات، وحدود المعدّل)، وreal-time، وdocument-updater (التعديلات التي لم تُحفظ بعد في MongoDB)، وproject-history (طابور السجلّ)، وthird-party-datastore (طابور Dropbox). يشغّله التثبيت على هيئة StatefulSet باسم redis من 3. نشر MongoDB وRedis؛ وراجع Redis بالنسبة إلى Toolkit.

المصادقة بكلمة مرور

1

خزّن كلمة المرور

2

شغّل Redis باستخدامها

في 20-redis.yaml، أعطِ الحاوية كلمة المرور ومرّرها إلى redis-server:
20-redis.yaml (changes)
يستبدل Kubernetes ‏$(REDIS_PASS) بالقيمة الموجودة في الـ Secret. ولا يحتاج فحص الجاهزية (tcpSocket) إلى أي تغيير.
3

التطبيق وإعادة التشغيل

أوقف Ayakaleaf Pro أولًا، حتى لا يُفقد أي تعديل بين عمليتي إعادة التشغيل:
بالنسبة إلى Redis مُدار، اضبط OVERLEAF_REDIS_HOST (وREDIS_HOST) في الـ ConfigMap على عنوانه، وكلمة المرور كما هو موضّح أعلاه، وOVERLEAF_REDIS_TLS: "true" إذا كان يتطلب TLS.

استمرارية AOF

يشغّل التثبيت Redis بالفعل مع --appendonly yes، وهو المقابل لـ REDIS_AOF_PERSISTENCE=true في Toolkit، ويحتفظ ببياناته على وحدة التخزين data-redis-0. لتحويل Redis موجود يعمل دون AOF، اتّبع الخطوات الواردة في صفحة Toolkit مع استخدام kubectl -n overleaf exec -it redis-0 -- redis-cli بدلًا من docker exec، ثم أضف --appendonly yes إلى الوسائط (args).

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

يجب أن تستخدم كل النسخ المتماثلة (replicas) خادم Redis نفسه: فهو يحتفظ بالجلسات، والتعديلات التي لم تصل بعد إلى MongoDB، والأقفال التي تمنع نسختين متماثلتين من معالجة المشروع نفسه في الوقت ذاته.

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

على Kubernetes 1.37 مع نسخة متماثلة واحدة، رفض Redis الذي شُغّل مع --requirepass $(REDIS_PASS) من الـ Secret المسمّى redis-auth كما هو موضّح أعلاه أوامر redis-cli دون كلمة المرور (NOAUTH)، ومع وجود OVERLEAF_REDIS_PASS وREDIS_PASSWORD في overleaf-secrets نجحت اختباراتنا الشاملة (end-to-end) الخاصة بـ launchpad ‏(13 حالة) والخاصة بالتحرير مع تتبّع التغييرات والتعليقات والمشاركة المجهولة (22 حالة)، والتي تمرّ عبر web وreal-time وdocument-updater وproject-history؛ ولم تسجّل أي خدمة خطأ مصادقة في Redis. أما كل اختبارات Kubernetes الأخرى في هذه الصفحات فقد أُجريت على StatefulSet الخاص بـ Redis من التثبيت، مع استمرارية AOF ودون كلمة مرور.
آخر تعديل في ٢ نوفمبر ٢٠٢٦