NebulaCR: एंटरप्राइज़ OCI रजिस्ट्री, अवलोकनशीलता, और बिना किसी समझौते के अनुपालन
वास्तुकला, शून्य-विश्वास प्रमाणीकरण, अवलोकनशीलता, और Kubernetes संचालन
कार्यकारी सारांश
NebulaCR एक ओपन-सोर्स, क्लाउड-नेटिव है OCI कंटेनर रजिस्ट्री जंग में लिखा है. यह मानकों के अनुरूप है निहारिका-रजिस्ट्री सेवा (पोर्ट 5000) एक समर्पित के साथ नेबुला-auth टोकन सेवा (पोर्ट 5001), वैकल्पिक हाशीकॉर्प वॉल्ट हस्ताक्षरित कुंजियों के लिए एकीकरण, प्लग करने योग्य वस्तु भंडारण (फ़ाइल सिस्टम, S3, GCS, Azure ब्लॉब), और प्रथम श्रेणी Kubernetes किरायेदारों, परियोजनाओं और नीतियों के लिए CRDs के साथ पैकेजिंग। अपस्ट्रीम प्रोजेक्ट उत्पाद को निजी, अवलोकन योग्य और शासन योग्य छवि वितरण के आसपास रखता है; देखना nebulacr.org सार्वजनिक लैंडिंग पृष्ठ के लिए और github.com/bwalia/nebulacr स्रोत और रिलीज़ के लिए।
उद्यम निजी OCI रजिस्ट्री क्यों अपनाते हैं?
कंटेनर छवियां अब अधिकांश क्लाउड-नेटिव टीमों के लिए परिनियोजन की इकाई हैं। एक रजिस्ट्री जो केवल आपकी सुरक्षा सीमा के अंदर रहती है, आपको लागू करने देती है डेटा रेजीडेंसी, आपूर्ति-श्रृंखला नियंत्रण, बारीक दाने वाला RBAC, और पूर्वानुमानित लागत (विशेषकर जब अपस्ट्रीम रजिस्ट्रियों के लिए पुल-थ्रू कैशिंग के साथ जोड़ा जाता है)। NebulaCR उन ऑपरेटरों को लक्षित करता है जिन्हें पहचान, ऑडिटेबिलिटी या बहु-क्षेत्रीय लचीलेपन को छोड़े बिना Docker-संगत वर्कफ़्लो की आवश्यकता होती है।
जंग कार्यक्षेत्र (Cargo.toml)
नदी के ऊपर Cargo.toml सात बक्सों का कार्यक्षेत्र घोषित करता है: नीहारिका-सामान्य, नेबुला-auth, निहारिका-रजिस्ट्री, नीहारिका-नियंत्रक, नीहारिका-लचीलापन, नीहारिका-दर्पण, और नीहारिका-प्रतिकृति. README का प्रोजेक्ट ट्री प्रत्येक क्रेट को बायनेरिज़ या लाइब्रेरीज़-रजिस्ट्री और ऑथ सेवाओं, Kubernetes रिकॉन्सिलर, पुल-थ्रू कैश इंजन, रेजिलिएंस हेल्पर्स और मल्टी-रीजन प्रतिकृति के लिए मैप करता है। स्रोत से, चलाएँ cargo build --workspace --release और cargo test --workspace जड़ के साथ कंटेनरीकरण करने से पहले Dockerfile या अनुकूलित Dockerfile.scratch.
परियोजना प्रलेखन से आसुत वास्तुकला
ऊपर वर्णित तीन मुख्य बायनेरिज़/पुस्तकालयों से परे, नीहारिका-नियंत्रक किरायेदार/प्रोजेक्ट/एक्सेसपॉलिसी/टोकनपॉलिसी CRDs का समाधान करता है, नीहारिका-दर्पण अपस्ट्रीम रजिस्ट्रियों के लिए पुल-थ्रू कैशिंग लागू करता है, नीहारिका-लचीलापन प्रतिकृति पथों के लिए पुनः प्रयास और सर्किट ब्रेकर ले जाता है, और नीहारिका-प्रतिकृति इसमें वर्णित फेलओवर के साथ मल्टी-रीजन एसिंक या सेमी-सिंक मोड का समर्थन करता है docs/architecture.md. निहारिका-रजिस्ट्री प्रति अनुरोध JWT प्रवर्तन के साथ Axum-आधारित रहता है; नेबुला-auth ओआईडीसी पहचान टोकन को मान्य करता है और अल्पकालिक रजिस्ट्री जेडब्ल्यूटी जारी करता है। भंडारण प्रति किरायेदार/परियोजना के अनुसार पदानुक्रमित रहता है जबकि बैकएंड प्लग करने योग्य रहता है।
प्रवेश मार्ग, स्वास्थ्य जांच और मेट्रिक्स
README का ASCII आर्किटेक्चर ट्रैफ़िक विभाजन दिखाता है: /v2 रजिस्ट्री सेवा (5000) और प्रमाणीकरण प्रवाह (अक्सर नीचे) के लिए /auth) को नेबुला-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 रजिस्ट्री सेवा के लिए.
शून्य-विश्वास प्रमाणीकरण और सीआई एकीकरण
NebulaCR जोर देता है कोई लंबे समय तक चलने वाला रजिस्ट्री पासवर्ड नहीं स्वचालन के लिए. सीआई सिस्टम विश्वसनीय जारीकर्ताओं से ओआईडीसी पहचान टोकन प्रस्तुत करते हैं; नेबुला-ऑथ हस्ताक्षरों को मान्य करता है, नीति लागू करता है, और सख्त टीटीएल डिफ़ॉल्ट (आमतौर पर लगभग पांच मिनट) के साथ स्कोप्ड जेडब्ल्यूटी लौटाता है। मानव ऑपरेटर Azure AD, Okta, या Google Workspace जैसे प्रदाताओं के विरुद्ध PKCE के साथ मानक OIDC प्राधिकरण-कोड प्रवाह के माध्यम से प्रमाणित करते हैं।
CRDs, पुल-थ्रू कैश और दर सीमाएँ
Kubernetes ऑपरेटर प्रबंधन करते हैं Tenant (कोटा, ओआईडीसी बाइंडिंग), Project (भंडार समूह और नीतियां), AccessPolicy (RBAC), और TokenPolicy (टीटीएल और रोबोट खाते)। README दस्तावेज़ पुल-थ्रू जैसे खींचते हैं docker pull <host>:5000/library/nginx:latest, जीएचसीआर और क्वे उपसर्ग, और ए containerd दर्पण छंद इंगित करता है docker.io NebulaCR पर। दर सीमित करना प्रति आईपी और इसका उपयोग करने वाले प्रति किरायेदार पर लागू होता है governor टोकरा.
अवलोकनशीलता, लेखापरीक्षा, और अनुपालन
नीचे दिए गए प्रोजेक्ट दस्तावेज़ीकरण के अनुसार docs/, NebulaCR उजागर करता है Prometheus मेट्रिक्स रजिस्ट्री और प्राधिकरण सेवाओं से, उत्सर्जित होता है संरचित JSON लॉग, और समर्थन करता है ओपनटेलीमेट्री गहन विश्लेषण के लिए अनुरेखण। एम्बेडेड डैशबोर्ड CPU, मेमोरी, डिस्क, प्रतिकृति स्वास्थ्य, रिपॉजिटरी ब्राउज़िंग, और पुश, पुल और डिलीट के लिए फ़िल्टर किए गए ऑडिट ट्रेल्स को सुरक्षा समीक्षाओं के लिए सामग्री साक्ष्य के रूप में प्रदर्शित करता है। एससीआईएम 2.0 प्रावधान पहचान प्रदाताओं के साथ जॉइनर-मूवर-लीवर चक्र को स्वचालित करता है, जिससे वह विंडो सिकुड़ जाती है जहां पूर्व कर्मचारी गुप्त पहुंच बनाए रखते हैं।
उच्च उपलब्धता, बहु-क्षेत्र और पुल-थ्रू कैश
README पर प्रकाश डाला गया है राज्यविहीन सेवाएँ क्षैतिज पॉड ऑटोस्केलिंग, पॉड व्यवधान बजट और प्रतिकृति पथों के लिए सर्किट ब्रेकर के साथ। बहु-क्षेत्र प्रतिकृति को लचीलेपन नियंत्रणों के साथ अतुल्यकालिक के रूप में वर्णित किया गया है, इसलिए जब कोई क्षेत्र खराब हो जाता है तो रीड्स विफल हो सकता है। पुल-थ्रू कैशिंग Docker हब, GHCR, GCR, Quay.io और रजिस्ट्री.k8s.io सहित अपस्ट्रीम रजिस्ट्रियों के लिए बैंडविड्थ और पुल विलंबता को कम करता है।
शुरू करना
न्यूनतम स्थानीय परीक्षण के लिए README दस्तावेज़ docker run -p 5000:5000 bwalia/nebulacr:latest, docker compose up -d उत्पन्न JWT कुंजियों के साथ 5001 पर रजिस्ट्री प्लस ऑथ के लिए, और Helm से इंस्टॉल होता है oci://ghcr.io/bwalia/charts/nebulacr या GitHub पेज रेपो। मल्टी-आर्क छवियाँ इस रूप में भेजी जाती हैं linux/amd64 और linux/arm64 Docker हब और GHCR पर। उत्पादन टीमों के तार deploy/helm/nebulacr चार्ट से प्रवेश TLS, वैकल्पिक OIDC और S3, ServiceMonitor स्क्रैपिंग और NetworkPolicy टेम्पलेट्स के साथ।
Workstation कैसे मदद कर सकता है
Workstation क्लाउड और ऑन-प्रिमाइसेस वातावरण में सुरक्षित प्लेटफ़ॉर्म इंजीनियरिंग पैटर्न-निजी रजिस्ट्रियां, GitOps प्रचार पाइपलाइन, कोड के रूप में नीति और SRE अवलोकनशीलता को डिज़ाइन और कार्यान्वित करता है। आर्किटेक्चर समीक्षा या डिलीवरी सहायता के लिए संपर्क करें info@workstation.co.uk.