Kubernetes
استكشف كيف يقوم Kubernetes بأتمتة نشر وتوسيع نماذج الذكاء الاصطناعي. تعلم تنظيم Ultralytics YOLO26 على K8s لرؤية حاسوبية عالية الأداء.
Kubernetes، التي يُشار إليها غالباً باسم K8s، هي منصة مفتوحة المصدر مصممة لأتمتة نشر وتوسيع نطاق وإدارة التطبيقات التي تعتمد على الحاويات. تم تطوير Kubernetes في الأصل بواسطة Google وتتم صيانتها الآن من قبل مؤسسة الحوسبة السحابية الأصلية (CNCF)، وقد أصبحت المعيار القياسي لتنسيق البرمجيات في السحابة. وفي سياق الذكاء الاصطناعي (AI) وتعلم الآلة (ML)، تعمل كطبقة بنية تحتية حيوية تسمح لفرق الهندسة بإدارة سير العمل المعقد، بدءاً من التدريب الموزع وصولاً إلى استنتاج الإنتاج عالي التوافر. من خلال تجريد الأجهزة الأساسية، تضمن Kubernetes تشغيل التطبيقات بشكل موثوق وفعال، بغض النظر عما إذا كانت مستضافة في مقر العمل أو عبر موفري السحابة العامة.
Link to this sectionالبنية الأساسية والمفاهيم#
في جوهرها، تعمل Kubernetes على بنية عنقودية (cluster) تتكون من مجموعة من أجهزة العامل التي تسمى العقد (nodes). تقوم هذه العقد بتشغيل أحمال عمل الحاويات، بينما تدير لوحة التحكم الحالة العامة للعنقود. أصغر وحدة قابلة للنشر في Kubernetes هي "Pod"، والتي تغلف حاوية واحدة أو أكثر تتشارك في موارد التخزين والشبكة. يعد هذا التجريد أمراً حيوياً لتطبيقات الرؤية الحاسوبية، حيث يسمح للمطورين بحزم التبعيات - مثل مكتبات CUDA المحددة لـ وحدات معالجة الرسومات (GPUs) - في بيئة متسقة. توفر خدمات سحابية كبرى مثل Amazon Elastic Kubernetes Service (EKS)، وAzure Kubernetes Service (AKS)، وGoogle Kubernetes Engine (GKE) إصدارات مُدارة من هذه البنية، مما يبسط عبء الصيانة لفرق علوم البيانات.
Link to this sectionلماذا تعد Kubernetes مهمة للذكاء الاصطناعي#
تكمن القيمة الأساسية لـ Kubernetes في عمليات تعلم الآلة (MLOps) في قدرتها على التعامل مع أحمال العمل الديناميكية. غالباً ما تتطلب نماذج الذكاء الاصطناعي قوة حوسبة هائلة أثناء التدريب وزمن وصول استنتاج منخفض أثناء النشر.
- القابلية للتوسع: تستخدم Kubernetes التحجيم التلقائي لضبط الموارد تلقائياً. في حال حدوث زيادة مفاجئة في حركة المرور، يمكن لـ Horizontal Pod Autoscaler زيادة عدد حاويات الاستنتاج للحفاظ على قابلية التوسع دون تدخل يدوي.
- تحسين الموارد: يعد التخصيص الفعال للأجهزة باهظة الثمن أمراً بالغ الأهمية. تتيح Kubernetes مشاركة وحدات GPU جزئياً وتقارب العقد، مما يضمن أن نماذج التعلم العميق تستهلك الموارد فقط عندما تتطلب الوظائف النشطة ذلك.
- النشر المرن: يعد ضمان التوافر العالي أثناء نشر النموذج أمراً ضرورياً. إذا فشلت عقدة ما، تقوم Kubernetes تلقائياً بإعادة تشغيل الحاويات المتأثرة على عقد سليمة، مما يمنع تعطل خدمات API المهمة.
Link to this sectionتطبيقات العالم الحقيقي#
تعد Kubernetes العمود الفقري للعديد من تطبيقات الذكاء الاصطناعي واسعة النطاق عبر مختلف الصناعات:
-
إدارة حركة المرور في المدن الذكية: قد تنشر البلدية نماذج Ultralytics YOLO26 لتحليل خلاصات الفيديو من آلاف التقاطعات. باستخدام Kubernetes، يمكن للنظام توسيع الموارد ديناميكياً خلال ساعات الذروة للتعامل مع حمل اكتشاف الكائنات المتزايد وتقليصها ليلاً لتوفير التكاليف. هذا النهج أساسي لـ أنظمة إدارة المرور الحديثة.
-
تخصيص التجارة الإلكترونية: يستخدم تجار التجزئة عبر الإنترنت أنظمة توصية معقدة مبنية على الخدمات المصغرة. قد تتعامل خدمة واحدة مع توليد المرشحين بينما تدير أخرى إعادة التصنيف. تنسق Kubernetes هذه الخدمات المتميزة، مما يسمح للفرق بتحديث الشبكة العصبية الخاصة بالتصنيف بشكل مستقل دون تعطيل تجربة التسوق بأكملها، مما يسهل التكامل المستمر.
Link to this sectionالفرق بين Kubernetes و Docker#
نقطة ارتباك شائعة هي العلاقة بين Kubernetes وDocker. إنهما ليسا منافسين بل تقنيات متكاملة. Docker هو أداة لإنشاء وتشغيل الحاويات الفردية (تغليف التطبيق)، بينما Kubernetes هي أداة لإدارة أسطول من تلك الحاويات عبر أجهزة متعددة. أنت تستخدم Docker لبناء أوزان النموذج والتعليمات البرمجية في صورة (image)، ثم تستخدم Kubernetes لتحديد أين ومتى وكم عدد نسخ تلك الصورة التي سيتم تشغيلها في الإنتاج.
Link to this sectionمثال: برنامج استنتاج للتغليف في حاويات#
لنشر نموذج على 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.")Link to this sectionالأدوات والنظام البيئي#
تتضمن منظومة Kubernetes مجموعة واسعة من الأدوات المصممة لعلوم البيانات. Kubeflow هي مجموعة أدوات شهيرة مخصصة لجعل عمليات نشر سير عمل تعلم الآلة على Kubernetes بسيطة وقابلة للنقل وقابلة للتوسع. لمراقبة صحة العنقود ومقاييس التطبيق، يعتمد المهندسون غالباً على Prometheus. ولتبسيط تعقيد تدريب ونشر النماذج في هذه البيئات بشكل أكبر، تقدم منصة Ultralytics واجهة موحدة تعمل على أتمتة إدارة مجموعات البيانات وتدريب النماذج، مما يسمح للمستخدمين بتصدير نماذج جاهزة لعناقيد الحوسبة السحابية. بالإضافة إلى ذلك، تساعد مديرات الحزم مثل Helm في إدارة تطبيقات Kubernetes المعقدة من خلال مخططات قابلة لإعادة الاستخدام.






