يُعد Kubernetes نظام أساسي مفتوح المصدر لإدارة كتل التطبيقات والخدمات المحفوظة في حاويات، وغالبًا ما يُوصف باسم "نظام تشغيل السحابة". تم تطوير Kubernetes بواسطة مهندسي Google، جو بيدا وبريندان بيرنز وكريج مكلوكي، في عام 2014 وأصبح مفتوح المصدر بعدها بوقت قصير، وسرعان ما أصبح Kubernetes نظامًا بيئيًا سحابيًا أصليًا ناجحًا في حد ذاته. في الوقت الحالي، تتم إدارة نظام Kubernetes، والذي يعني "قائد الدفة" أو "القبطان" في اللغة اليونانية القديمة، بواسطة Cloud Native Computing Foundation (CNCF)، والتي تعد جزءًا من مشاريع Linux Foundation.
كان Kubernetes أول مشروع تخرج من CNCF، وأصبح من أسرع المشاريع مفتوحة المصدر نموًا في التاريخ. أصبح لدى Kubernetes الآن أكثر من 2,300 مساهم، وقد تم اعتماده على نطاق واسع من قِبل الشركات الكبيرة والصغيرة، بما في ذلك نصف Fortune 100.
للبدء، فيما يلي بعض المصطلحات الرئيسية المتعلقة بـ Kubernetes. توجد قائمة أكثر شمولاً متاحة في صفحة Kubernetes Standardized Glossary. يمكنك أيضًا الاستفادة من صفحة Kubernetes Cheat Sheet، التي تحتوي على قائمة بأوامر وعلامات kubectl شائعة الاستخدام.
هي مجموعة من الأجهزة يُشار إليها بشكل فردي بنقاط التوصيل المستخدمة لتشغيل التطبيقات ذات الحاويات التي تديرها Kubernetes.
هي جهاز افتراضي أو فعلي. تتكون الكتلة من نقطة توصيل رئيسية وعددًا من نقاط التوصيل العاملة.
هي صورة تحتوي على برنامج وتبعياته.
عبارة عن حاوية واحدة أو مجموعة من الحاويات قيد التشغيل في كتلة Kubernetes الخاصة بك.
هي كائن يدير التطبيقات المكرّرة الممثّلة بواسطة نقاط الخدمة. يتم نشر وحدات التنفيذ الأساسية في نقاط توصيل الكتلة.
تضمن تشغيل عدد محدّد من النسخ المكرّرة لوحدة التنفيذ الأساسية في وقت واحد.
تصف كيفية الوصول إلى التطبيقات التي تمثلها مجموعة من وحدات التنفيذ الأساسية. تصف الخدمات عادةً المنافذ وموازنات التحميل، ويمكن استخدامها للتحكم في الوصول الداخلي والخارجي إلى الكتلة.
KubeCon هو المؤتمر السنوي لمطوري Kubernetes ومستخدميه. أصبح مؤتمر KubeCon، منذ عقده لأول مره في عام 2015 بحضور 500 شخص، حدثًا مهمًا لمجتمع السحابة الأصلية. في عام 2019، اجتذب إصدار KubeCon في مدينة سان دييغو بكاليفورنيا 12000 من المطورين ومهندسي موثوقية الموقع الذين كانوا يحتفلون بنجاح النظام البيئي مفتوح المصدر حول النظام الأساسي لتنسيق السحابة في Kubernetes.
مع تزايد انتشار المطورين للبرامج للحصول على مجموعة متنوعة من بيئات الحوسبة باستخدام السحب المختلفة، وبيئات الاختبار، وأجهزة الكمبيوتر المحمولة، والأجهزة، وأنظمة التشغيل، والأنظمة الأساسية، فإن مسألة تشغيل البرامج بشكل موثوق به تعتبر مسألة بالغة الأهمية. وهنا تأتي الحاويات: فهي تجمع تطبيقًا ببيئة وقت التشغيل بأكملها. وبهذا المعنى، تمثل الحاويات شكلاً من أشكال المحاكاة الافتراضية لأنها توفّر "فقاعة" يستطيع التطبيق أن يعمل فيها بتضمين المكتبات والتبعيات وأنظمة التشغيل الصحيحة. ومع ذلك، تكون الحاويات أصغر من الأجهزة الافتراضية لأنها تحتوي فقط على الموارد التي يحتاج إليها التطبيق، ولا أكثر من ذلك.
على الرغم من وجود حاويات Linux منذ عام 2008، فقد تطلب الأمر ظهور حاويات Docker في عام 2013 لجعلها مشهورة. وبالمثل، أدّى تزايد الاهتمام بنشر التطبيقات المحفوظة في حاويات، أي التطبيقات التي تحتوي على كل ما تحتاجه للتشغيل، إلى خلق مشكلة جديدةفي النهاية تتمثل في: إدارة آلاف الحاويات. ينسّق Kubernetes تلقائيًا دورة حياة الحاوية، ويوزع الحاويات عبر البنية الأساسية للاستضافة. يوسّع نظام Kubernetes نطاق الموارد إلى أعلى أو أسفل، وفقًا للطلب. ويقوم بتوفير سلامة الحاويات وجدولتها وحذفها ومراقبتها.
المكونات الرئيسية لـ Kubernetes هي الكتل ونقاط التوصيل ومستوى التحكّم. تحتوي الكتل على نقاط توصيل. تشتمل كل نقطة توصيل على مجموعة من جهاز عامل واحد على الأقل. تستضيف نقاط التوصيل وحدات التنفيذ الأساسية التي تحتوي على عناصر التطبيق الذي تم نشره. يدير مستوى التحكم نقاط التوصيل ووحدات التنفيذ الأساسية في الكتلة، غالبًا عبر العديد من أجهزة الكمبيوتر، من أجل التوافر العالي.
يحتوي مستوى التحكم على ما يلي:
تتضمن مكونات نقطة التوصيل ما يلي:
باستخدام الحاويات، يمكنك أن تكون على ثقة بأن تطبيقاتك مدمجة بكل ما تحتاجه لتشغيلها. ولكن أثناء إضافة الحاويات، التي تحتوي غالبًا على خدمات صغيرة، يمكنك إدارتها وتوزيعها تلقائيًا باستخدام Kubernetes.
باستخدام Kubernetes، يمكن للمؤسسات:
التوسّع تلقائيًا | وجّه حزمة البرامج لأعلى أو أسفل، حسب الطلب. |
استكشاف الخدمات | البحث عن الخدمات المحفوظة في حاويات عبر DNS أو عنوان IP. |
موازنة الأحمال | تحقيق الاستقرار في حزمة البرامج عن طريق توزيع حركة مرور شبكة الاتصال. |
إدارة التخزين | اختيار التخزين المحلي أو السحابي. |
التحكم في الإصدارات | اختر أنواع الحاويات التي تريد تشغيلها، وتلك التي تريد استبدالها باستخدام صورة جديدة أو موارد حاوية. |
الحفاظ على الأمان | يمكنك تحديث كلمات المرور بأمان وكذلك رموز OAuth ومفاتيح SSH المتعلقة بصور حاوية معينة. |
على الرغم من أن نظام Kubernetes قابل للإنشاء بدرجة كبيرة ويمكنه دعم أي نوع من التطبيقات، إلا أنه قد يصعب فهمه واستخدامه. ولا يعد نظام Kubernetesالحل الصحيح دائمًا لحمل عمل معين، كما أشار عدد من أعضاء CNCF. وهذا هو السبب في أن النظام البيئي لنظام Kubernetes يحتوي على عدد من أدوات السحابة الأصلية ذات الصلة التي أنشأتها المؤسسات لحل مشكلات أعباء العمل المحددة.
يقوم Kubernetes بنشر الحاويات، وليس التعليمات البرمجية للمصدر، ولا يقوم بإنشاء التطبيقات. ستحتاج إلى أدوات إضافية من أجل التسجيل والبرمجيات الوسيطة والمراقبة والتكوين وCI/CD والعديد من أنشطة الإنتاج الأخرى. ومع ذلك، فإن Kubernetes قابل للتوسّع وأثبت أنه بارع في مجموعة متنوعة من حالات الاستخدام بدءًا من الطائرات النفاثة إلى التعلّم الآلي. في الواقع، استخدم موردو السحابة، بما في ذلك Oracle وGoogle وAmazon Web Services وغيرهم، قابلية التوسّع الخاصة بـ Kubernetes لبناء نظام Kubernetes المُدار، وهي خدمات تقلل من التعقيد وتزيد من إنتاجية المطورين.
يُعد Kubernetes Engine للبنية التحتية السحابية خدمة مُدارة مألوفة للمطورين يمكنك استخدامها لنشر تطبيقاتك المحفوظة في حاويات على السحابة. استخدم Kubernetes Engine عندما يريد فريق التطوير الخاص بك إنشاء تطبيقات سحابية أصلية ونشرها وإدارتها بشكل موثوق. أنت تحدد موارد الحوسبة التي تتطلبها تطبيقاتك، ويوفرها Kubernetes Engine ضمن مثيل قاعدة بيانات المؤجر للبنية التحتية السحابية الحالي.
على الرغم من أنك لست بحاجة إلى استخدام خدمة Kubernetes المُدارة، إلا أن Kubernetes Engine للبنية التحتية السحابية الخاص بنا يُعد طريقة سهلة لتشغيل مجموعات عالية التوافر مع التحكم، والأمان، والأداء الذين يمكن التنبؤ به لبنية Oracle Cloud التحتية. يدعم Kubernetes Engine كلاًّ من الأجهزة الافتراضية والأجهزة دون أنظمة تشغيل كعُقد، كما أنه معتمد كمتوافق من قِبل CNCF. يمكنك أيضًا الحصول على جميع تحديثات Kubernetes وتظل متوافقًا مع نظام CNCF البيئي دون بذل أي جهد إضافي من جانبك.
Oracle عضو بلاتيني في Cloud Native Computing Foundation (CNCF)، وهي مجتمع مفتوح المصدر يدعم عدة عشرات من مشاريع تطوير البرامج التي يتم تنظيمها حسب مستوى النضوج. أثبتت جميع المشاريع المتدرجة (Kubernetes، وPrometheus، وEnvoy، وCoreDNS، وcontainerd، وFluentd، وJaeger، وVitess، وTUF، وHelm) أنها لا تقدر بثمن لجوانب تطوير السحابة الأصلية.
يتمتع نظام Kubernetes بأن لديه نظام بيئي كبير لدعم المشاريع التي ظهرت حوله. قد يكون الوصول إلى حل صعبًا، والبحث عن إجابات لأسئلة بسيطة يمكن أن يصل بك إلى مشكلة كبيرة. ومع ذلك، فإن الخطوات القليلة الأولى في هذا المسار بسيطة، ومن هناك يمكنك استكشاف المفاهيم المتقدمة حسب احتياجاتك. تعرّف على كيفية:
يمكن للمطورين الذين يتوقون لبدء مشروع Kubernetes الأول مراجعة بوابة المطورين حيث يمكنهم تعلّم كيفية إنشاء أول تطبيق Arm على Kubernetes أو نشر كتلة Kubernetes باستخدام shell cloud.