Kubernetes: المصدر المفتوح مقابل البائع

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

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



قم بتوجيه عدد كبير من الحاويات


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

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

عندما نريد بدء التطبيق من الحاوية ، يتم فرض الطبقات الضرورية على بعضها البعض ويتم تشكيل نظام ملف تراكب. يتم فرض طبقة للتسجيل في الأعلى ، والتي يتم حذفها عند إيقاف الحاوية. هذا يضمن أنه عند بدء الحاوية ، سيكون للتطبيق دائمًا نفس البيئة ، والتي لا يمكن تغييرها. هذا يضمن استنساخ البيئة على أنظمة تشغيل مضيف مختلفة. سواء كانت Ubuntu أو CentOS ، ستكون البيئة هي نفسها دائمًا. بالإضافة إلى ذلك ، يتم عزل الحاوية عن المضيف باستخدام الآليات المضمنة في Linux kernel. لا ترى التطبيقات في الحاوية ملفات وعمليات المضيف والحاويات المجاورة. يوفر عزل التطبيقات عن نظام التشغيل المضيف طبقة إضافية من الأمان.

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

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



الشكل 1. تمثيل تخطيطي لكيفية عمل Kubernetes

أتمتة كاملة


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

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

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

الايجابيات ، الايجابيات ، الايجابيات


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

  • . — . , — . . , Kubernetes .
  • . Kubernetes . . , . Kubernetes , Service Discovery. IP- Kubernetes. health check` .
  • . . Kubernetes ConfigMap`. . , .
  • Persistent Volumes. , , . . Kubernetes — Persistent Volumes. , , . , .
  • Load Balancer. , Kubernetes Deployment, StatefulSet .., . . Kubernetes . , ? , . Kubernetes Load Balancer. . . , . Kubernetes.

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

المصدر المفتوح Kubernetes


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

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



الشكل 2. العمارة k8s

Kubernetes من البائع


يوفر التكامل مع مزود سحابة خيارين:

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

كيف يحدث هذا معنا. يشير المهندس الذي أطلق المجموعة إلى عدد العمال الذي يحتاجه ومع المعلمات (على سبيل المثال ، 5 عمال ، لكل منهم 10 وحدات معالجة مركزية ، و 16 غيغابايت من ذاكرة الوصول العشوائي ، و 100 غيغابايت من القرص). ثم يحصل على الوصول إلى الكتلة المشكلة بالفعل. في الوقت نفسه ، يتم إعطاء العمال الذين يتم تشغيل الحمل عليهم تمامًا للعميل ، ولكن تظل طائرة الإدارة بأكملها في منطقة مسؤولية البائع (إذا تم تقديم الخدمة وفقًا لنموذج الخدمة المُدارة).

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



الشكل 3. مثال على Kubernetes عنقود من مزود سحابة

ماذا تختار: المصدر المفتوح أو البائع


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





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

تم إعداد المقال من قبل دميتري كراسنوف ، المهندس الرئيسي لخدمة كونتينروم لموفر #CloudMTS

All Articles