أحدث الأخبار التقنية، مدعومة برؤى خبراء
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
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 إلى مؤسسة الحوسبة السحابية الأصلية (CNCF)، وهي مركز مفتوح المصدر ومحايد تجاه الموردين للحوسبة القائمة على بنية سحابية أصلية.
وفي مارس 2016، أصبح Kubernetes أول مشروع تستضيفه CNCF. منذ ذلك الحين، أصبحت Kubernetes أداة تنسيق الحاويات الأكثر استخدامًا على نطاق واسع لتشغيل أحمال التشغيل المستندة إلى الحاويات في جميع أنحاء العالم. ووفقًا لتقرير صادر عن CNCF، يُعد Kubernetes ثاني أكبر مشروع مفتوح المصدر في العالم بعد Linux، كما يمثل أداة تنسيق الحاويات الأساسية لدى 71% من الشركات المدرجة في قائمة Fortune 100.
وفي عام 2018، أصبح Kubernetes أول مشروع يصل إلى مرحلة التخرج لدى CNCF، ليغدو واحدًا من أسرع المشروعات المفتوحة المصدر نموًا في التاريخ. وعلى الرغم من أن خيارات أخرى لتنسيق الحاويات، وفي مقدمتها Docker Swarm وApache Mesos، حققت قدرًا من الانتشار في المراحل الأولى، سرعان ما أصبح Kubernetes الخيار الأوسع اعتمادًا.
منذ انضمام Kubernetes إلى CNCF عام 2016، ارتفع عدد المساهمين إلى 8012 مساهمًا، بزيادة قدرها 996%. وحتى وقت كتابة هذا النص، أضاف المساهمون أكثر من 123000 عملية إيداع للتغييرات إلى مستودع Kubernetes على GitHub.
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة 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): يتيح خادم واجهة برمجة التطبيقات (API) في Kubernetes الوصول إلى Kubernetes API، وهي الواجهة المستخدمة لإدارة مجموعات Kubernetes وإنشائها وتكوينها، كما يمثل نقطة الدخول لجميع الأوامر والاستعلامات.
etcd: يُعد etcd مخزنًا موزعًا ومفتوح المصدر لأزواج المفاتيح والقيم، ويُستخدم للاحتفاظ بالمعلومات المهمة التي تحتاج إليها الأنظمة الموزعة لمواصلة العمل وإدارتها. وفي Kubernetes، يدير etcd بيانات التكوين وبيانات الحالة والبيانات الوصفية.
أداة الجدولة: يتتبع هذا المكون حجيرات المنشأة حديثًا ويحدد العُقد التي ستعمل عليها. وتراعي أداة الجدولة مدى توافر الموارد وقيود تخصيصها ومتطلبات الأجهزة والبرمجيات وغير ذلك.
يتألف مدير وحدات التحكم في Kubernetes من مجموعة من وحدات التحكم المضمّنة، ويشغّل حلقة تحكم تراقب الحالة المشتركة للمجموعة وتتواصل مع خادم API لإدارة الموارد أو الحجيرات أو نقاط نهاية الخدمات. يتكون مدير وحدة التحكم من عمليات منفصلة يتم تجميعها معا لتقليل التعقيد وتشغيلها في عملية واحدة.
مدير التحكم السحابي: هذا العنصر مشابه في وظيفته لرابط وحدة التحكم والمدير. يرتبط بواجهة برمجة التطبيقات الخاصة بمزود السحابة ويفصل العناصر التي تتفاعل مع تلك المنصة السحابية عن تلك التي تتفاعل فقط داخل المجموعة.
تتولى العُقَد العاملة (Worker nodes) مسؤولية نشر التطبيقات المعبأة في الحاويات وتشغيلها وإدارتها:
Kubelet: يُعَد Kubelet وكيلًا برمجيًا يستقبل الأوامر من العقدة الرئيسية (master node) ويعمل على ضمان تشغيل الحاويات في الحجيرة.
Kube-proxy: يتم تثبيته على كل عقدة في المجموعة، ويحافظ kube-proxy على قواعد الشبكة على المضيف ويراقب التغييرات في الخدمات والحجيرات.
اليوم، هناك أكثر من 90 خدمة معتمدة لنظام Kubernetes، بما في ذلك منصات إدارة من فئة المؤسسات توفِّر أدوات وترقيات وإضافات تسرِّع تطوير وتسليم التطبيقات المعبأة في الحاويات.
وعلى الرغم من أن Kubernetes هو التقنية المفضلة لتنسيق التطبيقات السحابية القائمة على الحاويات، فإنه يعتمد على مكونات أخرى ليعمل بكامل إمكاناته، ومنها الشبكات وإدارة حركة الدخول وموازنة الأحمال والتخزين والتكامل المستمر والتسليم المستمر (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 المتاحة اليوم أدوات مؤتمتة لإدارة أداء التطبيقات (APM) وقابلية الملاحظة وإدارة موارد التطبيقات (ARM) وغيرها.
يستطيع Kubernetes نشر الحجيرات وتوسيع نطاقها، لكنه لا يُدير أو يؤتمت التوجيه بينها، ولا يوفر أدوات لمراقبة أو تأمين أو تصحيح أخطاء هذه الاتصالات.
عندما يتزايد عدد الحاويات في المجموعة، يتزايد عدد مسارات الاتصال المحتملة بينها بشكل كبير. على سبيل المثال، تحتوي حجيرتان على اتصالين محتملين، ولكن 10 حجيرات تحتوي على 90 اتصالًا، ما يشكِّل كابوسًا محتملًا في التكوين والإدارة.
توفِّر Istio، وهي طبقة شبكة خدمات قابلة للتكوين ومفتوحة المصدر، حلًا من خلال ربط الحاويات ومراقبتها وتأمينها داخل مجموعة Kubernetes. تشمل الفوائد الأخرى المهمة قدرات محسَّنة لتصحيح الأخطاء ولوحة معلومات يمكن لفرق عمليات التطوير والمسؤولين استخدامها لمراقبة زمن الانتقال وأخطاء مدة الخدمة والخصائص الأخرى للاتصالات بين الحاويات.
Knative (تنطق "kay-native") هي منصة مفتوحة المصدر توفِّر مسارًا سهلًا للحوسبة دون خادم، وهو نموذج لتطوير وتنفيذ تطبيقات الحوسبة السحابية يمكِّن المطورين من بناء وتشغيل كود التطبيق دون توفير أو إدارة خوادم أو بنية تحتية خلفية.
بدلًا من نشر مثيل مستمر من الكود الذي يظل خاملًا في انتظار الطلبات، تعمل الحوسبة دون خادم على تشغيل الكود عند الحاجة، وتوسيع نطاقه أو تقليصه مع تقلبات الطلب، ثم إيقاف الكود عندما لا يكون قيد الاستخدام. تمنع الحوسبة دون خادم إهدار سعة الحوسبة والطاقة وتقلل التكاليف لأنك تدفع فقط لتشغيل الكود عند تشغيلها.
يُعَد Tekton إطار عمل مفتوح المصدر ومحايدًا من حيث البائعين لإنشاء أنظمة التكامل المستمر والتسليم المستمر (CI/CD) تحت إشراف Continuous Delivery Foundation (CDF).
كإطار عمل لنظام Kubernetes، يساعد Tekton على تحديث التسليم المستمر من خلال توفير مواصفات صناعية للمسارات ومهام سير العمل وغيرها من اللبنات الأساسية، ما يجعل النشر عبر مزوِّدي السحابة المتعددين أو البيئات الهجينة أسرع وأسهل.
تجدر الإشارة إلى أن Tekton هو خليفة Knative Build، الذي لا يزال مدعومًا في بعض توزيعات Knative. أصبحت مسارات Tekton هي المعيار لبناء صور الحاويات ونشرها في سجل الحاويات في بيئة Kubernetes.
تستخدم المؤسسات الكبرى Kubernetes لدعم حالات الاستخدام التالية، والتي تؤدي جميعها دورًا حيويًا في تكوين البنية التحتية الحديثة لتكنولوجيا المعلومات.
التطوير القائم على بنية سحابية أصلية هو نهج لتطوير البرمجيات يُستخدم لبناء التطبيقات السحابية ونشرها وإدارتها. تتمثل الميزة الرئيسية للنهج القائم على بنية سحابية أصلية في أنه يتيح لفرق DevOps وغيرها من الفِرق تطوير التعليمات البرمجية مرة واحدة ونشرها على أي بنية تحتية سحابية لدى أي موفر خدمات سحابية.
تعتمد عملية التطوير الحديثة هذه على الخدمات المصغّرة، وهي نهج يتكوّن فيه التطبيق الواحد من عدد كبير من المكونات أو الخدمات الأصغر حجمًا، غير المحكمة الاقتران والقابلة للنشر بصورة مستقلة، وتُنشر هذه المكونات داخل حاويات يديرها Kubernetes.
يساعد Kubernetes على توفير الموارد التي تحتاج إليها كل خدمة مصغّرة لتعمل بكفاءة، مع الحد من الأعباء التشغيلية المرتبطة بالإدارة اليدوية لعدد كبير من الحاويات.
تجمع السحابة الهجينة بين السحابة العامة والسحابة الخاصة والبنية التحتية لمراكز البيانات المحلية لتكوين بنية تحتية لتكنولوجيا المعلومات موحَّدة ومرنة ومثالية من حيث التكلفة.
أما في الوقت الحالي، فقد اندمجت السحابة الهجينة مع السحابة المتعددة، وهي الخدمات السحابية العامة من أكثر من مزوِّد خدمة سحابية، لتشكيل بيئة هجينة متعددة السحابات.
يوفر النهج الهجين متعدد السحابات مرونة أكبر ويقلل اعتماد المؤسسة على مزوِّد واحد، ما يمنع التقيّد بمزوِّد محدد. نظرًا لأن Kubernetes يشكِّل الأساس لتطوير البرمجيات السحابية الأصلية، فهو عنصر أساسي لاعتماد النهج الهجين متعدد السحابات.
يدعم Kubernetes نشر التطبيقات السحابية واسعة النطاق مع التوسيع التلقائي. تُتيح هذه العملية للتطبيقات التوسع أو التقليص، والتكيف مع تغيُّرات الطلب تلقائيًا، بسرعة وكفاءة ووقت تعطل محدود.
تعني قابلية التوسع المرنة في نشر Kubernetes أنه يمكن إضافة أو إزالة الموارد استجابةً للتغيُّرات في حركة المستخدمين، مثل العروض الترويجية المفاجئة على المواقع الإلكترونية للبيع بالتجزئة.
يوفر Kubernetes المنصة السحابية الحديثة اللازمة لدعم تحديث التطبيقات، من خلال ترحيل التطبيقات القديمة المتجانسة وتحويلها إلى تطبيقات سحابية مبنية على بنية الخدمات المصغّرة.
تقع الأتمتة في صميم DevOps، إذ تسهم في تسريع تسليم برمجيات أعلى جودة من خلال الجمع بين أعمال فرق تطوير البرمجيات وعمليات تكنولوجيا المعلومات وأتمتتها.
.
يساعد Kubernetes فرق DevOps على بناء التطبيقات وتحديثها بسرعة من خلال أتمتة تكوين التطبيقات ونشرها.
تحتوي نماذج التعلم الآلي (ML) والنماذج اللغوية الكبيرة (LLM) التي تدعم الذكاء الاصطناعي على عناصر تصعب إدارتها بشكل منفصل وتستغرق وقتًا طويلًا. ومن خلال أتمتة التكوين والنشر وقابلية التوسع عبر البيئات السحابية، يساعد Kubernetes على توفير المرونة والخفة اللازمة لتدريب هذه النماذج المعقدة واختبارها ونشرها.
إذا كنت مستعدًا للبدء بالعمل مع Kubernetes أو تريد تطوير مهاراتك في Kubernetes وأدوات نظامه، جرِّب أحد هذه البرامج التعليمية:
استفِد من إمكانات الذكاء الاصطناعي والأتمتة لحل المشكلات بشكل استباقي عبر مجموعة التطبيقات.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
عزّز مرونة أعمالك ونموها من خلال التحديث المستمر لتطبيقاتك على أي منصة، وذلك باستخدام خدمات الاستشارات السحابية التي نقدمها.