NebulaCR: سجل OCI للمؤسسة وقابلية المراقبة والامتثال دون أي تنازلات
الهندسة المعمارية ومصادقة الثقة المعدومة وإمكانية المراقبة وعمليات Kubernetes
ملخص تنفيذي
NebulaCRهو سجل حاويةOCI مفتوح المصدر ومكتوب على السحابةمكتوب بلغة Rust. إنه يقرن خدمةلسجل السديمالمتوافقة مع المعايير (المنفذ 5000) مع خدمة الرمز المميزالسديميةالمميزة (المنفذ 5001)، وتكاملHashiCorp Vaultالاختياري لمفاتيح التوقيع، وتخزين كائناتالقابل للتوصيل(نظام الملفات، S3، GCS، Azure Blob)، والتغليفKubernetesمن الدرجة الأولى مع CRDs للمستأجرين والمشاريع والسياسات. يضع المشروع الأولي المنتج حول توزيع الصور الخاصة والقابلة للملاحظة والإدارة؛ راجعnebulacr.orgللاطلاع على الصفحة المقصودة العامة وgithub.com/bwalia/nebulacrلمعرفة المصدر والإصدارات.
لماذا تتبنى المؤسسات سجل OCI خاصًا
أصبحت صور الحاويات الآن وحدة النشر لمعظم الفرق السحابية الأصلية. يتيح لك السجل الذي يعيش فقط داخل حدود الأمان الخاصة بك فرض إقامة بياناتوضوابط سلسلة التوريدوالدقيقة RBACوبتكلفة متوقعة(خاصة عند دمجها مع التخزين المؤقت القابل للسحب للسجلات الأولية). يستهدف NebulaCR المشغلين الذين يحتاجون إلى سير عمل متوافق مع Docker دون التنازل عن الهوية أو إمكانية التدقيق أو المرونة متعددة المناطق.
مساحة عمل الصدأ (Cargo.toml)
UpstreamCargo.tomlيعلن عن مساحة عمل مكونة من سبعة صناديق:سديم مشترك,سديم auth,سديم السجل, وحدة تحكم السديموومرآة السديموالسديم المتماثل. تقوم شجرة مشروع README بتعيين كل صندوق إلى الثنائيات أو المكتبات - خدمات التسجيل والمصادقة، ومصالح Kubernetes، ومحرك التخزين المؤقت للسحب، ومساعدي المرونة، والنسخ المتماثل متعدد المناطق. من المصدر، قم بتشغيلcargo build --workspace --releaseوcargo test --workspaceقبل النقل بالحاويات باستخدام الجذرDockerfileأوDockerfile.scratchالمحسّن.
الهندسة المعمارية مستخرجة من وثائق المشروع
ما وراء الثنائيات/المكتبات الأساسية الثلاث الموضحة أعلاه، وحدة تحكم السديمتتصالح Tenant/Project/AccessPolicy/TokenPolicy CRDs والسديم المرآةتنفذ التخزين المؤقت للسحب للسجلات الأولية،السديم المرونةتحمل عمليات إعادة المحاولات وقواطع الدائرة لمسارات النسخ المتماثل، والسديم النسخ المتماثليدعم مناطق متعددة أوضاع غير متزامنة أو شبه متزامنة مع تجاوز الفشل الموضح فيdocs/architecture.md. يظل سجل السديمقائمًا على Axum مع فرض JWT لكل طلب؛nebula-authيتحقق من صحة الرموز المميزة لهوية OIDC ويصدر JWTs للتسجيل قصير العمر. يظل التخزين هرميًا لكل مستأجر/مشروع بينما تظل الواجهات الخلفية قابلة للتوصيل.
مسارات الدخول والفحوصات الصحية والمقاييس
تُظهر بنية ASCII الخاصة بـ README تقسيم حركة المرور:/v2إلى خدمة التسجيل (5000) وتدفقات المصادقة (غالبًا تحت/auth) إلىnebula-auth(5001)، مع موفري OIDC خارجيين لـ على حد سواء. تعرض مخططات Helm مقاييس Prometheus (تشمل الأمثلةnebulacr_http_requests_totalوnebulacr_http_request_duration_secondsوnebulacr_storage_operations_totalوnebulacr_auth_tokens_issued_total) ووثيقةcurl http://localhost:5000/healthبعدkubectl port-forwardإلى خدمة التسجيل.
مصادقة الثقة المعدومة وتكامل CI
يؤكد NebulaCR علىعدم وجود كلمات مرور تسجيل طويلة العمرللأتمتة. تقدم أنظمة CI رموز هوية OIDC من جهات إصدار موثوقة؛ يقوم Nebula-auth بالتحقق من صحة التوقيعات، وتطبيق السياسة، وإرجاع JWTs ذات النطاق المحدد مع إعدادات TTL الافتراضية الضيقة (عادةً حوالي خمس دقائق). يقوم المشغلون البشريون بالمصادقة من خلال تدفقات كود ترخيص OIDC القياسية مع PKCE ضد موفري الخدمة مثل Azure AD أو Okta أو Google Workspace.
CRDs وذاكرة التخزين المؤقت القابلة للسحب وحدود المعدل
Kubernetes يدير مشغلوTenant(الحصص النسبية وروابط OIDC) وProject(مجموعات المستودعات وسياساتها) وAccessPolicy(RBAC) وTokenPolicy(حسابات TTL والروبوت). يقوم ملف README بتوثيق عمليات السحب مثلdocker pull <host>:5000/library/nginx:latestوبادئات GHCR وQuay، ومقطع مرآةcontainerdيشير إلىdocker.ioعند NebulaCR. يتم تطبيق تحديد السعر لكل IP ولكل مستأجر باستخدام صندوقgovernor.
قابلية المراقبة والتدقيق والامتثال
وفقًا لوثائق المشروع المحددة ضمنdocs/، يكشف NebulaCR عن مقاييسPrometheusمن خدمات التسجيل والمصادقة، وينبعث يقومبتسجيل JSON المنظم، ويدعم تتبعOpenTelemetryلإجراء تحليل أعمق. تسطح لوحة المعلومات المضمنة CPU والذاكرة والقرص وصحة النسخ المتماثل وتصفح المستودع ومسارات التدقيق المفلترة لعمليات الدفع والسحب والحذف - وهي أدلة مادية لمراجعات الأمان. يعمل توفيرSCIM 2.0على أتمتة دورات الانضمام والتحريك والمغادرة مع موفري الهوية، مما يؤدي إلى تقليص النافذة التي يحتفظ فيها الموظفون السابقون بالوصول الكامن.
توفر عالي، ومتعدد المناطق، وذاكرة تخزين مؤقت قابلة للسحب
يسلط README الضوء على خدماتعديمة الجنسيةمع القياس التلقائي للجراب الأفقي، وميزانيات تعطيل الجراب، وقواطع الدائرة لمسارات النسخ المتماثل. يوصف النسخ المتماثل متعدد المناطق بأنه غير متزامن مع عناصر التحكم في المرونة، لذا يمكن أن تفشل عمليات القراءة عندما تتدهور المنطقة. يعمل التخزين المؤقت بالسحب على تقليل عرض النطاق الترددي وسحب زمن الاستجابة للسجلات الأولية بما في ذلك Docker Hub وGHCR وGCR وQuay.io وregistry.k8s.io.
البدء
للحصول على تجربة محلية بسيطة، مستندات READMEdocker run -p 5000:5000 bwalia/nebulacr:latestوdocker compose up -dللتسجيل بالإضافة إلى المصادقة على 5001 باستخدام مفاتيح JWT التي تم إنشاؤها، وتثبيت Helm منoci://ghcr.io/bwalia/charts/nebulacrأو GitHub Pages repo. يتم شحن الصور متعددة الأقواس بتنسيقlinux/amd64وlinux/arm64على Docker Hub وGHCR. تقوم فرق الإنتاج بتوصيلdeploy/helm/nebulacrمع مدخل TLS وOIDC وS3 الاختياريين وتجميع ServiceMonitor وقوالب NetworkPolicy من المخطط.
كيف يمكن لـ Workstation مساعدة
Workstation في تصميم وتنفيذ أنماط هندسة النظام الأساسي الآمنة - السجلات الخاصة، وخطوط أنابيب الترويج لـ GitOps، والسياسة كرمز، وإمكانية ملاحظة SRE - عبر البيئات السحابية والمحلية. لمراجعة البنية أو دعم التسليم، اتصل بـinfo@workstation.co.uk.