Kubernetes
استكشف كيف يؤتمت Kubernetes نشر نماذج الذكاء الاصطناعي وتوسيع نطاقها. تعلّم تنسيق Ultralytics YOLO26 على K8s لتحقيق رؤية حاسوبية عالية الأداء.
Kubernetes، الذي يُشار إليه غالبًا باسم K8s، هو منصة مفتوحة المصدر مصممة لأتمتة نشر التطبيقات المعبأة في حاويات وتوسيع نطاقها وإدارتها. طوّرته Google في الأصل، وتتولى الآن صيانته مؤسسة الحوسبة السحابية الأصلية (CNCF)، وقد أصبح Kubernetes المعيار لتنسيق البرمجيات في السحابة. وفي سياق الذكاء الاصطناعي (AI) والتعلّم الآلي (ML)، فإنه يمثل طبقة البنية التحتية الأساسية التي تتيح لفرق الهندسة إدارة مسارات العمل المعقدة، بدءًا من التدريب الموزّع ووصولًا إلى الاستدلال الإنتاجي عالي التوافر. ومن خلال تجريد العتاد الأساسي، يضمن Kubernetes تشغيل التطبيقات بشكل موثوق وفعّال، بصرف النظر عن استضافتها محليًا أو عبر موفري الخدمات السحابية العامة.
البنية الأساسية والمفاهيم#
في جوهره، يعمل Kubernetes وفق بنية عنقودية تتكوّن من مجموعة من الأجهزة العاملة التي تُسمى العُقد. وتشغّل هذه العُقد أحمال عمل الحاويات، بينما يدير مستوى التحكم الحالة العامة للعنقود. أصغر وحدة قابلة للنشر في Kubernetes هي «Pod»، وهي تغلّف حاوية واحدة أو أكثر تتشارك موارد التخزين والشبكة. ويُعد هذا التجريد حيويًا لتطبيقات الرؤية الحاسوبية، إذ يتيح للمطورين حزم التبعيات—مثل مكتبات CUDA المحددة الخاصة بـوحدات معالجة الرسومات (GPUs)—ضمن بيئة متسقة. وتوفر خدمات سحابية رئيسية مثل Amazon Elastic Kubernetes Service (EKS) وAzure Kubernetes Service (AKS) وGoogle Kubernetes Engine (GKE) إصدارات مُدارة من هذه البنية، مما يبسّط عبء الصيانة على فرق علوم البيانات.
أهمية Kubernetes للذكاء الاصطناعي#
تكمن القيمة الأساسية لـ Kubernetes في عمليات التعلّم الآلي (MLOps) في قدرته على التعامل مع أحمال العمل الديناميكية. وغالبًا ما تتطلب نماذج الذكاء الاصطناعي قدرة حوسبية هائلة أثناء التدريب وزمن استجابة منخفضًا للاستدلال أثناء النشر.
- قابلية التوسّع: يستخدم Kubernetes التوسّع التلقائي لضبط الموارد آليًا. وإذا حدثت زيادة مفاجئة في حركة المرور، فيمكن لموسّع نطاق Pod الأفقي زيادة عدد وحدات Pod الخاصة بالاستدلال للحفاظ على قابلية التوسّع دون تدخل يدوي.
- تحسين الموارد: يُعد تخصيص العتاد مرتفع التكلفة بكفاءة أمرًا بالغ الأهمية. ويتيح Kubernetes المشاركة الجزئية لوحدات GPU وتقارب العُقد، مما يضمن استهلاك نماذج التعلّم العميق للموارد فقط عندما تتطلبها المهام النشطة.
- النشر المرن: يُعد ضمان التوافر العالي أثناء نشر النموذج أمرًا أساسيًا. فإذا تعطّلت إحدى العُقد، يعيد Kubernetes تشغيل وحدات Pod المتأثرة تلقائيًا على عُقد سليمة، مما يمنع التوقف عن العمل لخدمات API الحيوية.
التطبيقات الواقعية#
يشكّل Kubernetes العمود الفقري للعديد من تطبيقات الذكاء الاصطناعي واسعة النطاق في مختلف القطاعات:
-
إدارة حركة المرور في المدن الذكية: قد تنشر إحدى البلديات نماذج Ultralytics YOLO26 لتحليل تدفقات الفيديو من آلاف التقاطعات. وباستخدام Kubernetes، يمكن للنظام توسيع الموارد ديناميكيًا خلال ساعات الذروة للتعامل مع زيادة حمل اكتشاف الأجسام، ثم تقليصها ليلًا لتوفير التكاليف. ويُعد هذا النهج أساسيًا لـأنظمة إدارة حركة المرور الحديثة.
-
تخصيص التجارة الإلكترونية: يستخدم تجار التجزئة عبر الإنترنت أنظمة توصية معقدة مبنية على الخدمات المصغّرة. فقد تتولى إحدى الخدمات إنشاء المرشحين، بينما تدير خدمة أخرى إعادة الترتيب. وينسّق Kubernetes هذه الخدمات المنفصلة، مما يتيح للفرق تحديث الشبكة العصبية الخاصة بالترتيب بشكل مستقل دون تعطيل تجربة التسوق بأكملها، ويسهّل التكامل المستمر.
التمييز بين Kubernetes وDocker#
من نقاط الالتباس الشائعة العلاقة بين Kubernetes وDocker. فهما ليسا تقنيتين متنافستين، بل تقنيتان متكاملتان. Docker أداة لإنشاء حاويات فردية وتشغيلها (أي حزم التطبيق)، بينما Kubernetes أداة لإدارة مجموعة من تلك الحاويات عبر أجهزة متعددة. تستخدم Docker لبناء أوزان النموذج والتعليمات البرمجية في صورة، ثم تستخدم Kubernetes لتحديد مكان تشغيل تلك الصورة ووقته وعدد نُسخها في بيئة الإنتاج.
مثال: برنامج نصي للاستدلال من أجل الحاويات#
لنشر نموذج على Kubernetes، يبدأ المطورون عادةً ببرنامج نصي Python يعمل كنقطة دخول للحاوية. يوضح الرمز التالي مهمة استدلال بسيطة باستخدام نموذج Ultralytics YOLO26. وسيُشغّل هذا البرنامج النصي داخل Pod لمعالجة الطلبات الواردة.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")الأدوات والمنظومة#
تضم منظومة Kubernetes مجموعة واسعة من الأدوات المصممة لعلوم البيانات. وتُعد Kubeflow حزمة أدوات شائعة مكرسة لجعل عمليات نشر مسارات عمل ML على Kubernetes بسيطة وقابلة للنقل وقابلة للتوسّع. ولمراقبة صحة العنقود ومقاييس التطبيق، يعتمد المهندسون غالبًا على Prometheus. ولتبسيط تعقيد تدريب النماذج ونشرها في هذه البيئات بدرجة أكبر، توفر منصة Ultralytics واجهة موحّدة تعمل على أتمتة إدارة مجموعات البيانات وتدريب النماذج، مما يتيح للمستخدمين تصدير نماذج جاهزة لعناقيد الحوسبة السحابية. بالإضافة إلى ذلك، تساعد مديري الحزم مثل Helm في إدارة تطبيقات Kubernetes المعقدة من خلال مخططات قابلة لإعادة الاستخدام.









