redis من 3. نشر MongoDB وRedis؛ وراجع Redis بالنسبة إلى Toolkit.
المصادقة بكلمة مرور
1
خزّن كلمة المرور
2
شغّل Redis باستخدامها
في يستبدل Kubernetes
20-redis.yaml، أعطِ الحاوية كلمة المرور ومرّرها إلى redis-server:20-redis.yaml (changes)
$(REDIS_PASS) بالقيمة الموجودة في الـ Secret. ولا يحتاج فحص الجاهزية (tcpSocket) إلى أي تغيير.3
التطبيق وإعادة التشغيل
أوقف Ayakaleaf Pro أولًا، حتى لا يُفقد أي تعديل بين عمليتي إعادة التشغيل:
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 ودون كلمة مرور.
