Skip to content

إدارة Cluster Apps ​

تتيح ميزة Cluster Apps تثبيت تطبيقات جاهزة من الكتالوج داخل تجمع (cluster) Kubernetes Autopilot الخاص بك، وتعرض التطبيقات التي تعمل فيه. يمكنك تثبيت التطبيقات وعرض تفاصيلها وترقيتها وإلغاء تثبيتها من صفحة تفاصيل التجمع.

تعمل التطبيقات داخل تجمعك وتستخدم سعته. أنت مالك هذه التطبيقات: يمكنك إدارتها من هذه الصفحة أو بأي أداة Kubernetes، مثل helm أو kubectl أو Lens.

Cluster Apps وMarketplace ​

يقدّم كلاهما تطبيقات جاهزة، لكن طريقة عملهما مختلفة.

MarketplaceCluster Apps
مكان تشغيل التطبيقعلى المنصة، وتديره المنصة نيابةً عنكداخل تجمع Autopilot الخاص بك
من يدير التطبيقالمنصةأنت
الفوترةرسوم التطبيق إضافةً إلى الموارد التي يستخدمهالا فوترة منفصلة؛ تدفع مقابل حجم التجمع
مكانه في الواجهةقائمة Marketplaceقسم Apps في صفحة تفاصيل التجمع

اختر Marketplace إذا أردت أن تشغّل المنصة التطبيق نيابةً عنك. واختر Cluster Apps إذا كان مكان التطبيق بجوار أحمال العمل (workloads) الخاصة بك، في تجمع تتحكم فيه.

فتح قسم Apps ​

  1. افتح Kubernetes >> Autopilot وانقر على اسم التجمع.
  2. في قائمة التجمع، افتح Apps:
    • Installed: قائمة التطبيقات التي تعمل في التجمع.
    • Catalog: قائمة التطبيقات التي يمكنك تثبيتها.

يجب أن تكون حالة التجمع Running.

الكتالوج ​

التطبيقالفئةالوظيفة
CloudNativePGDatabaseمشغّل (Operator) يشغّل تجمعات PostgreSQL ويديرها، مع التبديل عند الفشل (failover) والنسخ الاحتياطي والتحديثات المتدرجة.
KyvernoSecurityمحرك سياسات يتحقق من موارد Kubernetes ويعدّلها وينشئها وفق سياسات تعريفية.
NGINX Ingress ControllerNetworkingمتحكم Ingress من F5 NGINX يوجّه حركة HTTP وHTTPS إلى الـ Services داخل التجمع.
Percona Operator for MongoDBDatabaseمشغّل (Operator) يشغّل مجموعات النسخ المتماثلة (replica sets) والتجمعات المجزأة (sharded clusters) لـ Percona Server for MongoDB، مع النسخ الاحتياطي والاستعادة إلى نقطة زمنية.
Percona Operator for MySQLDatabaseمشغّل (Operator) يشغّل Percona XtraDB Cluster، وهو MySQL عالي التوفر مع نسخ متزامن ونسخ احتياطي واستعادة إلى نقطة زمنية.
StrimziMessagingمشغّل (Operator) يدير تجمعات Apache Kafka والمواضيع (topics) والمستخدمين عبر موارد Kubernetes.
ValkeyDatabaseمخزن مفتاح-قيمة في الذاكرة، وهو تفرّع مفتوح المصدر من Redis.

يستخدم كل إدخال في الكتالوج إصدار chart مختبرًا وقيمًا افتراضية مناسبة للتجمعات الصغيرة. سيتوسع الكتالوج مع الوقت.

تثبيت تطبيق ​

  1. افتح Apps >> Catalog وانقر على Install في التطبيق.
  2. تحقق من Release name وNamespace. كلاهما مملوء بالقيم الافتراضية للكتالوج. يُنشأ الـ namespace إذا لم يكن موجودًا.
  3. عدّل Values (YAML) عند الحاجة. يبدأ المحرر بالقيم الافتراضية للكتالوج، وقيمك تتجاوزها؛ أما المحرر الفارغ فيستخدم القيم الافتراضية للـ chart نفسه.
  4. انقر على Check capacity. تعرض المنصة التطبيق بقيمك وتفحصه مقابل تجمعك، دون تثبيت أي شيء.
  5. عندما تظهر النتيجة The app fits in this cluster، انقر على Install. يبقى زر Install معطّلًا حتى ينجح الفحص للمدخلات الحالية؛ وإذا غيّرت أي شيء، فافحص مرة أخرى.

تُفتح لوحة تفاصيل التطبيق، وتظهر أحمال العمل بحالة Starting ثم Ready مع بدء تشغيل الـ pods.

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

نتائج فحص السعة ​

عندما لا ينجح الفحص، تظهر الرسالة The app cannot be installed as it is مع الأسباب:

السببما يجب فعله
Not enough capacityيعرض جدول لكل مورد ما يحتاجه التطبيق، وما هو متاح، ومقدار النقص، مع أصغر حجم تجمع يكفي (Smallest cluster size that fits). انقر على Resize cluster لتكبير التجمع، أو خفّض قيم التطبيق (عدد النسخ، والـ request، والـ limit).
Request above its limitتطلب حاوية أكثر مما يسمح به الـ limit الخاص بها. اضبط الـ limit بحيث لا يقل عن الـ request.
Resource values requiredلا توجد لحاوية قيم للمعالج أو الذاكرة أو التخزين، ولا يمنحها التجمع قيمًا افتراضية. حدّد هذه القيم في الـ values.
Pod Securityيحتاج التطبيق إلى صلاحيات غير مسموح بها للـ pods في تجمع Autopilot، مثل الوضع المميّز (privileged) أو مسارات المضيف (host paths). لا يمكن تشغيل هذا التطبيق في تجمع Autopilot.
Kubernetes versionلا يدعم التطبيق إصدار Kubernetes في التجمع. قم بترقية التجمع إذا توفّر إصدار مدعوم.
The chart cannot be renderedالـ values غير صالحة لهذا التطبيق. تعرض الرسالة الخطأ.
Not enough room to uninstallالتطبيق يتسع، لكن المساحة المتبقية في التجمع لن تكفي للخطوات التي يشغّلها التطبيق عند إلغاء تثبيته (مثل إزالة admission webhooks الخاصة به)، فيتوقف إلغاء التثبيت ويترك أجزاء خلفه. كبّر التجمع إلى الحجم المقترح أو خفّض قيم التطبيق.

قد يعرض الفحص الناجح تحذيرات أيضًا:

التحذيرالمعنى
Little room for updatesالتطبيق يتسع، لكن المساحة المتبقية في التجمع قليلة جدًا للـ pods الإضافية التي يشغّلها التحديث المتدرج. قد يتوقف تحديث لاحق للتطبيق في منتصفه حتى يُكبَّر التجمع.
Little room for autoscalingلا تستطيع أدوات التوسع التلقائي في التطبيق الوصول إلى الحد الأقصى من الـ pods بالمساحة المتبقية.
No quotaلا توجد حدود سعة للتجمع يمكن الفحص مقابلها، لذا لم تُفحص السعة.

تشغّل المشغّلات (Operators) مثل CloudNativePG وStrimzi مزيدًا من الـ pods لاحقًا، عندما تنشئ قاعدة بيانات أو تجمع Kafka. هذه الـ pods غير مشمولة في الفحص، وتشير النتيجة إلى ذلك. اترك مساحة لها.

عرض التطبيقات المثبتة ​

تعرض Apps >> Installed كل إصدارات التطبيقات (releases) في التجمع، مع الـ namespace، والـ chart وإصداره، والمصدر، والحالة، وأحمال العمل، وآخر تحديث. يمكنك التصفية حسب الـ namespace أو البحث بالاسم.

يوضح عمود Source مصدر التطبيق:

  • Catalog: ثُبّت من الكتالوج.
  • Other: ثُبّت بأداة أخرى، مثل helm أو Lens، ويُعرض كما هو.

انقر على اسم التطبيق لفتح لوحة تفاصيله. تعرض اللوحة إصدار الـ chart والتطبيق، والحالة، والمراجعة (revision)، وأحمال العمل، والملاحظات التي يطبعها التطبيق بعد تثبيته. ينقلك Open workloads in Explorer إلى الـ pods والكائنات الأخرى الخاصة بالتطبيق.

حالات أحمال العمل ​

الحالةالمعنى
Readyجميع أحمال عمل التطبيق لديها pods جاهزة.
Startingالـ pods قيد التشغيل.
Needs attentionتعذّر تشغيل بعض الـ pods. تعرض اللوحة السبب مع عدد الـ pods المتأثرة.

أسباب تعذّر تشغيل الـ pod:

السببما يجب فعله
Waiting for cluster capacityالتجمع ممتلئ، وتذكر اللوحة المورد الذي نفد. كبّر التجمع أو قلّل احتياجات التطبيق. تبدأ الـ pods تلقائيًا عند توفّر المساحة، ولا حاجة لإعادة التثبيت.
Waiting for platform capacityلا تتوفر لدى المنصة حاليًا مساحة للـ pod. تواصل مع مسؤول المنصة.
Resource values requiredحدّد قيم المعالج والذاكرة والتخزين للحاوية.
Blocked by Pod Securityيحتاج الـ pod إلى صلاحيات غير مسموح بها في تجمع Autopilot.
Storage pendingوحدة تخزين (volume) الخاصة بالـ pod ليست جاهزة بعد.
Image cannot be pulledتحقق من اسم الصورة (image) ومن الوصول إلى السجل (registry).
Crashing repeatedlyتتوقف الحاوية بشكل متكرر. راجع سجلاتها في Explorer.
Configuration errorهناك ConfigMap أو Secret أو إعداد تحتاجه الحاوية مفقود أو غير صالح.
Pods not createdتعذّر على حمل العمل إنشاء الـ pods، مثلًا لأن سياسة داخل التجمع رفضتها.

ترقية تطبيق ​

إذا كان في الكتالوج إصدار أحدث من تطبيق ثبّته منه، تعرض القائمة الإصدار الجديد بجوار الإصدار الحالي مع زر الترقية.

  1. انقر على زر الترقية في القائمة، أو على Upgrade في لوحة تفاصيل التطبيق.
  2. عدّل الـ values عند الحاجة. يعرض المحرر القيم الحالية للتطبيق، وما تحفظه يحلّ محلها، لذا يُحذف أي مفتاح تزيله.
  3. انقر على Check capacity. يأخذ الفحص في الحسبان فقط ما يضيفه التغيير إلى ما يستخدمه التطبيق حاليًا.
  4. انقر على Upgrade.

يمكنك أيضًا استخدام Upgrade دون إصدار جديد، لتغيير قيم التطبيق.

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

إلغاء تثبيت تطبيق ​

  1. انقر على زر الحذف في القائمة، أو على Uninstall في لوحة تفاصيل التطبيق.
  2. أكّد العملية.

يُزال التطبيق والكائنات التي أنشأها. قد تُحذف أيضًا وحدات التخزين التي أنشأها التطبيق، بحسب التطبيق. يبقى الـ namespace؛ احذفه من Cluster >> Namespaces إذا لم تعد بحاجة إليه. كما تُبقي المشغّلات مثل CloudNativePG وStrimzi ومشغّلات Percona تعريفات الموارد المخصصة (CRDs) والموارد التي أنشأتها بها، حتى لا تُحذف بياناتك عن طريق الخطأ.

إذا امتلأ التجمع منذ التثبيت وتعذّر بدء خطوات إلغاء تثبيت التطبيق، يُرفض إلغاء التثبيت مع الرسالة The app cannot be uninstalled cleanly right now والموارد الناقصة وأصغر حجم تجمع يكفي، ولا يُزال أي شيء. كبّر التجمع أو حرّر بعض المساحة، ثم أعد محاولة إلغاء التثبيت.

لا يمكن إلغاء تثبيت التطبيقات الموجودة في namespaces النظام في Kubernetes (kube-system وkube-public وkube-node-lease) من هنا.

الفوترة ​

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

القيود ​

  • تتوفر Cluster Apps لتجمعات Autopilot. التجمعات المضافة إلى Explorer عبر kubeconfig غير مدعومة.
  • لا يُمنح التطبيق اسم مضيف (hostname) عامًا. يمكنك الوصول إليه من داخل التجمع عبر الـ Services الخاصة به، أو إتاحته بنفسك، مثلًا باستخدام NGINX Ingress Controller من الكتالوج. تحتاج نقطة الوصول العامة إلى عنوان IP محجوز (reserved IP)؛ حدّده في قيم المتحكم عبر controller.service.loadBalancerIP.