وقت تشغيل الحاويات الناضجة: يصبح Containerd خريج CNCF

لقد تابعنا مشروع containerd منذ البداية . لذلك ، لا يمكننا تجاهل حدث مهم: في الليلة الماضية ، أعلنت منظمة CNCF التي تدعم Kubernetes وغيرها من حلول المصدر المفتوح المتميزة للعالم الأصلي السحابي عن "خريجها". كان هذا المشروع بالفعل الخامس مع هذا الوضع ، حيث انضم إلى صفوف K8s و Prometheus و Envoy و CoreDNS.



معايير CNCF


وقد تبنى CNCF ، الذي يدعم حاليًا عشرات المشاريع مفتوحة المصدر ، ثلاث فئات لتصنيفها:

  1. Sandbox ("sandbox") - للتطورات المبكرة والتجريبية والواعدة التي (في المستقبل) "تضيف قيمة مهمة CNCF" ، أي سوف يساهم في تطوير النظام الإيكولوجي المفتوح المصدر والمجتمع الذي يتكون حول البنية التحتية للتطبيقات الأصلية السحابية الحديثة. هناك 12 مثل هذه المشاريع.
  2. احتضان ("حاضنة") - للمشاريع التي لديها ما لا يقل عن ثلاثة مستخدمين (موثقين ومستقلين) في الإنتاج ، يتم توفير مستويات وجداول كافية (وفقًا للجنة الفنية) ، بالإضافة إلى وجود عدد كاف من المساهمين ذوي الالتزام تنمية مستقرة للقاعدة الكود. هناك 15 منهم.
  3. التخرج - للمشروعات التي تضم متعهدين من منظمتين على الأقل ، شارة امتثال لأفضل ممارسات CII (مبادرة البنية التحتية الأساسية) ، والتي تم تبنيها من قبل مدونة قواعد السلوك CNCF ، ونظام إدارة وقبول محدد بوضوح ، وقائمة عامة للمستخدمين ، وبطبيعة الحال ، نتيجة التصويت المقابل من قبل اللجنة الفنية CNCF. الآن هناك 5 منهم.



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

containerd: الأصول والحاضر


يعود تاريخ مشروع Containerd إلى الوقت الذي كانت فيه أشجار Docker كبيرة. في عام 2015 ، أعلن مطوروها أن الوقت قد حان لجعل محرك Docker Engine أكثر إحكاما (سريع وموثوق ومحمول ...) ، وبالتالي بدأ في تحويل مكوناته إلى مشاريع منفصلة .

بدأ كل شيء بالإعلان عن أداة إطلاق حاوية runc (2015) ، ثم ظهر وقت تشغيل حاوية الحاويات (2016) ، وبعد مرور عام أصبحت هذه المبادرة أكثر عالمية وجلبت لنا Moby .


شكل توضيحي لإصدار Docker 1.11 (أبريل 2016): تمت إزالة Docker Engine ومكوناته منه

العودة إلى containerd. باختصار ، تم تقليص دورها الوظيفي (وهذا لم يتغير إلى يومنا هذا) إلى حقيقة أنها ، باعتبارها شيطان في النظام المضيف ، تمكنت من إدارة دورة حياة الحاوية بأكملها: من تلقي الصورة وتخزينها إلى إطلاق الحاوية (من خلال runc المذكور بالفعل) والسيطرة على عمله. في مارس 2017 ، بعد مرور عام على فصل الحاوية ، نقلها Docker إلى CNCF ، والذي حدث في وقت واحد مع مبادرة مماثلة من CoreOS تسمى rkt (سنعود إليها) .

وتشمل التطورات الأخرى ظهور وتطوير (بقيادة ريد هات) لمنافس موجه Kubernetes دعا CRI-O * ... ومرآة Docker Inc "استجابة" في شكل cri-containerd .

تم استخدام برنامج خفي خاص (يحمل عنوانًا ذاتيًا) للتفاعل مع K8s في cri-containerd ، وبحلول الإصدار 1.1 تحول الحل إلى مكون إضافي لبيئة تشغيل الحاوية الجديدة في Kubernetes - واجهة Runtime Interface (CRI) - وهنا يتم توصيل المكون الإضافي مباشرة مع containerd ( استدعاء الوظائف الضرورية).



في يونيو 2018 ، تم إعلان أن المكون الإضافي لـ containerd CRI جاهز للإنتاج. مستودع المشروع الحالي هو containerd / cri .

* من المثير للاهتمام أن نلاحظ أن الطلب المقدم في نوفمبر 2018 لإدراج المنافس حاوية و rkt - CRI-O - في مشاريع CNCF لم تتم الموافقة عليها بعد من قبل المنظمة.

واليوم ، تطلق containerd بشكل عشوائي نفسها "بيئة حاوية قابلة للتنفيذ ، وهي معيار صناعي وتركز على البساطة والموثوقية وسهولة الحمل":



الهيكل الفعلي لحلول الحاويات التي تستخدم حاوية حاوية (بالنسبة للجزء الأكبر ، بطبيعة الحال ، فهي تركز على Kubernetes ، ولكن من الناحية الرسمية لا تقتصر على هذا النظام الأساسي) ، يبدو كما يلي:



يأتي الحل نفسه في شكل برنامج خفي لنظام التشغيل Linux ( يوصى باستخدام إصدارات kernel 4.x ، على الرغم من إمكانية وجود خيارات مع الإصدارات السابقة) ونظام Windows. شفرة المصدر مكتوبة في Go (الإصدار 1.9.x + مطلوب ).

أحدث إصدار من حاوية هو 1.2.4 (بتاريخ 14 فبراير 2019) ، حيث تم إصلاح ثغرة أمنية CVE-2019-5736 في runc. المعلم التالي هو الإصدار 1.3 ، حيث يتوقع ابتكارات مثل مجموعات الحاويات ، وتحسين الأداء لتشغيل الصور ، وتحسينات مختلفة في العمل مع اللقطة وغيرها .

يحتوي المشروع على 3500 نجمًا على GitHub ، و 14 مشاركًا و 166 مساهمًا من شركات (باستثناء Docker ، بالطبع) مثل Alibaba و Facebook و Google و Huawei و IBM و Microsoft و NTT و Tesla. يمكن الاطلاع على المزيد من إحصائيات codebase على DevStats .

من بين مستخدمي الحاوية البارزين ، يكفي أن نذكر Moby نفسها والمشاريع ذات الصلة (LinuxKit ، BuildKit) ، خدمات Google السحابية (GKE) ، Microsoft (acs-engine in Azure ، و AKS في المستقبل) ، IBM (IKS ، ICP) و Alibaba ، حلول / محركات الحاويات (Rio من Rancher ، Kata Containers ، Balena) ، وكذلك حتى Firecracker الحديثة.

عن المنافسين


أخيرًا ، تجدر الإشارة إلى أن وتيرة تطوير rkt - وهو تناظري لـ containerd ، المتضمن في CNCF في نفس الوقت تقريبًا - أقل بكثير. يكفي أن نشير إلى أن الإصدار الأخير - v1.30.0 - تم منذ عام تقريبًا (في أبريل 2018).

هناك استنتاجات منطقية من منظور الأعمال: قبل حوالي عام ، تم شراء مطور rkt الأصلي ، CoreOS ، بواسطة Red Hat. والأخير (أو أنه من الصحيح القول أن IBM لديها بالفعل ...) ، كما هو مذكور في المادة ، لها من بنات أفكارها - cri-o - أنشطتها أكثر نشاطًا بكثير .

ومع ذلك ، في حين أن شركة Linux العملاقة لم تتمكن من "بدء" مشروعها في CNCF ، فربما تكون الكلمات المتعلقة بالحاويات كمعيار صناعي تبدو معقولة للغاية.

PS


اقرأ أيضًا في مدونتنا:

Source: https://habr.com/ru/post/ar442036/


All Articles