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

ولكن بينما يوفر Kubernetes الكثير من ميزات النظام الأساسي كخدمة (PaaS) ، فإنه لا يوفر في الواقع أي جهاز. Kubernetes هو برنامج خالص ومفتوح المصدر. تعتمد أنظمة PaaS مثل AWS EKS على نظام Kubernetes ، وفي كثير من الحالات توفر لها القدرة على توفير المزيد من الموارد لنفسها (التوسع التلقائي).
لماذا استخدم Kubernetes؟
يجلب Kubernetes معه جميع مزايا Docker ، والتعبئة بالحاويات بشكل عام. تساعد الحاويات في الحفاظ على الكود الخاص بك منظمًا ومُدارًا ، مع كل التبعيات في مكان واحد. سيتم تشغيل الكود الخاص بك بنفس الطريقة في بيئة التطوير والاختبار كما هو الحال في الإنتاج ، ولا توجد مفاجآت.
صور Docker التي يتم تشغيلها على النظام الأساسي Kubernetes منفصلة عن النظام الأساسي نفسه ، وليس لديها أي فكرة عن تشغيلها في حاضنات Kubernetes.هذا الفصل بين التطبيقات والبنية التحتية يجعل Kubernetes قويًا للغاية كبديل لدورة النشر الحالية. لا داعي للقلق بشأن ما إذا كان الرمز الخاص بك سيعمل بشكل صحيح على خوادمك.
تضع دورة التطوير السريع مزيدًا من الضغط على فريق العمليات لديك للقلق بشأن تشغيل الكود الخاص بك بالفعل. إذا كنت تواجه مشكلات في إدارة تثبيت وتهيئة تطبيقك عبر خوادمك في كل مرة تحتاج فيها شفرتك إلى التحديث ، فيمكن لـ Kubernetes جعل ذلك أسرع بكثير.
وإذا كنت حقًا لا تحب تكوين الخوادم وإدارتها ، فإن خدمة Kubernetes المُدارة مثل AWS EKS يمكنها التخفيف من هذه المشكلة ، وجعل تطبيقك "بدون خادم".
كيف أبدأ؟
Kubernetes حيادي الخدمة ، لذا يمكنك إعدادها بنفسك على الخوادم الخاصة بك إذا كنت ترغب في ذلك. ومع ذلك ، فإن Kubernetes معقد للغاية ، لذلك هناك العديد من الحلول الجاهزة من مزودي الخدمات السحابية الرئيسيين الذين يستخدمون مواردهم لتشغيل عقد العمل الخاصة بك.ستكون جميعها متوافقة مع Kubernetes ، لذا ستتمكن من التبديل بينها بأقل قدر من المشكلات.
إذا كنت ترغب في إعداده بنفسك ، فيمكنك القيام بذلك باستخدام مربع الأدوات
kubeadm
. ستحتاج إلى آلة رئيسية لتشغيل
kubeadm
on ، والتي ستتحكم في واحد أو أكثر من آلات العمال التي تعمل
kubeletتدير الآلة الرئيسية نشر الحاوية لآلات العمال. يمكنك قراءة دليل البدء الخاص بهم في مستندات Kubernetes للحصول على مزيد من المعلومات ، ولكن كن مستعدًا لليلة من التكوين.
AWS EKS هو حل Amazon ، والذي يمكنه تشغيل تطبيقات Kubernetes عبر مناطق توافر AWS المتعددة. لا يتطلب EKS الكثير من التكوين على الإطلاق ؛ كل ما عليك فعله هو توفير عقد جديدة. أنت تدفع 0.20 دولارًا لكل ساعة (150 دولارًا شهريًا) لكل مجموعة قيد التشغيل ، بالإضافة إلى الدفع مقابل موارد EC2 و EBS التي تستهلكها عقدك العاملة.

إذا كنت لا تحتاج إلى مجموعة Kubernetes كاملة ، ولكنك لا تزال ترغب في تشغيل التطبيقات المعبأة في حاويات ، يمكنك استخدام خدمة Elastic Container Service (ECS) من AWS. تقوم شركة ECS بتشغيل حاويات Docker ، ولها نظام تحجيم خاص بها.
خدمة Azure Kubernetes (AKS) من Microsoft هي خدمة Kubernetes مُدارة تتكامل جيدًا مع خط أنابيب Azure ، مما يجعل من السهل الانتقال من التعليمات البرمجية في التحكم بالمصادر إلى الحاويات المنشورة عبر مجموعة Kubernetes.
Google هو المنشئ الأصلي لـ Kubernetes ، لذلك من الطبيعي أن يقدموا خدمة Kubernetes مُدارة من خلال Google Cloud Platform.