ما هو Kubernetes ولماذا يجب أن أتعلمه؟

تعد Kubernetes (K8s) واحدة من أفضل المهارات التقنية التي تستحق التعلم في عام 2023، حيث قفز عدد الوظائف المفتوحة التي تتطلب خبرة K8s بنسبة 11٪ في العام الماضي.
في هذه المقالة، يجيب نايجل بولتون، خبير Kubernetes والمؤلف الأكثر مبيعًا، على بعض الأسئلة الشائعة حول هذه المنصة وفوائدها وقيودها، وما هي مصادر التعلم التي يمكنك استخدامها للبدء.
ما هو كوبيرنيتيس؟
Kubernetes عبارة عن منصة مفتوحة المصدر لنشر وإدارة التطبيقات الموجودة في حاويات . على المستوى العالي، يتكون Kubernetes من شيئين:
1. كتلة
2. منسق
تحتوي مجموعة Kubernetes على جهاز واحد أو أكثر يوفر وحدة المعالجة المركزية (CPU) والذاكرة والأشياء الأخرى المطلوبة لتشغيل التطبيقات. يقوم عنصر التنسيق بتنفيذ الذكاء لإدارة التطبيقات.
تاريخ موجز لKubernetes
بدأ Kubernetes حياته داخل Google حيث تم تصميمه كمنسق للحاويات بناءً على الدروس المستفادة من تقنيات Google الداخلية الأخرى مثل Borg وOmega.
تم إصدار Kubernetes للمجتمع كمشروع مفتوح المصدر في صيف عام 2014.
في مارس 2018، أصبح Kubernetes أول مشروع يتخرج من مؤسسة Cloud Native Computing Foundation (CNCF). يدل التخرج على حوكمة قوية للمشروع ونضجه وأن المشروع يعتبر جاهزًا للإنتاج.
أصبحت Kubernetes الآن تقنية ناضجة حيث يبلغ متوسطها ثلاث إصدارات سنويًا. تتوافق الإصدارات مع السياسات الراسخة لإضافة الميزات وإيقافها.
كان عام 2020 عامًا رئيسيًا لاعتماد Kubernetes. تقدم معظم السحابات الرئيسية خدمات Kubernetes مُدارة مصممة لتسهيل بدء استخدام Kubernetes للأفراد والمؤسسات قدر الإمكان.
كملاحظة جانبية، أراد مؤسسو Kubernetes الأصليون تسميتها “Seven of Nine” على اسم طائرة Borg بدون طيار من Star Trek Voyager.
ومع ذلك، نظرًا لقيود حقوق الطبع والنشر، قرر المؤسسون تسميتها “Kubernetes” استنادًا إلى الكلمة اليونانية التي تعني قائد الدفة.
ومع ذلك، فقد أعطوا شعار عجلة Kubernetes سبع مكبرات، بدلاً من الستة أو الثمانية التقليدية، كمرجع دقيق إلى “سبعة من تسعة”.
ما هي مجموعة Kubernetes؟
مجموعة Kubernetes عبارة عن عقدة واحدة أو أكثر تعمل معًا لتشغيل التطبيقات الموجودة في حاويات. تقوم عقد مستوى التحكم بتنفيذ الذكاء مثل الجدولة والإصلاح الذاتي والقياس التلقائي.
توفر العقد العاملة وحدة المعالجة المركزية والذاكرة والشبكات اللازمة لتنفيذ تطبيقات المستخدم.
ما هي عقدة Kubernetes؟
Kubernetes عبارة عن مجموعة من العقد التي تستضيف تطبيقات المستخدم. العقد هي إما عقد مستوى التحكم التي تنفذ ذكاء Kubernetes، أو العقد العاملة التي تستضيف تطبيقات المستخدم
يمكن أن يكون كلا النوعين خوادم فعلية، وأجهزة افتراضية، ومثيلات سحابية، وحتى أشياء مثل Raspberry Pis.
عقد مستوى التحكم
تقوم عقد مستوى التحكم (المعروفة سابقًا باسم الماجستير) بتشغيل خدمات مستوى التحكم، والتي يمكن اعتبارها عقل Kubernetes.
تتضمن هذه الخدمات المجدول وخادم API ومخزن المجموعة. يجب عليك نشر ثلاث أو خمس عقد مستوى تحكم ونشرها عبر النطاقات الخاطئة لتحقيق التوفر العالي.
العقد العمالية
العقد العاملة هي المكان الذي يتم فيه تشغيل تطبيقات المستخدم. يعتمد حجم وعدد العقد العاملة في المجموعة على متطلبات التطبيق.
ومع ذلك، يجب عليك أيضًا نشرها عبر النطاقات الخاطئة بحيث يمكن الحفاظ على التوفر العالي للتطبيق.
شبكة جراب
تطبق كل مجموعة Kubernetes شبكة خاصة تسمى شبكة pod. هذه شبكة مسطحة كبيرة، غالبًا ما تكون شبكة VXLAN متراكبة، والتي تمتد عبر كافة العقد في المجموعة.
يتم نشر كل حجرة تطبيق في شبكة البودات، مما يعني أن كل حجرة تطبيق يمكنها التحدث مع كل حجرة تطبيق أخرى. عادةً ما تكون شبكة البودات خارج الصندوق مفتوحة على مصراعيها دون أي أمان.
في بيئات الإنتاج، يجب عليك استخدام سياسات شبكة Kubernetes والتقنيات الأخرى لتأمينها.
ما هو الكبسولة في Kubernetes؟
تعتبر Pod أصغر وحدة نشر في Kubernetes. على سبيل المثال، إذا كانت لديك حاوية ويب تحتاج إلى نشرها في Kubernetes، فيجب عليك نشرها داخل Pod.
إذا كنت بحاجة إلى توسيع نطاق خدمة الويب لأعلى أو لأسفل، فيمكنك إضافة القرون أو إزالتها.
تقوم أبسط البودات بتشغيل تطبيق واحد في حاوية، ومع ذلك، توجد أنماط أكثر تعقيدًا حيث تقوم الكبسولة الواحدة بتشغيل عدة حاويات مجانية.
ما هو “Kubernetes المُدارة”؟
قد يكون بناء مجموعات Kubernetes الخاصة بك أمرًا صعبًا. على سبيل المثال، يجب عليك تغيير حجمها لتحقيق التوفر العالي وأداء التطبيق.
يتعين عليك أيضًا الاهتمام بالمهام التشغيلية اليومية مثل التحديثات والتصحيح وإدارة الشهادات والمزيد.
يُعد Managed Kubernetes نموذجًا حيث يقوم موفر السحابة بإخفاء كل هذا التعقيد عنك ويوفر لك نقطة نهاية API آمنة لتتمكن من استخدام مجموعتك فقط.
أنت تدفع علاوة على Kubernetes المُدارة، ولكنها أقرب ما تكون إلى Kubernetes التي لا تتطلب أي جهد.
ما هو كوبيكتل؟
Kubectl هي الأداة المساعدة الرسمية لسطر أوامر Kubernetes. يتم استخدامه لإدارة عناصر البنية التحتية لـ Kubernetes بالإضافة إلى نشر تطبيقات المستخدم وإدارتها
إنه متوفر على أنظمة التشغيل Windows وLinux وmacOS والأنظمة الأساسية الأخرى ويتم تثبيته عادةً على جهاز خارج المجموعة مثل الكمبيوتر المحمول الإداري.
ما هي فوائد Kubernetes؟
غالبًا ما يُشار إلى Kubernetes باسم “نظام التشغيل السحابي”. وذلك لأنه يلخص البنية التحتية بنفس الطريقة التي يتبعها نظام التشغيل التقليدي مثل Linux أو Windows.
هناك الكثير من الفوائد لتشغيل Kubernetes، بما في ذلك تجريد البنية التحتية والتنسيق على نطاق واسع وواجهة برمجة التطبيقات المشتركة.
فكر في كيفية عمل نظام التشغيل. يمكن للمطورين كتابة تطبيقات ليتم تشغيلها على نظام التشغيل Windows دون الحاجة إلى الاهتمام بتفاصيل أجهزة الخادم الأساسية.
يمكن أيضًا ترقية الخوادم والأجهزة الافتراضية أو تبديلها دون أن يضطر مطور التطبيق إلى تغيير التطبيق.
إنه نفس الشيء مع Kubernetes. طالما أن التطبيقات مصممة للتشغيل على Kubernetes، فمن الممكن تغيير السحابة الأساسية أو النظام الأساسي للأجهزة دون الحاجة إلى تغيير التطبيق.
يمكن لهذا التجريد للبنية التحتية الأساسية أن يبسط عملية ترحيل التطبيقات من سحابة إلى أخرى.
تطبق Kubernetes أيضًا ميزات مثل الإصلاح الذاتي والقياس التلقائي الديناميكي الذي يتيح إدارة الحاويات على نطاق واسع.
لقد خلقت شعبية Kubernetes بيئة تأتي فيها العديد من المنتجات والتقنيات الجديدة إلى Kubernetes أولاً وغالبًا ما تكون مصممة خصيصًا لـ Kubernetes.
غالبًا ما يتم عرضها عبر واجهة برمجة تطبيقات Kubernetes، لذا فهي تشبه إلى حد كبير ميزات Kubernetes الأصلية.
ما هي القيود المفروضة على Kubernetes؟
اثنان من أكثر القيود شيوعًا المرتبطة بـ Kubernetes هما المنحدر شديد الانحدار وعرضه المرتكز على الحاوية.
تشتهر Kubernetes بوجود منحنى تعليمي حاد ومنحدر.
ومع ذلك، أصبح نظام Kubernetes أبسط بشكل ملحوظ في السنوات الأخيرة.
يعد مشروع Kubernetes الأساسي نفسه أسهل في التثبيت والصيانة، في حين أن المنصات السحابية الرئيسية وخدماتها المُدارة تستهلك الكثير من الجهد المبذول في استخدام Kubernetes.
في حين أن Kubernetes يمكنه تنسيق أعباء عمل الآلة الافتراضية، وأعباء العمل بدون خادم، وأعباء عمل WebAssembly، إلا أنه يتم ضبط الكثير من الحمض النووي الخاص به للعمل مع الحاويات.
على سبيل المثال، تبدأ أحمال عمل WebAssembly بسرعة لا تصدق وتمكن البنى الحقيقية المستندة إلى الأحداث من التوسع إلى الصفر.
ومع ذلك، تم تصميم Kubernetes لإدارة الحاويات التي لها أوقات بدء أطول بكثير وغير مناسبة تمامًا للتوسع إلى الصفر أو عمليات البدء الباردة الحقيقية.
ومع ذلك، فإن Kubernetes قيد التطوير المستمر وليس هناك سبب للاعتقاد بأنه لن يتكيف ليكون أكثر ملاءمة للتقنيات والأنماط الجديدة.
ما هو استخدام Kubernetes؟
يتزايد استخدام Kubernetes في جميع القطاعات تقريبًا بفضل استقراره ونضجه، بالإضافة إلى الأدوات العديدة التي تعززه.
بعبارات واسعة جدًا، يعمل Kubernetes على تبسيط قابلية التوسع والإنتاجية لتطبيقات المؤسسات. في العامين الماضيين، أصبح من الشائع أكثر بالنسبة للمؤسسات أن تقود باستخدام Kubernetes كمنصة التنسيق المفضلة لديها.
إحدى المجالات التي شهد فيها Kubernetes اعتماداً أبطأ هي الحوسبة المتطورة والبيئات الأخرى المحدودة الموارد. ويعود هذا في المقام الأول إلى كون الحاويات كبيرة جدًا ومستهلكة للموارد.
ومع ذلك، فإن الأجهزة الطرفية الأكثر قوة وتوزيعات Kubernetes الأصغر حجمًا تعمل على تغيير هذا الأمر.
على سبيل المثال، أصبح من الشائع أكثر بالنسبة لتوزيعات Kubernetes خفيفة الوزن مثل K3d أو KubeEdge أو MicroK8s نشر وإدارة التطبيقات الصغيرة المعبأة في حاويات على أجهزة Edge وIoT.
ما الفرق بين Kubernetes وDocker؟
في الماضي، تنافست Kubernetes وDocker ليكونا منسقي الحاويات المهيمنين. باختصار، فاز نظام Kubernetes، وتقوم التقنيتان الآن بأشياء مختلفة، ولكنها متكاملة.
Docker هي أداة تطوير الحاويات الأكثر شيوعًا والأكثر شعبية في حين أن Kubernetes هي أداة تشغيل الحاويات الأكثر شيوعًا.
وهذا يجعل من الشائع للأفراد والمؤسسات تطوير تطبيقاتهم باستخدام Docker، ولكن تشغيلها باستخدام Kubernetes.
ما الذي أحتاج إلى معرفته لبدء تعلم Kubernetes؟
عند تعلم Kubernetes، من المهم أن تكون منفتحًا على المفاهيم الجديدة بالإضافة إلى التقنيات الجديدة. في الواقع، من الشائع أن تكون المفاهيم أصعب في الفهم من التقنيات.
على الجانب التكنولوجي، من المفيد أن تفهم كيفية عمل الحاويات ولديك بعض الخبرة العملية معها.
على صعيد المفاهيم، يفرض عليك Kubernetes اعتماد أنماط تصميم الخدمات الصغيرة، والبنية التحتية كرمز، والبنية التحتية غير القابلة للتغيير. يتطلب ذلك منك تغيير طريقة تفكيرك بالإضافة إلى الكثير من ممارساتك الحالية.
وكمثال سريع، يجب عليك تجنب تسجيل الدخول إلى الأنظمة المباشرة لإجراء التحديثات أو الإصلاحات.
بدلاً من ذلك، يجب عليك اختبار التحديثات والإصلاحات في بيئة منفصلة، وحفظها في مستودع التحكم في الإصدار، ثم استخدام أداة GitOps لدفعها إلى البيئة المباشرة. وهذا يضمن مزامنة مستودعات المصدر والبيئات المباشرة دائمًا.
في بعض الأحيان، تخلق المصطلحات احتكاكًا، ولكن بمجرد فهم المفاهيم واحتضانها، يصبح الباقي سهلاً.
ما هي شهادات Kubernetes المتاحة؟
هناك طريقان رئيسيان للحصول على شهادة Kubernetes.
1. شهادات CNCF الرسمية
2. الشهادات الخاصة بالمنصة
تختبر شهادات CNCF الرسمية إتقانك لـ Kubernetes. يمكن تطبيق هذه المهارات في أي مكان يتم فيه نشر Kubernetes. شهادات CNCF الرسمية هي كما يلي.
- Kubernetes وCloud Native Associate (KCNA). هذا اختبار مراقب متعدد الاختيارات ولا يحتوي على عناصر عملية.
- مطور تطبيقات Kubernetes المعتمد (CKAD). هذا اختبار عملي قائم على المحاكاة.
- مدير Kubernetes المعتمد (CKA). هذا اختبار عملي قائم على المحاكاة.
- أخصائي أمان Kubernetes معتمد (CKS). هذا اختبار عملي قائم على المحاكاة.
توجد شهادات خاصة بالنظام الأساسي لمعظم الأنظمة الأساسية السحابية الرئيسية وتختبر إتقانك لـ Kubernetes باستخدام تطبيق السحابة المعينة والأدوات المرتبطة بها.
المصدر: pluralsight
شاهد المزيد: