Kubernetes، المعروف أيضًا باسم k8s أو kube، هو منصة مفتوحة المصدر لتنسيق الحاويات، تُستخدم لجدولة وأتمتة نشر التطبيقات المعبأة في حاويات وإدارتها وتوسيع نطاقها.
في الوقت الحالي، اندمج Kubernetes مع المنظومة الأوسع للتقنيات المتعلقة بالحاويات لتشكيل اللبنات الأساسية للبنية التحتية السحابية الحديثة. تمكِّن هذه المنظومة المؤسسات من تقديم بيئة حوسبة سحابية متعددة هجينة عالية الإنتاجية لأداء المهام المعقدة المتعلقة بالبنية التحتية والعمليات. كما تدعم التطوير السحابي الأصلي من خلال تمكين نهج البناء مرة واحدة والنشر في أي مكان لبناء التطبيقات.
كلمة Kubernetes مشتقة من اللغة اليونانية، وتعني القبطان أو الملّاح، ومن هنا جاءت الدفة في شعار Kubernetes.
الحاويات هي مكونات تطبيقية خفيفة الوزن وقابلة للتنفيذ تجمع بين مصدر الكود وجميع مكتبات نظام التشغيل (OS) والتبعيات المطلوبة لتشغيل الكود في أي بيئة.
تستفيد الحاويات من أحد أشكال المحاكاة الافتراضية لنظام التشغيل الذي يسمح لتطبيقات متعددة بمشاركة مثيل واحد من نظام التشغيل عن طريق عزل العمليات والتحكم في كمية وحدة المعالجة المركزية والذاكرة والقرص التي يمكن لهذه العمليات الوصول إليها. نظرًا لأنها أصغر حجمًا وأكثر كفاءة في استخدام الموارد وأكثر قابلية للنقل من الأجهزة الافتراضية (VMs)، أصبحت الحاويات وحدات الحوسبة الفعلية لتطبيقات السحابة الأصلية. كما أن الحاويات أكثر كفاءة في استخدام الموارد. وتُتيح لك تشغيل المزيد من التطبيقات على عدد أقل من الأجهزة (الخوادم الافتراضية والخوادم المادية) مع عدد أقل من مثيلات نظام التشغيل.
نظرًا لأن الحاويات يمكن تشغيلها بشكل متسق في أي مكان، فقد أصبحت ضرورية للبنية التحتية التي تدعم بيئات السحابة الهجينة والمتعددة، وهي مزيج من السحابة المحلية، والسحابة الخاصة، والسحابة العامة، وأكثر من خدمة سحابية من أكثر من مزوِّد سحابي.
تُعَد Docker الأداة الأكثر شهرة لإنشاء حاويات Linux وتشغيلها. رغم أن أشكال الحاويات الأولى ظهرت منذ عقود (مع تقنيات مثل FreeBSD Jails وAIX Workload Partitions)، فإن الحاويات أصبحت شائعة للجميع في 2013 عندما قدَّمت Docker تنفيذًا جديدًا صديقًا للمطوِّرين والسحابة.
بدأت Docker كمشروع مفتوح المصدر، لكنها اليوم تُشير أيضًا إلى شركة Docker Inc.، الشركة التي تُنتج Docker - وهي مجموعة أدوات حاويات تجارية تعتمد على المشروع مفتوح المصدر وتُعيد تحسيناتها إلى مجتمع المصدر المفتوح.
تم بناء Docker على تقنية الحاويات التقليدية لنظام Linux، لكنها تُتيح تقسيمًا أكثر دقة لعمليات نواة Linux وتضيف ميزات تجعل الحاويات أكثر سهولة للمطوِّرين في البناء والنشر والإدارة والتأمين.
على الرغم من وجود منصات بديلة لتشغيل الحاويات اليوم مثل Open Container Initiative (OCI) وCoreOS وCanonical (Ubuntu) LXD، فإن Docker تُعَد هي الخيار السائد. علاوةً على ذلك، أصبحت Docker مرادفًا للحاويات وغالبًا ما يُساء فهمها على أنها منافس لتقنيات تكميلية مثل Kubernetes.
اليوم، تُعَد Docker وKubernetes الأداتين الرائدتين للحاويات، حيث تسيطر Docker على 82% من السوق ويتحكم Kubernetes بحصة سوقية قدرها 11.52% في عام 2024.
مع انتشار الحاويات، قد تمتلك المؤسسة اليوم المئات أو الآلاف من الحاويات. تحتاج فرق العمليات إلى جدولة وأتمتة نشر الحاويات، والشبكات، وقابلية التوسع، والتوافر. هنا يأتي دور تنسيق الحاويات.
استنادًا إلى Borg، منصة تنسيق الحاويات الداخلية في Google، تم طرح Kubernetes للجمهور كأداة مفتوحة المصدر في عام 2014، مع انضمام Microsoft وRed Hat وIBM وغيرهم من الجهات الفاعلة في مجال التقنية كأعضاء أوائل في مجتمع Kubernetes. في عام 2015، تبرعت Google بنظام Kubernetes إلى مؤسسة Cloud Native Computing Foundation (CNCF)، المركز المفتوح المصدر والمحايد من حيث البائعين للحوسبة السحابية الأصلية.
أصبحت Kubernetes أول مشروع مستضاف لدى CNCF في مارس 2016. منذ ذلك الحين، أصبحت Kubernetes أداة تنسيق الحاويات الأكثر استخدامًا على نطاق واسع لتشغيل أعباء العمل القائمة على الحاويات في جميع أنحاء العالم. وفقًا لتقرير CNCF، تُعَد Kubernetes ثاني أكبر مشروع مفتوح المصدر في العالم (بعد Linux) والأداة الرئيسية لتنسيق الحاويات لدى 71% من شركات Fortune 100.
في عام 2018، أصبحت Kubernetes أول مشروع يتخرج لدى CNCF، لتصبح واحدة من أسرع مشاريع المصدر المفتوح نموًا في التاريخ. بينما حققت خيارات أخرى لتنسيق الحاويات، أبرزها Docker Swarm وApache Mesos، بعض الانتشار في البداية، سرعان ما أصبحت Kubernetes الأكثر اعتمادًا على نطاق واسع.
منذ انضمام Kubernetes إلى CNCF في 2016، ارتفع عدد المساهمين ليصل إلى 8,012، بزيادة قدرها 996%. حتى تاريخ كتابة هذا النص، أضاف المساهمون أكثر من 123,000 التزام (commit) إلى مستودع Kubernetes على GitHub.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.
تعمل Kubernetes على جدولة وأتمتة المهام المتعلقة بالحاويات طوال دورة حياة التطبيق، بما في ذلك ما يلي.
نشر عدد محدد من الحاويات على مضيف محدد والاحتفاظ بها قيد التشغيل في الحالة المطلوبة.
التوزيع (rollout) هو تغيير يتم إجراؤه على عملية النشر. يُتيح Kubernetes بدء التوزيع أو إيقافه مؤقتًا أو استئنافه أو التراجع عنه.
يستطيع Kubernetes كشف الحاوية تلقائيًا على الإنترنت أو على حاويات أخرى باستخدام اسم نظام أسماء النطاقات (DNS) أو عنوان IP.
اضبط Kubernetes لتركيب التخزين المحلي أو السحابي الدائم لحاوياتك حسب الحاجة.
استنادًا إلى استخدام وحدة المعالجة المركزية أو مقاييس مخصصة، يمكن لموازنة الأحمال في Kubernetes توزيع أعباء العمل عبر الشبكة للحفاظ على الأداء والاستقرار.
عند ارتفاع حركة المرور، يمكن للتوسع التلقائي في Kubernetes إنشاء مجموعات جديدة حسب الحاجة للتعامل مع زيادة أعباء العمل.
عند فشل الحاوية، يمكن لنظام Kubernetes إعادة تشغيلها أو استبدالها تلقائيًا لمنع التعطل. ويمكنه أيضًا إزالة الحاويات التي لا تُلبي متطلبات فحص السلامة لديك.
يتضمن نشر Kubernetes إنشاء المجموعات، وهي الوحدات الأساسية في بنية Kubernetes. تتكون المجموعات من العُقَد، كلٌّ منها يمثِّل مضيفًا واحدًا للحوسبة، إما جهازًا فعليًا (خادم دون نظام تشغيل) وإما جهازًا افتراضيًا.
تتكون بنية Kubernetes من جزأين رئيسيين: عناصر لوحة التحكم والعناصر التي تُدير العُقَد الفردية.
تتكون العقدة من مجموعة من الحجيرات. وهي مجموعات من الحاويات التي تشترك في الموارد الحوسبية والشبكة نفسها. وهي أيضًا وحدة قابلية التوسع في Kubernetes. إذا اكتسبت حاوية في حجيرة حركة مرور أكثر مما يمكنها التعامل معه، فسينسخ Kubernetes الحجيرات إلى العُقَد الأخرى في المجموعة.
تعالج لوحة التحكم تلقائيًا جدولة الحجيرات عبر العقدة في المجموعة.
تحتوي كل مجموعة على عقدة رئيسية تتعامل مع مستوى التحكم الخاص بالمجموعة. تشغِّل العقدة الرئيسية خدمة جدولة تعمل على أتمتة وقت ومكان نشر الحاويات بناءً على متطلبات النشر التي يحددها المطورون وسعة الحوسبة المتاحة.
المكونات الرئيسية في عنقود Kubernetes هي kube-apiserver وetcd وkube-scheduler وkube-controller-manager وcloud-controller-manager:
API server: The خادم واجهة برمجة التطبيقات (API) في Kubernetes الذي يعرض واجهة برمجة التطبيقات لنظام Kubernetes (الواجهة المستخدمة لإدارة مجموعات Kubernetes وإنشائها وتكوينها) ويعمل كنقطة دخول لجميع الأوامر والاستعلامات.
etcd: يُعَد etcd مخزنًا مفتوح المصدر موزعًا للقيم المفتاحية (key-value) ويُستخدم لتخزين وإدارة المعلومات الحيوية التي تحتاجها الأنظمة الموزعة لاستمرار عملها. في Kubernetes، يُدير etcd بيانات التكوين وبيانات الحالة والبيانات الوصفية.
Scheduler: يتتبَّع هذا العنصر الحجيرات التي تم إنشاؤها حديثًا ويختار العُقَد المناسبة لتشغيلها. يأخذ scheduler في الاعتبار توفُّر الموارد وقيود التخصيص ومتطلبات الأجهزة والبرمجيات وغيرها.
Controller-manager: مجموعة من وحدات التحكم المضمَّنة، يشغِّل مدير وحدة التحكم في Kubernetes حلقة تحكُّم تراقب الحالة المشتركة للمجموعة وتتواصل مع خادم واجهة برمجة التطبيقات لإدارة الموارد أو الحجيرات أو نقاط نهاية الخدمة. يتكوّن controller-manager من عمليات منفصلة تم تجميعها معًا لتقليل التعقيد وتشغيلها ضمن عملية واحدة.
Cloud-controller-manager: هذا العنصر مشابه في وظيفته لعنصر controller-manager. ويرتبط بواجهة برمجة التطبيقات (API) لمزوِّد السحابة ويفصل العناصر التي تتفاعل مع تلك المنصة السحابية عن العناصر التي تتفاعل فقط ضمن المجموعة.
تتولى العُقَد العاملة (Worker nodes) مسؤولية نشر التطبيقات المعبأة في الحاويات وتشغيلها وإدارتها:
Kubelet: يُعَد Kubelet وكيلًا برمجيًا يستقبل الأوامر من العقدة الرئيسية (master node) ويعمل على ضمان تشغيل الحاويات في الحجيرة.
Kube-proxy: يتم تثبيته على كل عقدة في المجموعة، ويحافظ kube-proxy على قواعد الشبكة على المضيف ويراقب التغييرات في الخدمات والحجيرات.
اليوم، هناك أكثر من 90 خدمة معتمدة لنظام Kubernetes، بما في ذلك منصات إدارة من فئة المؤسسات توفِّر أدوات وترقيات وإضافات تسرِّع تطوير وتسليم التطبيقات المعبأة في الحاويات.
بينما يُعَد Kubernetes الخيار المفضل لتنسيق التطبيقات السحابية المعتمدة على الحاويات، فإنه يعتمد على عناصر أخرى تشمل الشبكات والدخول (Ingress) وموازنة الأحمال والتخزين والتكامل المستمر (CI) والتسليم المستمر (CD)، والمزيد، ليعمل بكامل طاقته.
على الرغم من إمكانية استضافة مجموعة Kubernetes ذاتيًا في بيئة سحابية، فإن الإعداد والإدارة يمكن أن يكونا معقدين بالنسبة إلى المؤسسات الكبرى. وهنا يأتي دور خدمات Kubernetes المُدارة.
مع خدمات Kubernetes المُدارة، يُدير الموفر عادةً عناصر مستوى تحكم Kubernetes. يساعد مقدِّمو الخدمات المُدارة على أتمتة العمليات الروتينية للتحديثات وموازنة الأحمال والتوسع والمراقبة. على سبيل المثال، تُعَد Red Hat OpenShift خدمة من خدمات Kubernetes التي يمكن نشرها في أي بيئة وعلى جميع السحابات العامة الكبرى، بما في ذلك Amazon Web Services (AWS) وMicrosoft Azure وGoogle Cloud وIBM Cloud. يقدِّم العديد من مزوِّدي السحابة أيضًا خدمات Kubernetes المُدارة الخاصة بهم.
تُشير مراقبة Kubernetes إلى جمع وتحليل البيانات المتعلقة بسلامة وأداء وتكاليف التطبيقات المعبأة في الحاويات والتي تعمل داخل مجموعة Kubernetes.
تُتيح مراقبة مجموعات Kubernetes للمسؤولين والمستخدمين تتبُّع وقت التشغيل واستخدام موارد المجموعة والتفاعل بين عناصرها. تساعد المراقبة على تحديد المشكلات بسرعة مثل عدم كفاية الموارد والأعطال والعُقد التي لا يمكنها الانضمام إلى المجموعة. تتضمن حلول مراقبة Kubernetes اليوم أدوات مؤتمتة من أجل مراقبة أداء التطبيقات وقابلية الملاحظة وإدارة موارد التطبيقات وغير ذلك.
يستطيع Kubernetes نشر الحجيرات وتوسيع نطاقها، لكنه لا يُدير أو يؤتمت التوجيه بينها، ولا يوفر أدوات لمراقبة أو تأمين أو تصحيح أخطاء هذه الاتصالات.
عندما يتزايد عدد الحاويات في المجموعة، يتزايد عدد مسارات الاتصال المحتملة بينها بشكل كبير. على سبيل المثال، تحتوي حجيرتان على اتصالين محتملين، ولكن 10 حجيرات تحتوي على 90 اتصالًا، ما يشكِّل كابوسًا محتملًا في التكوين والإدارة.
توفِّر Istio، وهي طبقة شبكة خدمات قابلة للتكوين ومفتوحة المصدر، حلًا من خلال ربط الحاويات ومراقبتها وتأمينها داخل مجموعة Kubernetes. تشمل الفوائد الأخرى المهمة قدرات محسَّنة لتصحيح الأخطاء ولوحة معلومات يمكن لفرق عمليات التطوير والمسؤولين استخدامها لمراقبة زمن الانتقال وأخطاء مدة الخدمة والخصائص الأخرى للاتصالات بين الحاويات.
Knative (تنطق "kay-native") هي منصة مفتوحة المصدر توفِّر مسارًا سهلًا للحوسبة دون خادم، وهو نموذج لتطوير وتنفيذ تطبيقات الحوسبة السحابية يمكِّن المطورين من بناء وتشغيل كود التطبيق دون توفير أو إدارة خوادم أو بنية تحتية خلفية.
بدلًا من نشر مثيل مستمر من الكود الذي يظل خاملًا في انتظار الطلبات، تعمل الحوسبة دون خادم على تشغيل الكود عند الحاجة، وتوسيع نطاقه أو تقليصه مع تقلبات الطلب، ثم إيقاف الكود عندما لا يكون قيد الاستخدام. تمنع الحوسبة دون خادم إهدار سعة الحوسبة والطاقة وتقلل التكاليف لأنك تدفع فقط لتشغيل الكود عند تشغيلها.
يُعَد Tekton إطار عمل مفتوح المصدر ومحايدًا من حيث البائعين لإنشاء أنظمة التكامل المستمر والتسليم المستمر (CI/CD) تحت إشراف Continuous Delivery Foundation (CDF).
كإطار عمل لنظام Kubernetes، يساعد Tekton على تحديث التسليم المستمر من خلال توفير مواصفات صناعية للمسارات ومهام سير العمل وغيرها من اللبنات الأساسية، ما يجعل النشر عبر مزوِّدي السحابة المتعددين أو البيئات الهجينة أسرع وأسهل.
تجدر الإشارة إلى أن Tekton هو خليفة Knative Build، الذي لا يزال مدعومًا في بعض توزيعات Knative. أصبحت مسارات Tekton هي المعيار لبناء صور الحاويات ونشرها في سجل الحاويات في بيئة Kubernetes.
تستخدم المؤسسات الكبرى Kubernetes لدعم حالات الاستخدام التالية، والتي تؤدي جميعها دورًا حيويًا في تكوين البنية التحتية الحديثة لتكنولوجيا المعلومات.
السحابة الأصلية هي نهج لتطوير البرمجيات لبناء التطبيقات السحابية ونشرها وإدارتها. تتمثل الفائدة الرئيسية للسحابة الأصلية في أنها تُتيح لفرق عمليات التطوير والفرق الأخرى كتابة الكود مرة واحدة ونشره على أي بنية تحتية سحابية من أي مزوِّد خدمة سحابية.
تعتمد عملية التطوير الحديثة هذه الخدمات المصغرة، وهي نهج يتم فيه تكوين التطبيق الواحد من العديد من العناصر أو الخدمات الصغيرة المفككة والقابلة للنشر بشكل مستقل، والتي يتم نشرها داخل حاويات تُدار بواسطة Kubernetes.
يساعد نظام Kubernetes على ضمان حصول كل خدمة مصغرة على الموارد التي تحتاجها للعمل بفاعلية مع تقليل النفقات التشغيلية المرتبطة بإدارة الحاويات المتعددة يدويًا.
تجمع السحابة الهجينة بين السحابة العامة والسحابة الخاصة والبنية التحتية لمراكز البيانات المحلية لتكوين بنية تحتية لتكنولوجيا المعلومات موحَّدة ومرنة ومثالية من حيث التكلفة.
أما في الوقت الحالي، فقد اندمجت السحابة الهجينة مع السحابة المتعددة، وهي الخدمات السحابية العامة من أكثر من مزوِّد خدمة سحابية، لتشكيل بيئة هجينة متعددة السحابات.
يوفر النهج الهجين متعدد السحابات مرونة أكبر ويقلل اعتماد المؤسسة على مزوِّد واحد، ما يمنع التقيّد بمزوِّد محدد. نظرًا لأن Kubernetes يشكِّل الأساس لتطوير البرمجيات السحابية الأصلية، فهو عنصر أساسي لاعتماد النهج الهجين متعدد السحابات.
يدعم Kubernetes نشر التطبيقات السحابية واسعة النطاق مع التوسيع التلقائي. تُتيح هذه العملية للتطبيقات التوسع أو التقليص، والتكيف مع تغيُّرات الطلب تلقائيًا، بسرعة وكفاءة ووقت تعطل محدود.
تعني قابلية التوسع المرنة في نشر Kubernetes أنه يمكن إضافة أو إزالة الموارد استجابةً للتغيُّرات في حركة المستخدمين، مثل العروض الترويجية المفاجئة على المواقع الإلكترونية للبيع بالتجزئة.
يوفر Kubernetes منصة سحابية حديثة لدعم تحديث التطبيقات، من خلال ترحيل وتحويل التطبيقات الأحادية القديمة إلى تطبيقات سحابية مبنية على بنية الخدمات المصغرة.
الأتمتة هي جوهر علميات التطوير، حيث تسرِّع تسليم البرمجيات عالية الجودة من خلال دمج وأتمتة أعمال فرق تطوير البرمجيات وفرق عمليات تكنولوجيا المعلومات.
تساعد Kubernetes فرق عمليات التطوير على إنشاء التطبيقات وتحديثها بسرعة من خلال أتمتة تكوين التطبيقات ونشرها.
تحتوي نماذج التعلم الآلي (ML) والنماذج اللغوية الكبيرة (LLM) التي تدعم الذكاء الاصطناعي على عناصر تصعب إدارتها بشكل منفصل وتستغرق وقتًا طويلًا. ومن خلال أتمتة التكوين والنشر وقابلية التوسع عبر البيئات السحابية، يساعد Kubernetes على توفير المرونة والخفة اللازمة لتدريب هذه النماذج المعقدة واختبارها ونشرها.
إذا كنت مستعدًا للبدء بالعمل مع Kubernetes أو تريد تطوير مهاراتك في Kubernetes وأدوات نظامه، جرِّب أحد هذه البرامج التعليمية:
Red Hat OpenShift on IBM Cloud هي منصة حاويات OpenShift (OCP) المُدارة بالكامل.
تنفذ حلول الحاويات أعباء عمل الحاويات وتوسع نطاقها مع ميزات الأمان والابتكار مفتوحة المصدر والنشر السريع.
أطلق العنان للقدرات الجديدة وحفِّز مرونة الأعمال من خلال خدمات الاستشارات السحابية من IBM. اكتشف كيفية المشاركة في إنشاء الحلول وتسريع التحول الرقمي وتحسين الأداء من خلال إستراتيجيات السحابة الهجينة والشراكات مع الخبراء.