ما المقصود بنظام Kubernetes؟

يُعد Kubernetes نظام أساسي مفتوح المصدر لإدارة كتل التطبيقات والخدمات المحفوظة في حاويات، وغالبًا ما يُوصف باسم "نظام تشغيل السحابة". تم تطوير Kubernetes بواسطة مهندسي Google، جو بيدا وبريندان بيرنز وكريج مكلوكي، في عام 2014 وأصبح مفتوح المصدر بعدها بوقت قصير، وسرعان ما أصبح Kubernetes نظامًا بيئيًا سحابيًا أصليًا ناجحًا في حد ذاته. في الوقت الحالي، تتم إدارة نظام Kubernetes، والذي يعني "قائد الدفة" أو "القبطان" في اللغة اليونانية القديمة، بواسطة Cloud Native Computing Foundation (CNCF)، والتي تعد جزءًا من مشاريع Linux Foundation.

كان Kubernetes أول مشروع تخرج من CNCF، وأصبح من أسرع المشاريع مفتوحة المصدر نموًا في التاريخ. أصبح لدى Kubernetes الآن أكثر من 2,300 مساهم، وقد تم اعتماده على نطاق واسع من قِبل الشركات الكبيرة والصغيرة، بما في ذلك نصف Fortune 100.

Kubernetes 101 — المصطلحات الأساسية

للبدء، فيما يلي بعض المصطلحات الرئيسية المتعلقة بـ Kubernetes. توجد قائمة أكثر شمولاً متاحة في صفحة Kubernetes Standardized Glossary. يمكنك أيضًا الاستفادة من صفحة Kubernetes Cheat Sheet، التي تحتوي على قائمة بأوامر وعلامات kubectl شائعة الاستخدام.

الكتلة

هي مجموعة من الأجهزة يُشار إليها بشكل فردي بنقاط التوصيل المستخدمة لتشغيل التطبيقات ذات الحاويات التي تديرها Kubernetes.

نقطة التوصيل

هي جهاز افتراضي أو فعلي. تتكون الكتلة من نقطة توصيل رئيسية وعددًا من نقاط التوصيل العاملة.

حاوية السحابة

هي صورة تحتوي على برنامج وتبعياته.

وحدة التنفيذ الأساسية

عبارة عن حاوية واحدة أو مجموعة من الحاويات قيد التشغيل في كتلة Kubernetes الخاصة بك.

حزمة البرامج

هي كائن يدير التطبيقات المكرّرة الممثّلة بواسطة نقاط الخدمة. يتم نشر وحدات التنفيذ الأساسية في نقاط توصيل الكتلة.

مجموعة النسخ المكرّرة

تضمن تشغيل عدد محدّد من النسخ المكرّرة لوحدة التنفيذ الأساسية في وقت واحد.

الخدمة

تصف كيفية الوصول إلى التطبيقات التي تمثلها مجموعة من وحدات التنفيذ الأساسية. تصف الخدمات عادةً المنافذ وموازنات التحميل، ويمكن استخدامها للتحكم في الوصول الداخلي والخارجي إلى الكتلة.

ما المقصود بـ KubeCon؟

KubeCon هو المؤتمر السنوي لمطوري Kubernetes ومستخدميه. أصبح مؤتمر KubeCon، منذ عقده لأول مره في عام 2015 بحضور 500 شخص، حدثًا مهمًا لمجتمع السحابة الأصلية. في عام 2019، اجتذب إصدار KubeCon في مدينة سان دييغو بكاليفورنيا 12000 من المطورين ومهندسي موثوقية الموقع الذين كانوا يحتفلون بنجاح النظام البيئي مفتوح المصدر حول النظام الأساسي لتنسيق السحابة في Kubernetes.

ما المقصود بحاويات Kubernetes؟

مع تزايد انتشار المطورين للبرامج للحصول على مجموعة متنوعة من بيئات الحوسبة باستخدام السحب المختلفة، وبيئات الاختبار، وأجهزة الكمبيوتر الم��مولة، والأجهزة، وأنظمة التشغيل، والأنظمة الأساسية، فإن مسألة تشغيل البرامج بشكل موثوق به تعتبر مسألة بالغة الأهمية. وهنا تأتي الحاويات: فهي تجمع تطبيقًا ببيئة وقت التشغيل بأكملها. وبهذا المعنى، تمثل الحاويات شكلاً من أشكال المحاكاة الافتراضية لأنها توفّر "فقاعة" يستطيع التطبيق أن يعمل فيها بتضمين المكتبات والتبعيات وأنظمة التشغيل الصحيحة. ومع ذلك، تكون الحاويات أصغر من الأجهزة الافتراضية لأنها تحتوي فقط على الموارد التي يحتاج إليها التطبيق، ولا أكثر من ذلك.

Kubernetes مقابل Docker

على الرغم من وجود حاويات Linux منذ عام 2008، فقد تطلب الأمر ظهور حاويات Docker في عام 2013 لجعلها مشهورة. وبالمثل، أدّى تزايد الاهتمام بنشر التطبيقات المحفوظة في حاويات، أي التطبيقات التي تحتوي على كل ما تحتاجه للتشغيل، إلى خلق مشكلة جديدةفي النهاية تتمثل في: إدارة آلاف الحاويات. ينسّق Kubernetes تلقائيًا دورة حياة الحاوية، ويوزع الحاويات عبر البنية الأساسية للاستضافة. يوسّع نظام Kubernetes نطاق الموارد إلى أعلى أو أسفل، وفقًا للطلب. ويقوم بتوفير سلامة الحاويات وجدولتها وحذفها ومراقبتها.

ما مكونات Kubernetes؟

المكونات الرئيسية لـ Kubernetes هي الكتل ونقاط التوصيل ومستوى التحكّم. تحتوي الكتل على نقاط توصيل. تشتمل كل نقطة توصيل على مجموعة من جهاز عامل واحد على الأقل. تستضيف نقاط التوصيل وحدات التنفيذ الأساسية التي تحتوي على عناصر التطبيق الذي تم نشره. يدير مستوى التحكم نقاط التوصيل ووحدات التنفيذ الأساسية في الكتلة، غالبًا عبر العديد من أجهزة الكمبيوتر، من أجل التوافر العالي.

تعريف Kubernetes

يحتوي مستوى التحكم على ما يلي:

  • خادم واجهة برمجة تطبيقات Kubernetes: يوفّر واجهة برمجة (API) للتحكم في Kubernetes
  • etcd: متجر ذو قيمة أساسية لبيانات الكتلة
  • مجدول Kubernetes: يطابق وحدات التنفيذ الأساسية الجديدة بنقاط التوصيل المتاحة
  • مدير التحكم في Kubernetes: يقوم بتشغيل عددًا من العمليات لإدارة فشل نقطة التوصيل والتحكم في النسخ المكرّرة والربط بين الخدمات ووحدات التنفيذ الأساسية عبر نقاط النهاية والتحكم في الحسابات ورموز الوصول
  • مدير التحكم في السحابة: يساعد على إدارة واجهات برمجة التطبيقات من موفّري خدمات سحابية محددين حول جوانب، مثل مسارات بنية أساسية محددة وموازنة حمل

تتضمن مكونات نقطة التوصيل ما يلي:

  • kubelet: وكيل يقوم بالتحقق من تشغيل الحاويات في وحدة التنفيذ الأساسية
  • وكيل شبكة Kubernetes: يحافظ على قواعد الشبكة
  • Docker أو containerd أو نوع آخر من وقت تشغيل الحاوية

ما مزايا Kubernetes؟

باستخدام الحاويات، يمكنك أن تكون على ثقة بأن تطبيقاتك مدمجة بكل ما تحتاجه لتشغيلها. ولكن أثناء إضافة الحاويات، التي تحتوي غالبًا على خدمات صغيرة، يمكنك إدارتها وتوزيعها تلقائيًا باستخدام Kubernetes.

باستخدام Kubernetes، يمكن للمؤسسات:

التوسّع تلقائيًا وجّه حزمة البرامج لأعلى أو أسفل، حسب الطلب.
استكشاف الخدمات البحث عن الخدمات المحفوظة في حاويات عبر DNS أو عنوان IP.
موازنة الأحمال تحقيق الاستقرار في حزمة البرامج عن طريق توزيع حركة مرور شبكة الاتصال.
إدارة التخزين اختيار التخزين المحلي أو السحابي.
التحكم في الإصدارات اختر أنواع الحاويات التي تريد تشغيلها، وتلك التي تريد استبدالها باستخدام صورة جديدة أو موارد حاوية.
الحفاظ على الأمان يمكنك تحديث كلمات المرور بأمان وكذلك رموز OAuth ومفاتيح SSH المتعلقة بصور حاوية معينة.

ما هي تحديات استخدام Kubernetes؟

على الرغم من أن نظام Kubernetes قابل للإنشاء بدرجة كبيرة ويمكنه دعم أي نوع من التطبيقات، إلا أنه قد يصعب فهمه واستخدامه. ولا يعد نظام Kubernetesالحل الصحيح دائمًا لحمل عمل معين، كما أشار عدد من أعضاء CNCF. وهذا هو السبب في أن النظام البيئي لنظام Kubernetes يحتوي على عدد من أدوات السحابة الأصلية ذات الصلة التي أنشأتها المؤسسات لحل مشكلات أعباء العمل المحددة.

يقوم Kubernetes بنشر الحاويات، وليس التعليمات البرمجية للمصدر، ولا يقوم بإنشاء التطبيقات. ستحتاج إلى أدوات إضافية من أجل التسجيل والبرمجيات الوسيطة والمراقبة والتكوين وCI/CD والعديد من أنشطة الإنتاج الأخرى. ومع ذلك، فإن Kubernetes قابل للتوسّع وأثبت أنه بارع في مجموعة متنوعة من حالات الاستخدام بدءًا من الطائرات النفاثة إلى التعلّم الآلي. في الواقع، استخدم موردو السحابة، بما في ذلك Oracle وGoogle وAmazon Web Services وغيرهم، قابلية التوسّع الخاصة بـ Kubernetes لبناء نظام Kubernetes المُدار، وهي خدمات تقلل من التعقيد وتزيد من إنتاجية المطورين.

ما المقصود بنظام Kubernetes المُدار؟

تعمل Cloud Native وKubernetes على تحويل الطريقة التي يدعم بها AgroScout الإطارات.

تعد Cloud Infrastructure Container Engine for Kubernetes خدمة مُدارة يسهل على المطورين استخدامها لنشر تطبيقاتك المحفوظة في حاويات على السحابة. استخدم Container Engine for Kubernetes عندما يريد فريق التطوير لديك إنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها بشكل موثوق. يمكنك تحديد موارد الحوسبة التي تتطلبها تطبيقاتك، ويقوم Container Engine for Kubernetes بتوفيرها ضمن عقد إيجار Cloud Infrastructure حالي.

على الرغم من أنك لست بحاجة إلى استخدام خدمة Kubernetes مُدارة، تعد خدمة Cloud Infrastructure Container Engine for Kubernetes بمثابة طريقة سهلة لتشغيل الكتل عالية التوافر مع التحكم والأمان والأداء المتوقع لـ Oracle Cloud Infrastructure. تدعم خدمة Container Engine for Kubernetes كلاً من الأجهزة المعدنية والظاهرية كنقاط توصيل، وهي معتمدة كخدمة متوافقة من قِبل CNCF. يمكنك أيضًا الحصول على جميع تحديثات Kubernetes وتظل متوافقًا مع نظام CNCF البيئي دون بذل أي جهد إضافي من جانبك.


النظام البيئي والمجتمع في Kubernetes

Oracle عضو بلاتيني في Cloud Native Computing Foundation (CNCF)، وهي مجتمع مفتوح المصدر يدعم عدة عشرات من مشاريع تطوير البرامج التي يتم تنظيمها حسب مستوى النضوج. أثبتت جميع المشاريع المتدرجة (Kubernetes، وPrometheus، وEnvoy، وCoreDNS، وcontainerd، وFluentd، وJaeger، وVitess، وTUF، وHelm) أنها لا تقدر بثمن لجوانب تطوير السحابة الأصلية.

كيفية بدء استخدام Kubernetes

يتمتع نظام Kubernetes بأن لديه نظام بيئي كبير لدعم المشاريع التي ظهرت حوله. قد يكون الوصول إلى حل صعبًا، والبحث عن إجابات لأسئلة بسيطة يمكن أن يصل بك إلى مشكلة كبيرة. ومع ذلك، فإن الخطوات القليلة الأولى في هذا المسار بسيطة، ومن هناك يمكنك استكشاف المفاهيم المتقدمة حسب احتياجاتك. تعرّف على كيفية:

  • إعداد بيئة تطوير محلية باستخدام Docker وKubernetes
  • إنشاء خدمة Java صغيرة باستخدام Helidon
  • إنشاء الخدمة الصغيرة في صورة حاوية باستخدام Docker
  • نشر الخدمة الصغيرة على كتلة Kubernetes محلية
  • توسيع الخدمات الصغيرة لأعلى وأسفل على الكتلة

Kubernetes للمطورين

يمكن للمطورين الذين يتوقون لبدء مشروع Kubernetes الأول مراجعة بوابة المطورين حيث يمكنهم تعلّم كيفية إنشاء أول تطبيق Arm على Kubernetes أو نشر كتلة Kubernetes باستخدام shell cloud.


مقدمة عن Kubernetes على OCI (8:32)