برنامج Kubernetes التعليمي - دليل شامل لـ Kubernetes



ستوجهك هذه المدونة على Kubernetes Tutorial إلى جميع مفاهيم نظام تزامن الحاوية من خلال التدريب العملي.

Kubernetes عبارة عن نظام أساسي يلغي العمليات اليدوية المتضمنة في نشر التطبيقات المعبأة في حاويات. في هذه المدونة على Kubernetes Tutorial ، ستتصفح جميع المفاهيم المتعلقة بحل إدارة الحاويات المتعددة هذا.

سيتم تناول الموضوعات التالية في هذا البرنامج التعليمي:





الآن ، قبل المضي قدمًا في هذه المدونة ، دعني أطلعك بسرعة على النقل بالحاويات.

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



كان التعامل مع عدد كبير من الحاويات معًا مشكلة أيضًا. في بعض الأحيان أثناء تشغيل الحاويات ، على جانب المنتج ، أثيرت بعض المشكلات التي لم تكن موجودة في مرحلة التطوير. قدم هذا النوع من السيناريوهات نظام تنظيم الحاويات.

قبل أن أتعمق في نظام التناغم ، اسمحوا لي أن أسرد بسرعة التحديات التي تواجه بدون هذا النظام.



برنامج Kubernetes التعليمي: التحديات بدون تنظيم الحاويات

التحديات بدون تنظيم الحاويات - دروس Kubernetes - Edureka

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

الآن ، لتجنب إعداد الخدمات يدويًا والتغلب على التحديات ، كانت هناك حاجة إلى شيء كبير. هذا هو المكان الذي يظهر فيه محرك تزامن الحاوية في الصورة.

يتيح لنا هذا المحرك تنظيم حاويات متعددة ، بحيث يتم تشغيل جميع الآلات الأساسية ، وتكون الحاويات صحية وموزعة في بيئة عنقودية. في عالم اليوم ، هناك نوعان أساسيان من هذه المحركات: حكام & عامل ميناء سرب .

كيفية تثبيت php 7

برنامج Kubernetes التعليمي: Kubernetes مقابل Docker Swarm

حكام و عامل ميناء سرب هي أدوات تنسيق الحاويات الرائدة في سوق اليوم. لذا قبل استخدامها في المنتج ، يجب أن تعرف ما هي بالضبط وكيف تعمل.

علاوة على ذلك ، في المدونة ، سأتعمق في Kubernetes ، ولكن لمعرفة Docker ، يمكنك النقر فوق .

كما يمكنك الرجوع إلى الصورة أعلاه ، فإن Kubernetes ، عند مقارنتها بـ Docker Swarm ، تمتلك مجتمعًا نشطًا رائعًا وتمكن من التحجيم التلقائي في العديد من المؤسسات. وبالمثل ، فإن Docker Swarm لديها وسيلة سهلة لبدء المجموعة عند مقارنتها بـ Kubernetes ، ولكنها تقتصر على قدرات Docker API.

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

هل أنت مهتم بمعرفة المزيد عن Kubernetes؟

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

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

الآن ، بعد أن فهمت الحاجة إلى Kubernetes ، إنه وقت جيد ، وهذا ما أخبرك به ما هو Kubernetes؟

برنامج Kubernetes التعليمي: ما هو Kubernetes؟

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

برنامج Kubernetes التعليمي: ميزات Kubernetes

ميزات Kubernetes هي كما يلي:

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

برنامج Kubernetes التعليمي: العمارة Kubernetes

تحتوي Kubernetes Architecture على المكونات الرئيسية التالية:

  • العقد الرئيسية
  • عقد العامل / التابع

سأناقش كل واحد منهم واحدًا تلو الآخر. لذا ، فلنبدأ أولاً بفهم العقدة الرئيسية .

العقدة الرئيسية

العقدة الرئيسية مسؤولة عن إدارة مجموعة Kubernetes. إنها بشكل أساسي نقطة الدخول لجميع المهام الإدارية. يمكن أن يكون هناك أكثر من عقدة رئيسية واحدة في الكتلة للتحقق من التسامح مع الخطأ.

كما ترى في الرسم البياني أعلاه ، تحتوي العقدة الرئيسية على مكونات مختلفة مثل API Server و Controller Manager و Scheduler و ETCD.

  • خادم API: خادم API هو نقطة الدخول لجميع أوامر REST المستخدمة للتحكم في الكتلة.
  • مدير تحكم: هو برنامج خفي ينظم مجموعة Kubernetes ويدير حلقات تحكم مختلفة غير منتهية.
  • المجدول: يقوم المجدول بجدولة المهام لعقد تابعة. يقوم بتخزين معلومات استخدام الموارد لكل عقدة تابعة.
  • ETCD: ETCD عبارة عن متجر قيم رئيسي بسيط وموزع ومتسق. يتم استخدامه بشكل أساسي للتهيئة المشتركة واكتشاف الخدمة.

عقد العامل / التابع

تحتوي العقد العاملة على جميع الخدمات اللازمة لإدارة الشبكات بين الحاويات ، والتواصل مع العقدة الرئيسية ، وتخصيص الموارد للحاويات المجدولة.

كما ترى في الرسم البياني أعلاه ، تحتوي العقدة العاملة على مكونات مختلفة مثل Docker Container و Kubelet و Kube-proxy و Pods.

  • حاوية حوض السفن: يعمل Docker على كل من العقد العاملة ، ويقوم بتشغيل البودات المكونة
  • Kubelet: يحصل Kubelet على تكوين Pod من خادم API ويضمن تشغيل الحاويات الموصوفة.
  • وكيل كوبا: يعمل Kube-proxy كوكيل شبكة وموازن تحميل لخدمة ما على عقدة عامل واحدة
  • القرون: الكبسولة عبارة عن حاوية واحدة أو أكثر تعمل معًا بشكل منطقي على العقد.

إذا كنت تريد شرحًا تفصيليًا لجميع مكونات Kubernetes Architecture ، فيمكنك الرجوع إلى بلوق على

هل ترغب في الحصول على شهادة في Kubernetes؟

برنامج Kubernetes التعليمي: دراسة حالة Kubernetes

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

مشكلة: كيف يتم إنشاء صور لجميع الأنظمة الأساسية المطلوبة من كود تطبيق واحد ، ونشر تلك الصور على كل منصة؟

لفهم أفضل ، راجع الصورة أدناه. عندما يتم تغيير الكود في سجل الكود ، يتم إنشاء الصور المعدنية ، وحاويات Docker ، وصور VM بواسطة أدوات التكامل المستمر ، ويتم دفعها إلى سجل الصور ، ثم نشرها في كل نظام أساسي للبنية التحتية.


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

يتم استخدام مثيلات OpenStack ، مع Docker و Kubernetes و Calico وما إلى ذلك فوقها لأداء عمليات متنوعة مثل Container Networking و Container Registry وما إلى ذلك.

عندما يكون لديك عدد من المجموعات ، يصبح من الصعب إدارتها بشكل صحيح؟

لذلك ، أرادوا فقط إنشاء مجموعة OpenStack بسيطة وقاعدة لتوفير الوظائف الأساسية اللازمة لـ Kubernetes وتسهيل إدارة بيئة OpenStack.

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


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

هكذا أيها الناس ، ياهو! اليابان إنشاء سلسلة أدوات أتمتة لنشر الكود 'بنقرة واحدة' على Kubernetes التي تعمل على OpenStack ، بمساعدة من جوجل و سولينيا .

البرنامج التعليمي للمحافظين: التدريب العملي

في هذا التدريب العملي ، سأوضح لك كيفية إنشاء نشر وخدمة. أنا أستخدم مثيل Amazon EC2 ، لاستخدام Kubernetes. حسنًا ، لقد ابتكرت أمازون خدمة Amazon Elastic Container إلى عن على المحافظون (Amazon EKS) ، مما يسمح لهم بإنشاء مجموعات Kubernetes في السحابة بسرعة وسهولة. إذا كنت ترغب في معرفة المزيد حول هذا الموضوع ، يمكنك الرجوع إلى المدونة

الخطوة 1: أول إنشاء مجلد التي ستنشئ فيها النشر والخدمة. بعد ذلك ، استخدم محرر و افتح ملف النشر .

تعيين مسار الفصل لجافا
mkdir handsOn cd handsOn vi Deploy.yaml

الخطوة 2: بمجرد فتح ملف النشر ، اذكر جميع مواصفات التطبيق الذي تريد نشره. هنا أحاول نشر ملف httpd تطبيق.

apiVersion: apps / v1 # يحدد نوع إصدار API: تُحدد المعلمة Deployment #Kinds أي نوع من الملفات ، وهنا تظهر البيانات الوصفية للنشر: name: dep1 #Stores اسم مواصفات النشر: # تحت المواصفات ، أذكر الكل مواصفات النسخ المتماثلة للنشر: 3 # سيكون عدد النسخ المتماثلة 3 محدد: matchLabels: التطبيق: httpd # اسم التسمية الذي سيتم البحث عنه هو نموذج httpd: البيانات الوصفية: التسميات: التطبيق: httpd # اسم القالب سيكون مواصفات httpd: # ضمن المواصفات ، أذكر جميع المواصفات للحاويات: - الاسم: httpd # اسم الحاويات سيكون صورة httpd: httpd: الأحدث # الصورة التي يجب تنزيلها هي httpd: أحدث المنافذ: - containerPort: 80 # التطبيق سوف يتعرض على المنفذ 80

الخطوه 3: بعد كتابة ملف النشر ، قم بتطبيق النشر باستخدام الأمر التالي.

kubectl تطبيق -f Deploy.yaml

هنا -f هو اسم العلم المستخدم لرهو ملفاسم.

الخطوة الرابعة: الآن ، بمجرد تطبيق النشر ، قم بتشغيل قائمة البودات.

kubectl الحصول على القرون -o واسعة

هنا ، تُستخدم على نطاق واسع لمعرفة العقدة التي يتم تشغيل النشر عليها.

الخطوة الخامسة: بعد إنشاء النشر ، عليك الآن إنشاء خدمة. لذلك استخدم محررًا مرة أخرى وافتح فراغًا الخدمات. ملف yaml .

السادس الخدمة. yaml

الخطوة السادسة: بمجرد فتح ملف الخدمة ، اذكر جميع مواصفات الخدمة.

apiVersion: v1 # يحدد نوع إصدار API: تحدد معلمة الخدمة #Kinds نوع الملف الموجود ، وهنا توجد البيانات الوصفية للخدمة: الاسم: netsvc #Stores اسم مواصفات الخدمة: # تحت المواصفات ، أذكر جميع المواصفات لنوع الخدمة: محدد NodePort: التطبيق: منافذ httpd: -البروتوكول: منفذ TCP: 80 targetPort: 8084 # رقم المنفذ المستهدف هو 8084

الخطوة السابعة: بعد كتابة ملف الخدمة ، قم بتطبيق ملف الخدمة باستخدام الأمر التالي.

kubectl application -f service.yaml

الخطوة 8: الآن ، بمجرد تطبيق خدمتك للتحقق مما إذا كانت الخدمة قيد التشغيل أم لا ، استخدم الأمر التالي.

kubectl الحصول على svc

الخطوة 9: الآن ، لمعرفة مواصفات الخدمة ، وتحقق من نقطة النهايةمرتبط ، استخدم الأمر التالي.

وصف kubectl svc

الخطوة 10: الآن بما أننا نستخدم مثيل amazon ec2 ، لجلب صفحة الويب والتحقق من الإخراج ، استخدم الأمر التالي.

حليقة عنوان IP

إذا وجدت مدونة Kubernetes Tutorial هذه ذات صلة ، فراجع ملف من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في ' برنامج Kubernetes التعليمي 'وسأعود إليك.