شعار زيفيرنت

دليل أساسي لـ Kubernetes في الإنتاج

التاريخ:

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

المُقدّمة

صنع Mpularly باستخدام أنظمة تزامن الحاويات وبنية الخدمات المصغرة. في عام 2014 ، تم سماع أول أصداء لكلمة Kubernetes في التكنولوجيا ، ويعود غزو Kubernetes بدرجة كبيرة إلى مرونتها وسلطتها. في ذلك الوقت ، كان الناس يتضاربون حول "كيف تنطقها حتى؟"

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

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

الدافع الأساسي وراء هذا الدليل هو تقديم نظرة عامة مباشرة على عالم Kubernetes بالكامل ومساعدتك على البدء بأساسيات Kubernetes.

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

لذا دون أي توقف ، فلنبدأ. استمتع!

جدول المحتويات

  1. ما هو Kubernetes؟
  2. لماذا تعتبر Kubernetes مهمة لمنظمتك؟
  3. مفاهيم Kubernetes الأساسية والهندسة المعمارية
  4. فرق مفصل بين Kubernetes و Docker
  5. التحديات لمستخدمي Kubernetes وحلولها
  6. فوائد Kubernetes للشركات
  7. كيفية إعداد Docker و Kubernetes على أنظمة Linux
  8. أفضل الممارسات لـ Kubernetes في الإنتاج وإنتاجية الكتلة المحسّنة
  9. أمثلة على عمالقة التكنولوجيا الذين يستخدمون Kubernetes إلى أقصى إمكاناته
  10. افكار اخيرة
  11. نبذة عن الكاتب
  12. مراجع حسابات
Kubernetes في الإنتاج
https://unsplash.com/@carrier_lost

ما هو Kubernetes؟

Kubernetes (المعروفة أيضًا باسم k8s أو "Kube") هي أداة فعالة لإدارة الحاويات. إنها منصة تزامن محمولة وقابلة للتوسيع ومفتوحة المصدر تعمل على أتمتة العمليات والخدمات اليدوية المتعددة لنشر المجموعات المعبأة في حاويات ومعالجتها وتوسيع نطاقها.

تم اختراع Kubernetes وتصميمه في البداية من قبل المهندسين في Google ولديه حاليًا نظام بيئي كبير وسريع النمو. كانت RedHat واحدة من الشركات التي تعمل مع Google على Kubernetes عندما كانت Google تطور أكثر من ملياري عملية نشر حاوية كل أسبوع. تبرعت Google بمشروع Kubernetes إلى مؤسسة الحوسبة الأصلية السحابية (CNCF) المطورة حديثًا في عام 2.

لماذا تعتبر Kubernetes مهمة لمنظمتك؟

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

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

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

مفاهيم Kubernetes الأساسية والهندسة المعمارية

عندما تبدأ للتو مع Kubernetes ، من الجيد أن تعرف مسبقًا المكونات الأساسية والبنية الوظيفية لـ Kubernetes. تتبع مجموعة Kubernetes بنية خادم العميل وتتكون من مستوى تحكم (رئيسي) ، ونظام تخزين موزع للحفاظ على حالة الكتلة (إلخ) متسقة ، ومجموعة من عقد المجموعة (العمال).

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

دعونا نرى كل فئة بالتفصيل أدناه:

مستوى التحكم أو العقدة الرئيسية

إنه صانع قرار عالمي للمجموعة المكونة من خادم Kube-API و Kube Scheduler و cloud-controller-manager و Kube-controller-manager. يتحكم في الجدولة وسلوك المجموعة العام. العقد التي تحتوي على هذه المكونات قيد التشغيل ليس لديها أي حاويات مستخدم قيد التشغيل. مستوى التحكم هو المكون الرئيسي للمجموعة وعادة ما يسمى بالعقد الرئيسية.

1. مدير التحكم في السحابة (رئيسي)

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

2. Etcd- تخزين البيانات (ماجستير)

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

3. Kube-control-manager (ماجستير)

مدير وحدة تحكم Kubernetes هو مكون عقدة رئيسي. إنها مجموعة من وحدات التحكم مجمعة داخل ثنائي واحد ، وتعمل على عملية التحكم. توجد وحدة تحكم العقدة ووحدة التحكم في النسخ المتماثل ووحدة التحكم في نقطة النهاية داخل هذا المدير.

4. Kube-Scheduler (ماجستير)

Kube-Scheduler هو مكون مستوى تحكم مسؤول عن تعيين البودات في العقد داخل مجموعتك بناءً على استخدام الموارد. سيستخدم المجدول طلبات الحساب واستخدام الذاكرة وقيود الأجهزة / البرامج.

عقدة العامل

تقوم العقدة العاملة بتشغيل التطبيقات الحاوية وسيكون لها مثيل kubelet و Kube-proxy ووقت تشغيل حاوية معين. يتم التحكم في العقدة العاملة بواسطة العقدة الرئيسية ، وتقوم بإبلاغ خادم api لمستوى التحكم باستمرار فيما يتعلق بصحتها.

1. Kubelet (عامل)

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

2. Kube-proxy (عامل)

Kube-proxy هي خدمة وكيل شبكة تعمل على كل عقدة عاملة في مجموعة Kubernetes. يقوم بإجراء طلب إعادة التوجيه إلى الكبسولات / الحاويات الصحيحة ويحافظ على قواعد الشبكة.

الفرق بين Kubernetes و Docker

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

دعونا نفهم الفرق بينهما بالتفصيل في الجدول أدناه:

Kubernetes عامل في حوض السفن
تعريف Kubernetes هو نظام بيئي لمعالجة مجموعة من حاويات Docker تسمى القرون. Docker عبارة عن منصة حاوية لبناء الحاويات وتكوينها وتوزيعها.
تسجيل الدخول والرقابة تقدم Kubernetes أدوات مدمجة للتسجيل والمراقبة.
يحتوي Docker على خيارات لأدوات الطرف الثالث مثل ELK للتسجيل والمراقبة.
نتيجة

Kubernetes ليس حلاً كاملاً ويستخدم مكونات إضافية مخصصة لوظائفه.

يستخدم Docker حل التجميع الأصلي الخاص به لحاويات Docker تسمى Docker Swarm.

التنزيل التثبيت معقد في Kubernetes ، لكن المجموعات قوية بمجرد إعدادها. التثبيت سريع وسهل مقارنة بـ Kubernetes ، لكن الكتلة ضعيفة.

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

يمكن لـ Kubernetes نشر التحديثات الجارية وإنجاز عمليات التراجع التلقائية.

يمكن لـ Docker أيضًا نشر التحديثات المستمرة ولكن ليس التراجع التلقائي.
أحجام البيانات يمكن لـ Kubernetes مشاركة وحدات تخزين التخزين فقط مع الحاويات الأخرى الموجودة في نفس المجموعة.

يمكن لـ Docker مشاركة وحدات التخزين مع أي حاوية أخرى.

التحديات التي واجهتها Kubernetes في الإنتاج

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

دعنا نلقي نظرة أكثر تعمقًا ونرى كيفية تجنب هذه التحديات لإطلاق العنان للإمكانات الكاملة:

1. قضايا الأمان

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

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

2. قضايا الشبكة

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

حل: قم بتعيين المكون الإضافي لواجهة شبكة الحاوية (CNI) الذي يسمح لـ Kubernetes بالاندماج بسلاسة في البنية التحتية والوصول إلى التطبيقات على الأنظمة الأساسية المتنوعة. هناك طريقة أخرى للتعامل مع هذا التحدي وهي زيادة حجم المخازن المؤقتة للشبكة في نواة Linux ، وعدد قوائم الانتظار في NIC ، وإعداد الاندماج.

تجعل هذه الحلول اتصال الحاوية سلسًا وسريعًا ومحميًا ، مما يؤدي إلى إجراء تنظيم سلس للحاويات.

3. قضايا التشغيل البيني

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

حل: يمكن للمستخدمين تنفيذ نفس واجهة برمجة التطبيقات وواجهة المستخدم وسطر الأوامر لتقليل تحديات التشغيل البيني. بالإضافة إلى ذلك ، يمكنهم الاستفادة من المشاريع التعاونية عبر منصات مختلفة مثل Google و RedHat و SAP و IBM لتقديم تطبيقات تعمل على الأنظمة الأساسية السحابية الأصلية.

Kubernetes في الإنتاج - الفوائد

Kubernetes هو المشروع الأسرع نموًا بعد Linux في النظام البيئي للبرامج مفتوحة المصدر. هناك أسباب لا حصر لها وراء ذلك ولماذا يختار كل مطور Kubernetes كحل لحل احتياجات تنظيم الحاويات.

دعونا ندرس كل منهم على وجه الخصوص أدناه:

1. يمكن لـ Kubernetes تحسين إنتاجية المطورين

يمكن أن تؤدي Kubernetes ، مع بنياتها التصريحية ونهجها الملائم للعمليات ، إلى مكاسب إنتاجية كبيرة إذا تم تنفيذها بشكل مناسب في تدفقات العمل الهندسية الخاصة بك. يسهّل مشهد مؤسسة Cloud Native Computing Foundation (CNCF) استخدام Kubernetes من خلال تقليل التأثير السلبي لتعقيدها العام بكفاءة. يمكن للفرق التوسع والانتشار بشكل أسرع من خلال الاعتماد على بعض الأدوات الحالية المصممة صراحةً لبرامج السحابة الأصلية. بدلاً من النشر مرة واحدة في الشهر ، يمكن للفرق الآن النشر عدة مرات في اليوم وبناء الحلول التي بالكاد يمكنك التفكير فيها بنفسك.

2. Kubernetes مفتوح المصدر ويمكن أن يكون بديلًا أرخص

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

3. قابلية التنقل

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

4. قابلية التوسع

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

5. الشفاء الذاتي

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

كيفية إعداد Docker & Kubernetes على نظام Linux

سيساعدك هذا البرنامج التعليمي في إعداد Docker و Kubernetes وأدواته في أنظمة Linux. يمكن أيضًا استخدام هذا الرمز لإعداد توزيعات Linux الأخرى.

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

الشروط المسبقة

# 1. الخطوة الأولى هي تثبيت Docker ، كما هو مطلوب في جميع مثيلات Kubernetes. افتح المحطة الطرفية من حساب المستخدم الجذر ، وقم بتحديث معلومات الحزمة ، وتأكد من أن الحزمة apt تعمل عن طريق تشغيل الأمر التالي.

أمر

كيفية إعداد قفص الاتهام

# 2. في السطر التالي ، نضيف مفتاح GPG الجديد ، وهو أداة مستخدمة في مكان آمن لتوقيع الملفات والتحقق من توقيعاتها. بعد ذلك ، قم بتحديث صورة حزمة API.

أمر

القيادة - Kubernetes في الإنتاج

# 3. إذا تم تنفيذ جميع الأوامر بنجاح ، يمكنك تثبيت محرك Docker. لكن من الضروري التحقق من صحة إصدار kernel الذي تستخدمه. إذا لم يكن كذلك ، ففكر في تحديث فهرس الحزمة.

أمر

الأمر 2 - Kubernetes في الإنتاج

# 4. بعد ذلك ، قم بتشغيل الأمر لتثبيت Docker Engine و Docker daemon. تحقق مما إذا كان Docker مثبتًا أم لا.

أمر

Docker - Kubernetes في الإنتاج

# 5. الآن ، قم بتشغيل الأمر التالي لتثبيت etcd 2.0 على Kubernetes Master Machine.

أمر

6 الأمر

# 6. الآن هي المرحلة النهائية حيث سنقوم ببناء Kubernetes وتثبيته على جميع الأجهزة الموجودة على الكتلة. سينشئ الأمر التالي _output dir في جذر مجلد Kubernetes. من هنا ، يمكننا استخراج هذا المجلد في أي مجلد نختاره. في مثالنا ، نستخرجه في / opt / bin.

أمر

منصة سحابة

# 7. الآن هو جزء التواصل. سيقوم هذا القسم بعمل إدخال في ملف المضيف لبدء إعداد Kubernetes الرئيسي والعقدة. يمكن القيام بذلك على جهاز العقدة.

أمر

Kubernetes - Kubernetes في الإنتاج

# 8. سنجري تكوينات فعلية على Kubernetes Master عن طريق نسخ جميع ملفات التكوين إلى مواقعها الحالية.

أمر

سيد Kubernetes

# 9. بعد نسخ جميع ملفات التكوين إلى المواقع المطلوبة ، ارجع إلى نفس الدليل حيث أنشأنا مجلد Kubernetes.

أمر

Kubernetes في الإنتاج

# 10. الآن قم بتحديث ملف التكوينات المنسوخ تحت /etc.dir. قم بتكوين etcd على النظام الرئيسي باستخدام الأمر أدناه.

أمر

الأمر 4 | Kubernetes في الإنتاج

# 11. الآن سنقوم بتكوين Kube-apiserver على السيد. تعديل / etc / default / kube-apiserver الملف الذي قمنا بنسخه من قبل.

أمر

Kubernetes في الإنتاج

# 12. بعد ذلك ، سنقوم بتهيئة Kube Controller Manager عن طريق إضافة المحتوى أدناه بتنسيق / etc / default / Kube-controller-manager.

أمر

Kubernetes في الإنتاج

# 13. قم بتكوين برنامج جدولة Kube في الملف المعني ، ويسعدنا المضي قدمًا من خلال إحضار Kubernetes Mater عن طريق إعادة تشغيل Docker.

أمر

أمر

# 14. ستقوم العقدة العاملة بتشغيل خدمتين: kubelet و Kube-proxy. انسخ الثنائيات (التي نزّلناها سابقًا) إلى المجلدات المطلوبة لتكوين عقدة العامل.

أمر

طريقة نسخ الملفات

#15. لتكوين ملف kubelet و Kube-proxy ، افتح التكوين في /etc/init/kubelet.conf.

أمر

تكوين

# 16. تم الانتهاء من جميع التكوينات للماجستير والعامل. أعد تشغيل خدمة Docker وتحقق من خلال تشغيل الأوامر التالية.

أمر

أمر

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

أفضل الممارسات لـ Kubernetes في الإنتاج

تقدم Kubernetes حلاً مستقلاً للحاويات لتعزيز الإنتاجية ، وقد أصبحت الأداة الأكثر انتشارًا في مجال DevOps ، وفقًا لاستطلاع CNCF لعام 2020.

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

1. تأكد دائمًا من أنك تستخدم أحدث إصدار

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

2. استخدم التحكم في الإصدار لملفات التكوينات

استخدم GitOps ، وهو سير عمل مستند إلى Git ، لتخزين ملفات التكوين المرتبطة بالنشر والدخول والخدمات والبيانات الهامة الأخرى. يجب أن يتم ذلك قبل دفع البيانات إلى مجموعتك ، حيث ستساعدك على تتبع من قام بالتغييرات. أيضًا ، يساعد التكيف مع سير العمل المستند إلى بوابة على تحسين الإنتاجية عن طريق تقليل أوقات النشر ، وتحسين إمكانية تتبع الأخطاء ، وأتمتة تدفقات عمل CI / CD.

3. مراقبة مكونات طائرة التحكم

أحد الأخطاء الشائعة التي يرتكبها العديد من الممارسين هو نسيان مراقبة دماغ مجموعة Kubernetes (مستوى التحكم). فيما يلي بعض المكونات الأساسية للوحة التحكم:

  • خدمة Kubernetes API
  • مكعبة
  • مدير تحكم
  • إلخ
  • وكيل Kube
  • كوبي DNS.

هذه المكونات هي قلب مجموعة Kubernetes الخاصة بك ، وتساعد مراقبتها في تحديد المشكلات / التهديدات داخل المجموعة وزيادة زمن انتقالها.

4. تدقيق السجلات الخاصة بك على أساس منتظم

تحتوي سجلات أي مجموعة على الكثير لتخبره ، ويجب مراجعة جميع السجلات المخزنة في /var/log/audit.log بانتظام. يساعد تدقيق السجلات على:

  • تحديد التهديدات
  • مراقبة استهلاك الموارد
  • سجل نبضات القلب للحدث الرئيسي لمجموعة Kubernetes

توجد سياسة تدقيق مجموعة Kubernetes على /etc/Kubernetes/audit-policy.yaml ، ويمكنك تخصيصها وفقًا لمتطلباتك.

5. استخدم صور حاوية صغيرة

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

عمالقة التكنولوجيا باستخدام Kubernetes في الإنتاج

لقد أدرك العديد من المهندسين من Google و Amazon و Red Hat وغيرهم بالفعل قوة Kubernetes. دعونا نرى كيف يستخدمونه:

1. الأمازون

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

2. مايكروسوفت

AKS هي خدمة مُدارة بالكامل تستخدم Kubernetes في Azure دون إدارة مجموعاتها بشكل فردي. يمكن لـ Azure التعامل مع جميع تعقيدات Kubernetes ، بينما يركز المرء على المجموعات. بعض الميزات الأساسية هي الدفع فقط للعقد ، وترقيات مجموعة أكثر قابلية للإدارة ، وتكامل Kubernetes RBAC و Azure Active Directory.

3. اباتشي سبارك

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

Kubernetes في الإنتاج - الأفكار النهائية

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

يرجى إعلامي بأهم معلومات Kubernetes التي ما زلنا نفتقدها في قسم التعليقات أدناه.

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

مراجع حسابات

1. https://kubernetes.io/docs/tutorials/kubernetes-basics/

2. https://www.redhat.com/en/topics/containers/what-is-kubernetes

3. https://www.tutorialspoint.com/kubernetes/index.htm

4. https://auth0.com/blog/kubernetes-tutorial-step-by-step-introduction-to-basic-concepts/

5. https://github.com/kubernetes/kubernetes

6. https://en.wikipedia.org/wiki/Kubernetes

7. https://cloud.google.com/learn/what-is-kubernetes

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف. 

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟