Skip to content

موفر Kubernetes (Kubernetes Provisioner)

يتيح لك موفر Kubernetes إنشاء عنقود Kubernetes جاهز للاستخدام من Cockpit في خطوات إرشادية قليلة. يبني Cockpit الأجهزة الافتراضية، ويثبت توزيعة Kubernetes خفيفة الوزن ومتوافقة بالكامل (k3s)، ويوصل الشبكات والتخزين، ويسلمك عنقودًا يمكنك الاتصال به باستخدام أداة kubectl القياسية.

لا تحتاج إلى تحضير خوادم، أو تشغيل برامج تثبيت، أو نسخ أوامر الانضمام يدويًا. تختار حجم العنقود ومكان تشغيله، ويتكفل Cockpit بالباقي في الخلفية أثناء مواصلة عملك.

لمن يُوجه هذا الدليل

هذا الدليل مخصص للأشخاص الذين يرغبون في تشغيل عنقود Kubernetes — فرق التطبيقات، وموجهو المنصات، والمسؤولون. ويركز على ما تفعله في واجهة Cockpit وكيفية استخدام العنقود بعد ذلك.


قبل أن تبدأ

يجب توفر أمرين قبل إنشاء عنقودك الأول. إذا كان المسؤول قد أعد البيئة بالفعل، يمكنك الانتقال مباشرة إلى إنشاء عنقود.

  • قالب عنقود. يستنسخ Cockpit كل عقدة من صورة قالب Ubuntu معدة. تتوفر هذه الصورة عادةً لك وتظهر تلقائيًا كخيار في المعالج.
  • شبكة مناسبة. يجب أن تكون كل عقدة في العنقود قادرة على الوصول إلى العقد الأخرى والوصول إلى الإنترنت (لتنزيل مكونات Kubernetes عند الإقلاع الأول). انظر اختيار شبكة للتعرف على كيفية اختيار الشبكة المناسبة.

إنشاء عنقود

  1. في شجرة المخزون اليسرى، انقر بزر الفأرة الأيمن على Cluster.
  2. اختر Kubernetes ← New Cluster.
  3. يفتح معالج توفير Kubernetes في خمس خطوات قصيرة.

عند الانتهاء من المعالج، يبدأ Cockpit بناء العنقود في الخلفية. يمكنك إغلاق المعالج ومتابعة التقدم في لوحة Tasks. يظهر العنقود في المخزون وينتقل من provisioning إلى active عندما يكون جاهزًا للاستخدام.

الخطوة 1 — الهوية والإصدار (Identity & Version)

الحقلما يفعله
Cluster Nameاسم صديق للعنقود. يُستخدم في المخزون وفي ملف الإعداد المنزل.
Descriptionملاحظات اختيارية لمرجعك الخاص.
Networkالشبكة الافتراضية التي تتصل بها العقد. انظر اختيار شبكة.
Kubernetes Versionإصدار k3s المراد تثبيته. تُحفظ القائمة محدثة لك؛ اختر الأحدث ما لم يكن لديك سبب لعدم القيام بذلك.
Network Plugin (CNI)كيف تتحدث الكبسولات (Pods) مع بعضها البعض. انظر ملحقات الشبكة. اتركه على Flannel إذا لم تكن متأكدًا.

الخطوة 2 — لوحة التحكم (Control Plane)

لوحة التحكم هي "عقل" العنقود. اختر مدى مرونتها:

  • Single (عقدة واحدة) — الأبسط والأخف وزناً. جيدة للتطوير والاختبار. إذا فُقدت تلك العقدة، يكون العنقود غير متاح حتى يتعافى.
  • High Availability (3 عقد) — يوصى بها للإنتاج. يستمر العنقود في العمل حتى لو فشلت عقدة واحدة من لوحة التحكم.

تقوم أيضًا بضبط المعالج، والذاكرة، ومستودع التخزين، وحجم القرص لكل عقدة من لوحة التحكم، واختيار التوزيع (Placement):

  • Auto-Distribute (موصى به) — ينشر Cockpit عقد HA الثلاث عبر ثلاثة مضيفين فيزيائيين مختلفين تلقائيًا، حتى لا يتسبب انقطاع مضيف واحد في إسقاط لوحة التحكم بأكملها.
  • Manual — تختار بالضبط المضيف الذي تعمل عليه كل عقدة.

الخطوة 3 — عقد العمل (Worker Nodes)

تشغل عقد العمل تطبيقاتك الفعلية. حدد العدد الذي تريد البدء به والمعالج، والذاكرة، ومستودع التخزين، وحجم القرص لكل منها. يمكنك تغيير عدد عقد العمل في أي وقت لاحقًا — انظر توسيع العنقود.

يعمل التوزيع بالطريقة نفسها كما في لوحة التحكم: يوازن Auto-Distribute عقد العمل عبر المضيفين، أو استخدم Manual لتثبيت عقد العمل على مضيفين محددين (مفيد عندما تمتلك بعض الخوادم المضيفة أجهزة خاصة مثل GPUs).

الخطوة 4 — الوصول والتخزين (Access & Storage)

  • SSH Public Key — اختياري. الصق مفتاحًا عامًا هنا إذا كنت تريد وصولاً مباشرًا عبر SSH إلى الأجهزة الافتراضية للعقدة لاستكشاف الأخطاء وإصلاحها. ليس مطلوبًا لاستخدام العنقود.
  • Storage Tiers (CSI) — اختر كيف تحصل التطبيقات على التخزين الدائم. يمكنك تمكين أكثر من مستوى واحد. انظر التخزين لتطبيقاتك.

الخطوة 5 — المراجعة والإنشاء (Review & Create)

راجع الملخص — حجم العنقود، والموارد التي سيستخدمها، والمضيفون الذين ستنزل عليهم العقد. انقر على Provision للبدء. يغلق المعالج وتبدأ مهمة خلفية.


اختيار شبكة

الشبكة التي تختارها في الخطوة 1 لها التأثير الأكبر على ما إذا كان عنقودك سيتشكل بنجاح، لذا تستحق التفكير للحظة.

يجب أن تقيم كل عقدة على الشبكة نفسها القابلة للوصول، وتحصل على عنوان IP تلقائيًا (DHCP)، وتصل إلى الإنترنت أثناء الإعداد. حالتان شائعتان:

  • شبكة مشتركة/موجّهة تمتد عبر مضيفيك — يمكن توزيع العقد عبر مضيفين فيزيائيين متعددين مع استمرار التحدث مع بعضها البعض. هذا هو الاختيار الصحيح لعنقود عالي التوفر يجب أن ينجو من تعطل المضيف.
  • شبكة NAT محددة بالمضيف — يعيش هذا النوع من الشبكات على مضيف واحد. عند اختيار واحدة، يبقي Cockpit جميع عقد العنقود على ذلك المضيف الواحد تلقائيًا حتى تتواصل. هذا ممتاز جدًا للتطوير أو لعنقود معزول ذاتيًا، ولكنه يعني أن العنقود يتشارك المصير نفسه مع ذلك المضيف.

WARNING

تجنب الشبكات المعزولة التي تتوصل فقط بين الأجهزة الافتراضية على المضيف نفسه دون عناوين مشتركة عبر المضيفين، والشبكات التي تفتقر إلى الوصول للإنترنت. العقد على مثل هذه الشبكات لا يمكنها العثور على بعضها البعض أو تنزيل مكونات Kubernetes، ولن يكتمل توفير العنقود.

إذا لم تكن متأكدًا من الشبكة التي يجب استخدامها، فاسأل المسؤول عن الشبكة المخصصة لـ Kubernetes.


ملحقات الشبكة (CNI)

يتحكم ملحق الشبكة في كيفية تواصل الكبسولات (Pods) وما إذا كان يمكنك فرض سياسات أمان الشبكة. تختاره مرة واحدة في الخطوة 1.

الملحقالأفضل لـملاحظات
Flannel (افتراضي)معظم العناقيد، التطوير، الإعدادات البسيطةخفيف الوزن وموثوق. لا توجد سياسات شبكة.
Calicoالإنتاج مع عزل المستأجرينيضيف دعم Kubernetes NetworkPolicy للتحكم في حركة المرور بين الكبسولات.
Ciliumالأداء العالي والشبكات المتقدمةقائم على eBPF، مع سياسات غنية في الطبقات L3–L7 ورؤية حركة المرور.

إذا لم يكن لديك متطلب محدد، فإن Flannel هو خيار افتراضي آمن.


التخزين لتطبيقاتك

التطبيقات التي تحتاج إلى الاحتفاظ بالبيانات (قواعد البيانات، رفع الملفات، وما إلى ذلك) تطلب التخزين من خلال مستوى التخزين (Storage tier). مكن المستويات التي تحتاجها في الخطوة 4؛ يمكنك تشغيل أكثر من مستوى واختيار المستوى المستخدم لكل تطبيق.

المستوىما يقدمه لكمتى تستخدمه
Local Path (مفعل افتراضيًا)تخزين سريع على العقدة التي تعمل عليها الكبسولةتخزين بسيط وعالي السرعة. تظل البيانات على عقدة واحدة، لذا تكون غير متاحة إذا انتقلت الكبسولة إلى عقدة أخرى.
Shared (NFS)تخزين يمكن لعدة كبسولات مشاركته في وقت واحد، ومتاح عبر العقدعندما تحتاج الكبسولات إلى مشاركة الملفات، أو الاحتفاظ ببياناتها عند الانتقال بين العقد.
Replicated (Longhorn)تخزين كتل عالي التوفر، مكرر عبر العقدبيئات العمل ذات الحالة (Stateful) مثل قواعد البيانات التي يجب أن تنجو من تعطل العقدة.

بالنسبة لـ Shared (NFS)، يمكنك إما الإشارة إلى مستودع تخزين NFS مسجل بالفعل في Cockpit أو إدخال عنوان خادم NFS خارجي. يتحقق Cockpit من إمكانية الوصول إلى الخادم قبل أن يبدأ، لذلك يتم اكتشاف الخطأ المطبعي مبكرًا بدلاً من منتصف عملية التوفير.


الاتصال بعنقودك

بمجرد أن تكون حالة العنقود active، يمكنك الاتصال باستخدام kubectl، أداة سطر الأوامر القياسية لـ Kubernetes.

  1. افتح صفحة تفاصيل العنقود وانقر على Download Kubeconfig. يعطيك Cockpit ملفًا جاهزًا للاستخدام مع عنوان الخادم الصحيح المملوء بالفعل.

  2. احفظه ووجه kubectl إليه:

    bash
    mkdir -p ~/.kube
    mv ~/Downloads/kubeconfig-my-cluster.yaml ~/.kube/config-my-cluster
    chmod 600 ~/.kube/config-my-cluster
    export KUBECONFIG=~/.kube/config-my-cluster
  3. تحقق من أنه يعمل:

    bash
    kubectl get nodes

    يجب أن ترى عقد لوحة التحكم والعمال مدرجة بالحالة Ready.

TIP

لتجنب ضبط KUBECONFIG في كل مرة، أضف سطر export إلى ملف تعريف الغلاف الخاص بك (~/.bashrc أو ~/.zshrc).


توسيع العنقود

يمكنك زيادة أو تقليل عدد عقد العمل في أي وقت دون إعادة بناء العنقود.

  1. افتح العنقود واعثر على مجمع عقد العمل (Worker node pool).
  2. اضبط عدد عقد العمل المطلوب الجديد وأكد.

التوسيع للأعلى (Scaling up) يضيف أجهزة افتراضية جديدة لعقد العمل ويضمها إلى العنقود تلقائيًا. عندما تظهر العقد الجديدة بالحالة Ready، تبدأ في قبول بيئات العمل.

التوسيع للاسفل (Scaling down) يتم بنظافة: قبل إزالة عقدة، يقوم Cockpit بـ تفريغها (Drains) — بنقل بيئات العمل الشغالة إلى العقد المتبقية — حتى تستمر التطبيقات في العمل. عندها فقط يتم إزالة الجهاز الافتراضي وتحرير موارده.

إذا فشلت إضافة عقدة

إذا تعذر إنشاء عقدة عمل جديدة (على سبيل المثال، استنفذ المضيف المختار السعة مؤقتًا)، ينظف Cockpit العقدة غير المكتملة تلقائيًا ويعدل المجمع إلى العدد الذي وصل إليه بالفعل. ما عليك سوى تشغيل التوسيع للأعلى مرة أخرى لإعادة المحاولة — لن تترك مع عقد نصف مكتملة.


ترقية العنقود

يجري Cockpit ترقية متدحرجة (Rolling upgrade)، بنقل العنقود إلى إصدار Kubernetes أحدث بعقدة واحدة في كل مرة بحيث تظل تطبيقاتك متاحة.

  1. افتح العنقود واختر Upgrade.
  2. اختر الإصدار المستهدف من القائمة.
  3. أكد. يرقي Cockpit لوحة التحكم أولاً، ثم العمال، عقدة واحدة في كل مرة.

أثناء الترقية يتم تفريغ كل عقدة وتحديثها وإعادتها للخدمة قبل أن تبدأ العقدة التالية. يمكنك متابعة التقدم في لوحة Tasks.


مراقبة صحة العنقود

بعد أن يصبح العنقود active، يبقي Cockpit عينًا عليه ويوضح حالة الصحة في صفحة العنقود:

  • Healthy — جميع العقد موجودة وحالتها Ready.
  • Degraded — عقدة واحدة أو أكثر ليست Ready (على سبيل المثال، توقفت عقدة أو فقدت الشبكة). لا يزال العنقود يعمل ولكنه يعمل بسعة أو مرونة منخفضة.

تتحدث الصحة من تلقاء نفسها مع تعافي العقد أو فشلها، حتى تتمكن من معرفة ما إذا كان هناك حاجة إلى الاهتمام بنظرة واحدة.


استكشاف الأخطاء وإصلاحها

العنقود عالق في حالة "provisioning" ولا يصبح نشطًا أبدًا. السبب الأكثر شيوعًا هو الشبكة. تأكد من أن الشبكة التي اخترتها تمنح كل عقدة عنوان IP تلقائيًا ولديها وصول للإنترنت. إذا كانت العقد موزعة عبر المضيفين، فتأكد من أن الشبكة تمتد بالفعل عبر أوليائك المضيفين. انظر اختيار شبكة.

تظهر العقدة بحالة "NotReady" أو العنقود بالحالة "Degraded". تحقق من أن الجهاز الافتراضي للعقدة يعمل (ربما تم إيقافه، أو خادمه المضيف متوقف). بمجرد عودة الجهاز الافتراضي وإعادة اتصاله بالشبكة، تعود العقدة وتعود حالة الصحة إلى Healthy تلقائيًا.

تعذر على kubectl الاتصال بعد تنزيل kubeconfig. تأكد من أن KUBECONFIG يشير إلى الملف التنزيل وأن جهازك يمكنه الوصول إلى عنوان عقدة لوحة التحكم على الشبكة. أعد تنزيل kubeconfig إذا تغير عنوان العنقود.

فقدت التطبيقات بياناتها بعد انتقال الكبسولة إلى عقدة أخرى. يحدث هذا مع مستوى التخزين Local Path، الذي يحتفظ بالبيانات على عقدة واحدة. للبيانات التي يجب أن تتبع التطبيق، استخدم مستوى Shared (NFS) أو Replicated (Longhorn) بدلاً من ذلك. انظر التخزين لتطبيقاتك.


مواضيع ذات صلة