Skip to main content
يترجم Ayakaleaf Pro مستندات LaTeX داخل حاويات TeX Live معزولة. وهو يشغّلها بنفسه، عبر مقبس Docker ‏(Docker socket) الخاص بالجهاز الذي يعمل عليه. وعلى Kubernetes يعني ذلك ما يلي:
  • كل عقدة يمكنها تشغيل pod الخاص بـ Ayakaleaf Pro يكون Docker Engine مثبّتًا عليها وقيد التشغيل؛
  • كل صورة TeX Live تضبطها تُسحب إلى Docker على كل واحدة من تلك العقد.
يمكن لـ kubelet أن يستمر في استخدام containerd: إذ يأتي Docker Engine مع containerd.io، ويستخدم كلاهما الخدمة (daemon) نفسها في مساحات أسماء مختلفة.
لا يمكن لمجموعات العقد المُدارة التي لا تحتوي على Docker (معظم الإعدادات الافتراضية في EKS وGKE وAKS) تشغيل الترجمة المعزولة. استخدم مجموعات عقد يمكنك تثبيت Docker Engine عليها، أو ضع تسميات (labels) على هذه العقد وأبقِ Ayakaleaf Pro عليها باستخدام nodeSelector.
الخطوات أدناه مخصّصة لـ Ubuntu 24.04 ولعنقود مبني باستخدام kubeadm. إذا كان العنقود لديك موجودًا بالفعل، فنفّذ الخطوات 1 و2 و5 على العقد التي ستشغّل Ayakaleaf Pro.
1

وحدات النواة وإعدادات sysctl

2

Docker Engine

ثبّت Docker Engine من مستودع Docker كما في 0. إعداد Docker. لا حاجة إلى إضافة Compose. يثبّت ذلك أيضًا containerd.io.
3

containerd من أجل kubelet

تأتي حزمة containerd.io من مستودع Docker مع إضافة CRI معطّلة. اكتب الإعدادات الافتراضية الكاملة، والتي تفعّلها، وحوّلها إلى استخدام systemd cgroups:
4

kubeadm وkubelet وkubectl

اتّبع Installing kubeadm، ثم أنشئ العنقود باستخدام kubeadm init وkubeadm join وثبّت إضافة شبكة. على سبيل المثال، مع flannel:
kubeadm-config.yaml
يحتاج العنقود أيضًا إلى StorageClass افتراضي. بالنسبة إلى عنقود اختباري، يعمل local-path-provisioner؛ أما في بيئة الإنتاج، فاستخدم التخزين الكتلي (block storage) الخاص بمنصتك (Longhorn، أو Ceph، أو برنامج تشغيل CSI سحابي).
5

صور TeX Live

على كل عقدة يمكنها تشغيل Ayakaleaf Pro، اسحب باستخدام Docker صور TeX Live التي ستدرجها في ALL_TEX_LIVE_DOCKER_IMAGES، على سبيل المثال:
لا يفيد crictl pull أو ctr هنا: إذ يطلب Ayakaleaf Pro الصورة من Docker. الصور الكاملة كبيرة الحجم (نحو 28 GB لكلٍّ منها)؛ راجع الترجمة المعزولة (Sandboxed Compiles) للاطلاع على القائمة. وفي الاختبار الأول، تكفي الصورة ghcr.io/ayaka-notes/texlive-basic:2026.1 (نحو 630 MB، وهي TeX Live بالحد الأدنى).

أسئلة وأجوبة

الإجابة: فقط مع SANDBOXED_COMPILES=false. عندئذٍ تجري عمليات الترجمة داخل حاوية Ayakaleaf Pro باستخدام TeX Live الصغير المدمج فيها، ويمكن لمستندات LaTeX قراءة وكتابة كل ما تستطيع تلك الحاوية الوصول إليه. لا نوصي بذلك؛ راجع الترجمة المعزولة (Sandboxed Compiles).
الإجابة: لا. يشغّل Docker الخاص بالعقدة حاويات TeX Live، خارج الـ pod وخارج نطاق رؤية kubelet. اترك ذاكرة متاحة على العقدة من أجلها، على سبيل المثال باستخدام systemReserved كما هو موضّح أعلاه، ولا تملأ العقدة بـ pods أخرى.
آخر تعديل في ٢ نوفمبر ٢٠٢٦