هاربور - سجل لحاويات Docker خارج الصندوق

في 31 يوليو ، أعلنت CNCF عن قبول مشروع مفتوح المصدر جديد ، يوصف بأنه "سجل سحابة (سحابة أصلية)" ، في صندوق الرمل الخاص به (أي في أقرب مرحلة من الدعم) ، Harbour . يشرحون لنا على موقعه الإلكتروني أنه تم إنشاء المنتج لإدارة صور حاويات Docker في بيئة آمنة.



يبدو أن هناك بالفعل Docker Registry (أو ، على سبيل المثال ، Quay من CoreOS) ، ولكن من الواضح أن الحلول الجديدة لا تظهر ولا تنضج إلى تطبيقات الإنتاج بهذه الطريقة - خاصة حلول Open Source ... وأكثر من ذلك ، تقع في CNCF. تهدف مقالة المراجعة هذه إلى إلقاء الضوء على أسباب ظهور Harbour وميزاتها وميزاتها الرئيسية.

تركيز هاربور الأول: الشبكة والمؤسسة


يبدأ تاريخ المشروع في عام 2016 ، في مارس الذي صدر فيه أول إصدار عام - 0.1.0. وراء إنشائه كان مهندسو VMware الذين وصفوا المشروع بأنه "خادم تسجيل على مستوى المؤسسة" ، والذي ، بناءً على تطوير Docker ، "يوسع قدرات سجل Docker عن طريق إضافة المزيد من الميزات إليه التي تتطلبها المؤسسة عادةً".

في ذلك الوقت ، كان التركيز أكثر على إمكانية استخدام هذا السجل داخل الشركة ، على وجه الخصوص ، من المحتمل تحسين الإنتاجية من خلال تخزين الصور على شبكة الشركة: "[Harbour] مفيد جدًا لمستخدمي الحاويات الذين ليس لديهم اتصال جيد بالإنترنت. على سبيل المثال ، يعزز Harbour إنتاجية المطورين الصينيين من خلال التخلص من صعوبة تنزيل الصور من الإنترنت العام " (من README إلى Harbour 0.1.0 ) .

ملاحظة : لم يكن اتجاه هاربور نحو الصين ، والذي تم تأكيده من خلال وجود توطين مناسب من الإصدارات الأولى ، أمرًا غير مقصود: بدأ إنشاء المشروع على هذا النحو من قبل القسم الصيني للشركة (VMware China R&D).

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

  • التحكم في الوصول المستند إلى الأدوار ( RBAC ، الذي يسمح لك بتنظيم المستخدمين والمستودعات في شكل "مشاريع" وإعطاء حقوق مختلفة للصور داخل هذه المشاريع) ، بالإضافة إلى دعم LDAP و AD لمصادقة المستخدم ؛
  • واجهة مستخدم على شبكة الإنترنت لعرض المستودعات ، والبحث عنها ، وإدارة المشاريع ؛
  • مراجعة جميع العمليات ؛
  • REST API للإدارة.


إدارة المشاريع في واجهة مستخدم Harbour Web

تطور الميناء: الأمن


في عام 2017 ، وجدت VMware تطبيقًا منطقيًا لمشروعها الجديد - التكامل مع حلول الشركة الأخرى للحاويات. على وجه الخصوص ، كانت حاويات vSphere المتكاملة (VIC) ، التي لم تكن بنشاط ، وهي ليست PaaS كاملة (منصة كخدمة) أو CaaS (حاويات كخدمة) ، تعمل بنشاط ، وقدمت نوعًا من الأساس للعمل مع الحاويات. اليوم ، على سبيل المثال ، نما vSphere Integrated Containers Engine ، وهو وقت تشغيل الحاوية لـ vSphere. وإليك كيف وصف مهندس حلول VMware (Nate Reid) VIC في ذلك الوقت:

"يأخذ VIC إطار عمل مضيف Docker واحد ويقوم بقياسه إلى عدة مضيفين ESXi. تشبه بنيته المقترحة للتنسيق مع Swarm و Kubernetes (K8s) و Mesos. ومع ذلك ، هناك بعض الفروق الدقيقة ، وليس هناك مهمة لاستبدال جميع هذه المنتجات. يوفر VIC شبكة للحاويات ، ويسمح لك بالحصول على أسمائها ، ويقدم RBAC ، ولوحة تحكم HTML5 (Admiral ؛ اقرأ المزيد عنها في مراجعة واجهة المستخدم الرسومية لـ Docker - Translations تقريبًا ) ، سجل على مستوى المؤسسة (Harbour) ، العديد من أوامر Docker المماثلة ، التكامل مع أدوات vSphere. [..]

إذا كنت بحاجة إلى دعم تنسيق Kubernetes و / أو إمكانات CI / CD المستندة إلى VMware IaaS من VMware ، يجب إلقاء نظرة على VMware PKS و / أو Pivotal Cloud Foundry. هذه حلول CaaS و PaaS بالفعل. "

في الوقت نفسه ، أصبحت مسألة أمان صور Docker ذات صلة متزايدة. في بداية عام 2018 ، استشهد مهندسو "الأخوة" لشركة VMware Pivotal بدراسة تفيد بأن حتى أحدث إصدارات الصور المنشورة على Docker Hub (سواء من المجتمع أو المسؤول) تحتوي على العديد من نقاط الضعف (بمعدل 70 لكل صورة).

عندها ظهر هاربور بمهمته الجديدة الموجهة نحو السلامة ، وبالفعل على "الأرض" المذكورة أعلاه لـ CaaS - في خدمة الحاويات المحورية (PKS) :

"هذه [الثغرات الأمنية ومشكلات الأمان الأخرى في صور Docker] هي السبب وراء تضميننا العديد من الإضافات المفيدة التي تجعل PKS موثوقة وآمنة!" [..]

نظرًا لأن Kubernetes وحدها لا تتعامل مع مثل هذه المشكلات [إدارة الصور الآمنة] ، فقد عملنا مع أصدقاء VMware لتضمين Harbour في PKS ".

ما هو أكثر أمانًا تمت إضافته إلى Harbour (بالإضافة إلى RBAC والمراجعة التي تم تنفيذها بالفعل في المشروع)؟ يشار إلى اتجاهين رئيسيين:

  1. فحص الضعف للقيام بذلك ، يقوم Harbour بتنفيذ CVE من قواعد البيانات المعروفة (NIST NVD و Ubuntu CVE Tracker و Red Hat Security Data وما إلى ذلك) ويفحص تلقائيًا كل صورة حاوية بحثًا عن وجودها عند إجراء عمليات الدفع والسحب. إذا تم العثور على ثغرة أمنية ، يتم إلغاء العمليات اعتمادًا على إعدادات الأمان ، ويتم تمييز الصورة نفسها ، والتي ستكون مرئية لمسؤول التسجيل. لتحقيق هذه الفرصة ، يتكامل هاربور مع كلير من CoreOS.
  2. توقيع الصور . يستخدم أيضًا إنجازات مشروع آخر - كاتب العدل (ذكرنا ذلك في هذه المقالة ) ، والذي يصنع توقيعًا عند دفع الصور ، ثم يتحقق من صحة هذه التوقيعات مع كل سحب.

التطبيق العام للميناء في PKS على النحو التالي:



ميناء اليوم


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



بالإضافة إلى Docker Registry المذكور بالفعل ، و Clair و Notary ، التي تنفذ الميزات الرئيسية لـ Harbour ، يمكنك أيضًا رؤية اثنين من DBMSs في هذا المخطط:

  1. PostgreSQL ( كان MySQL / MariaDB سابقًا هنا) ، والذي يستخدم لتخزين البيانات الوصفية حول المشاريع والمستخدمين وأدوارهم والصور ؛
  2. Redis - لتخزين الجلسات .


قواعد البيانات في هندسة الموانئ

يمكنك أيضًا العثور على بعض التفاصيل حول جهاز الميناء العام العام من صفحة wiki هذه ، والتي ترتبط بالوثائق الرسمية للمشروع (ومع ذلك ، هناك شك في أن بعض التفاصيل حول الهندسة المعمارية قد تكون قديمة في بعض الأماكن) . هناك يمكنك أيضًا العثور على روابط لتعليمات تثبيت الميناء ونشرها في Kubernetes . ومع ذلك ، تم الإعلان عن هذا الأخير عفا عليه الزمن (استنادًا إلى الإصدارات القديمة ، لا يدعم Clair و Notary) ، وبدلاً من ذلك يُقترح استخدام مخطط Helm-chart .

الإصدار الحالي من Harbour هو v1.5.2 ، الذي صدر في أواخر يوليو. متطلبات جهاز Linux الذي تم تثبيت أحدث إصدار للسجل عليه هي إصدار Docker 17.03.0-ce (أو أعلى) و Docker Compose 1.10.0+ ، بالإضافة إلى Python و OpenSSL.

يبدو دعم مخططات Helm ابتكارًا مثيرًا للاهتمام للغاية للإصدار المستقبلي من Harbour (تم إصدار v1.6.0-rc1 بالفعل): "سيصبح Harbour ، بدءًا من الإصدار 1.6.0 ، سجلاً أصليًا مركبًا سحابيًا يدعم إدارة الصور وإدارة الرسوم البيانية" . تتضمن خطط التطوير الأخرى دعم OAuth 2.0 لمصادقة المستخدم ، والقدرة على النشر في مواقع متعددة لتحمل الأخطاء وموازنة الحمل ، وجمع الإحصائيات في المستودعات ، وأداة مساعدة للترحيل إلى الميناء.

بدلا من الاستنتاج


يعد Harbour مثالًا على مشروع ناجح من عالم السحابة الحديثة ، والذي تمكن من العثور على مكانته وتأسيس نفسه ، مع دمج إمكانيات أدوات المصدر المفتوح الأخرى. دليل نجاحه ليس فقط إدراج CNCF في قائمة المشاريع ، ولكن أيضًا أكثر من 5000 نجمة على GitHub ، ومجتمع نشط إلى حد ما من المطورين.

ملاحظة


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

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


All Articles