تشغيل Collabora عبر الإنترنت على عقد Kubernetes

في بيئة نشر Collabora Online متعددة العُقد، استخدم مخطط Helm الخاص بـ Collabora على Kubernetes خلف بوابة دخول أو وكيل عكسي، بحيث يبقى كل طلب لنفس المستند على نفس وحدة Collabora. يُعدّ هذا الترابط بين الجلسات أساسيًا، إذ قد يؤدي التوزيع الدوري العادي إلى إرسال طلبات التحرير والنسخ من الحافظة إلى وحدات مختلفة، مما يُعطّل التحرير التعاوني. يستخدم المثال أدناه ثلاث نسخ متماثلة، وبوابة دخول NGINX، وعددًا ثابتًا من النسخ المتماثلة؛ استبدل أسماء المضيفين وكلمة مرور TLS في المثال ببياناتك الخاصة.

موجه أوامر طرفي يحتوي على الأمر لإضافة مستودع Collabora Helm الرسمي
يقوم أمر الطرفية بإضافة مستودع مخطط Helm الرسمي الخاص بـ Collabora قبل النشر.

ما الذي تحتاجه قبل إضافة النسخ المتماثلة؟

أنت بحاجة إلى مجموعة Kubernetes عاملة تضم عقدتين عاملتين على الأقل، وHelm، ووحدة تحكم دخول تدعم قاعدة التقارب المطلوبة، واسم DNS مثل `<اسم النطاق>`، office.example.comوشهادة TLS لهذا الاسم. يجب أن يكون Nextcloud متاحًا لكل وحدة Collabora على مصدر WOPI العام الخاص بها، على سبيل المثال `<عنوان URL>` https://cloud.example.com. CODE وNextcloud خدمتان منفصلتان؛ يقوم هذا الدليل بتهيئة طبقة Collabora ثم يربط عنوان URL العام الخاص بها بـ Nextcloud Office.

استخدم إعداد النسخ المتعددة الموثق في مخطط Collabora بدلاً من وضع عدة حاويات Docker مستقلة خلف موازن تحميل عام. قد يؤدي موازن التحميل الذي يوزع كل طلب دون مراعاة مصدر WOPI الخاص بالمستند إلى تعطيل الجلسات. يتبع هذا الدليل تعليمات مخطط Collabora Helm الرسمية المتوفرة في 10 أكتوبر 2026. قد تتغير قيم المخطط، لذا تحقق من القيم الخاصة بإصدار المخطط الذي تنوي تثبيته.

1. قم بتكوين النسخ المتماثلة، وتقارب الدخول، ومضيف WOPI

أضف مستودع المخططات، وقم بتحديث فهرسه، وافحص الإعدادات الافتراضية الحالية للمخطط قبل كتابة ملف التجاوز الخاص بك:

helm repo add collabora https://collaboraonline.github.io/online/
helm repo update
helm show values collabora/collabora-online

أنشئ my_values.yamlباستخدام الإعدادات الأساسية الموضحة أدناه. يستخدم المثال تعليق NGINX Ingress الموضح في ملف README الخاص بمخطط Collabora. يقوم هذا التعليق بتجزئة WOPISrcالبيانات بحيث تصل الطلبات المرتبطة بمستند واحد إلى نفس الحاوية. كما أنه ينهي بروتوكول TLS العام عند نقطة الدخول؛ إعدادات خادم Collabora الموضحة مخصصة لنمط TLS الذي ينتهي عبر الوكيل.

محرر YAML يعرض ثلاث نسخ متماثلة من Collabora، مع تعطيل التوسع التلقائي، وتجزئة دخول NGINX بواسطة WOPISrc
يحدد ملف القيم عدد النسخ الثابتة ويوجه طلبات كل مستند بواسطة WOPISrc.
replicaCount: 3
autoscaling:
  enabled: false

ingress:
  enabled: true
  className: nginx
  annotations:
    nginx.ingress.kubernetes.io/upstream-hash-by: "$arg_WOPISrc"
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
  hosts:
    - host: office.example.com
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls:
    - secretName: office-example-tls
      hosts:
        - office.example.com

collabora:
  aliasgroups:
    - host: "https://cloud.example.com:443"
  extra_params: --o:ssl.enable=false --o:ssl.termination=true

المدخل aliasgroupsهو مضيف Nextcloud WOPI، وليس اسم مضيف Collabora. استخدم نفس البروتوكول واسم المضيف والمنفذ الذي يوفره Nextcloud. يجب أن يكون سر TLS الخاص بالدخول موجودًا في مساحة اسم الدخول وأن يحتوي على شهادة صالحة office.example.com. إذا انتهى TLS في مكان آخر، فاتبع نمط الوكيل المطابق في وثائق المخطط بدلاً من نسخ العلامتين extra_paramsبشكل أعمى.

هناك تحذير هام بخصوص التوسيع التلقائي، وهو أمرٌ حساسٌ لإصدار البرنامج: يُعطّل مثال ملف README الخاص بالمخطط خاصية التوسيع التلقائي، ويُحذّر من أن التوسيع قد يُعيق التحرير التعاوني والنسخ/اللصق، بينما ملف القيم المنشور حاليًا مُفعّلٌ فيه التوسيع التلقائي افتراضيًا. للحصول على مجموعة أولية قابلة للتنبؤ، عطّل التوسيع التلقائي صراحةً واختر عددًا ثابتًا للنسخ المتماثلة. لا تُعِد النظر في التوسيع التلقائي إلا بعد مراجعة إرشادات إصدار المخطط المحدد واختبار التوسيع والتصغير في جلسات تحرير فعلية.

2. قم بتثبيت المخطط وتحقق من موضع الكبسولة

قم بتثبيت المخطط في مساحة اسم مخصصة. يوثق مستودع المخططات الرسمي نمط هذا الأمر:

helm install --create-namespace \
  --namespace collabora \
  collabora-online collabora/collabora-online \
  -f my_values.yaml

ثم تحقق من أن عملية النشر قد وصلت إلى عدد النسخ المتماثلة المطلوب، وانظر إلى عقد العمل التي تستضيف الحاويات:

استخدم موجه الأوامر الطرفي مع الأمر `kubectl get pods -n collabora -o wide` لفحص موضع الحاويات.
استخدم قائمة الحاويات الواسعة للتحقق من الجاهزية والعقدة المخصصة لكل نسخة متماثلة.
kubectl get pods -n collabora -o wide
kubectl get ingress -n collabora
helm status collabora-online -n collabora

تأكد من جاهزية جميع وحدات التشغيل الثلاث، وأنّ نقطة الدخول تحتوي على المضيف المتوقع، وأنّ النسخ موزعة على عُقد العمل إذا كانت هناك حاجة إلى مرونة على مستوى العُقدة. لا يضمن عدد النسخ وحده أن يقوم Kubernetes بوضع وحدات التشغيل على عُقد منفصلة. يُتيح قالب المخطط الرسمي إعدادات مُحدِّد العُقدة، والتقارب، والتسامح؛ قم بتكوين قواعد جدولة مناسبة لمجموعتك، وتحقق من صحة المخطط المُنشأ قبل الاعتماد عليه. إذا لم يُظهر إصدار المخطط الخاص بك السياسة التي تحتاجها، فاستخدم امتداد مخطط مدعومًا أو تخصيصًا لنشر Kubernetes بدلاً من افتراض توزيع وحدات التشغيل.

3. قم بتوصيل Nextcloud وتحقق من تقارب المستندات

في Nextcloud، ثبّت أو فعّل تطبيق Nextcloud Office ، ثم افتح إعدادات الإدارة ← Office . حدّد خادم Collabora الخارجي وأدخل عنوان URL الخاص به https://office.example.com. عنوان URL للخادم هو نقطة نهاية TLS العامة التي يمكن لكل من خادم Nextcloud ومتصفحات المستخدمين الوصول إليها؛ لا تُدخل عنوان IP الخاص بوحدة pod أو عنوان الخدمة الداخلي.

افتح ملف DOCX أو ODT تجريبيًا من Nextcloud. عدّله من جلستين منفصلتين للمستخدمين، وتأكد من رؤية التغييرات لكلا المستخدمين. تحقق أيضًا من أدوات مطوري المتصفح أو سجلات Ingress بحثًا عن أخطاء WebSocket؛ إذ يجب أن يُبقي Ingress اتصال المحرر مفتوحًا لفترة طويلة. إذا كانت طلبات ملف واحد موزعة على عدة وحدات، فتحقق من WOPISrcوجود مُعامل الاستعلام حيث يُطبّق Ingress قاعدة التجزئة، وأن وحدة تحكم Ingress المُثبّتة تُطبّق التعليق التوضيحي.

محرر مستندات Collabora Online يعرض قائمة تحقق لنشر المجموعة مع شريط أدوات التنسيق
يوفر المستند المفتوح فحصًا للمستخدم بعد أن يشير Nextcloud إلى عنوان URL الخاص بـ Collabora المجمع.

ماذا يثبت وجود مجموعة خلايا صحية؟

يؤكد الاختبار الناجح قدرة Nextcloud على الوصول إلى نقطة نهاية Collabora وإمكانية تعديل المستند عبر بوابة الدخول المُهيأة. مع ذلك، لا يُثبت هذا الاختبار استمرار جميع الجلسات النشطة بعد تعطل وحدة أو عقدة. إذ تتولى الوحدة التي تُقدم المستند إدارة حالة التعديل، لذا قد يتطلب التعطل إعادة اتصال المستخدمين أو إعادة فتح الملف حتى مع بقاء النسخ الأخرى متاحة. لذا، يُنصح باختبار سيناريوهات الصيانة والأعطال باستخدام مستندات غير حرجة، والتخطيط للترقيات بحيث تُدار جلسات WebSocket طويلة الأمد بشكل مدروس.

للاطلاع على الصيغة الحالية والتحذيرات، يُرجى مراجعة ملف README الرسمي الخاص بمخطط Helm الخاص بـ Kubernetes من Collabora وقيمه ، وملف قيم المخطط المنشور ، ودليل تكوين Office الخاص بـ Nextcloud . تحقق من الإعدادات مقارنةً بإصدار المخطط الذي قمت بتثبيته، لأن أمثلة المستودع والإعدادات الافتراضية قد لا تكون متطابقة.

اترك تعليقاً

تشغيل Collabora عبر الإنترنت على عقد Kubernetes

تشغيل Collabora عبر الإنترنت على عقد Kubernetes

قم بنشر نسخ Collabora CODE باستخدام Helm، واحتفظ بكل مستند على وحدة واحدة من خلال تقارب WOPI، وتحقق من الدخول، ووضع العقدة، وتحرير Nextcloud.

استعادة اتصال WebSocket الخاص بـ Collabora عبر الوكيل

استعادة اتصال WebSocket الخاص بـ Collabora عبر الوكيل

تتبع عملية المصافحة الفاشلة من المتصفح إلى coolwsd، ثم قم بمطابقة مسار الوكيل العكسي مع إصدار Collabora الخاص بك، بما في ذلك تغيير Apache CODE 26.04.

إصلاح أخطاء إثبات WOPI عن طريق فحص المفاتيح والاكتشاف وعناوين URL

إصلاح أخطاء إثبات WOPI عن طريق فحص المفاتيح والاكتشاف وعناوين URL

تتبع حالات فشل إثبات Collabora WOPI إلى مفاتيح غير متطابقة، أو بيانات اكتشاف قديمة، أو انحراف الساعة، أو تغييرات عنوان URL للوكيل - دون إضعاف التحقق.

إصلاح قائمة أحجام الخطوط المنسدلة المعروضة بشكل خاطئ في Collabora Online

إصلاح قائمة أحجام الخطوط المنسدلة المعروضة بشكل خاطئ في Collabora Online

أعد ضبط تكبير/تصغير المتصفح، واختبر جلسة نظيفة، وحدد متى تحتاج قائمة الحجم المشوهة إلى تحديث خادم Collabora.

قم بتوصيل Nextcloud بحاوية Collabora CODE ذاتية الاستضافة

قم بتوصيل Nextcloud بحاوية Collabora CODE ذاتية الاستضافة

قم بنشر Collabora CODE باستخدام Docker، وقم بتوصيله بشكل آمن بـ Nextcloud Office، وتحقق من تحرير المستندات باستخدام فحوصات WOPI العملية وفحوصات البروكسي.

تتبع حالات فشل الاتصال بـ Collabora باستخدام سجلات coolwsd

تتبع حالات فشل الاتصال بـ Collabora باستخدام سجلات coolwsd

قم برفع coolwsd مؤقتًا إلى وضع التصحيح، والتقط عملية فتح فاشلة واحدة، واستخدم تسلسل السجل لفصل مشكلات WebSocket وWOPI والوكيل والحاوية.

قم بتعيين كلمة مرور آمنة للوحة تحكم إدارة Collabora

قم بتعيين كلمة مرور آمنة للوحة تحكم إدارة Collabora

قم بتكوين تسجيل دخول مسؤول Collabora Online لـ Docker أو Linux، وأعد تشغيل الخدمة الصحيحة، وتحقق من كلمة المرور الجديدة دون الكشف عنها.

تشخيص ارتفاع استهلاك وحدة المعالجة المركزية باستخدام أداة coolwsd أو loolwsd من Collabora

تشخيص ارتفاع استهلاك وحدة المعالجة المركزية باستخدام أداة coolwsd أو loolwsd من Collabora

تأكد من معرفة ما إذا كان حمل وحدة المعالجة المركزية ناتجًا عن المستندات النشطة أو عمليات العامل الخاملة أو سعة الخادم قبل تغيير إعدادات Collabora أو إعادة تشغيل الخدمة.

ارفع الحد الأقصى لذاكرة حاوية التعليمات البرمجية دون تخمين

ارفع الحد الأقصى لذاكرة حاوية التعليمات البرمجية دون تخمين

تحقق مما إذا كان Docker يفرض قيودًا على Collabora CODE، وقم بزيادة حد ذاكرة Compose بأمان، وتأكد من أن الحاوية قيد التشغيل قد تلقت الحد الجديد.

تخصيص أشرطة أدوات Collabora CODE بدون تعديل الكود المصدري

تخصيص أشرطة أدوات Collabora CODE بدون تعديل الكود المصدري

قم بتبسيط Collabora CODE باستخدام الوضع المضغوط أو وضع علامات التبويب وعناصر تحكم WOPI PostMessage لإخفاء الأزرار والأوامر وعلامات التبويب المحددة بأمان.