इस प्रोजेक्ट के बारे में
Agent Sandbox एक Kubernetes ऑपरेटर-शैली का प्रोजेक्ट है जो उन वर्कलोड के लिए `Sandbox` Custom Resource Definition और कंट्रोलर परिभाषित करता है जिन्हें स्थिर पहचान और स्थायी स्टोरेज वाला अलग-थलग, लंबे समय तक चलने वाला, सिंगल-कंटेनर एनवायरनमेंट चाहिए। इसे Kubernetes Deployments, जो स्टेटलेस रेप्लिकेटेड पॉड्स को लक्षित करते हैं, और StatefulSets, जो समर्पित सिंगलटन सैंडबॉक्स एब्स्ट्रैक्शन के बजाय क्रमांकित रेप्लिका प्रदान करते हैं, के बीच रखा गया है।
मुख्य `Sandbox` रिसोर्स एक स्टेटफुल पॉड का प्रबंधन करता है। प्रलेखित क्षमताओं में स्थिर होस्टनेम और नेटवर्क पहचान, रीस्टार्ट के बाद भी बनी रहने वाली स्थायी स्टोरेज, और कंट्रोलर-प्रबंधित लाइफसाइकल ऑपरेशन जैसे निर्माण, निर्धारित विलोपन, पॉज़िंग और रिज़्यूमिंग शामिल हैं। उपयोगकर्ता पॉड टेम्पलेट के माध्यम से पॉड परिभाषित करते हैं और परिणामी सैंडबॉक्स को उसके स्थिर होस्टनेम से एक्सेस कर सकते हैं।
यह प्रोजेक्ट स्पष्ट रूप से कंटेनर आइसोलेशन रनटाइम नहीं, बल्कि सैंडबॉक्स ऑर्केस्ट्रेटर है। यह `RuntimeClass` के माध्यम से सुरक्षित सैंडबॉक्स रनटाइम का उपयोग करने के लिए Kubernetes Pods को कॉन्फ़िगर करता है, और निम्न-स्तरीय कर्नेल तथा नेटवर्क आइसोलेशन को gVisor या Kata Containers जैसे प्रोजेक्ट्स को सौंपता है। उपयुक्त रनटाइम के साथ जोड़े जाने पर यह मल्टी-टेनेंट या अविश्वसनीय-कोड परिदृश्यों के लिए उपयुक्त होता है, जबकि सुरक्षा सीमा चयनित रनटाइम और Kubernetes कॉन्फ़िगरेशन पर छोड़ देता है।
एक वैकल्पिक extensions मॉड्यूल उच्च-स्तरीय API जोड़ता है:
- `SandboxTemplate` समान सैंडबॉक्स के लिए पुन: प्रयोज्य कॉन्फ़िगरेशन परिभाषित करता है।
- `SandboxClaim` सभी अंतर्निहित कॉन्फ़िगरेशन विवरण उजागर किए बिना, संभवतः वॉर्म पूल से, सैंडबॉक्स का अनुरोध करता है।
- `SandboxWarmPool` तेज़ आवंटन के लिए पहले से वॉर्म किए गए सैंडबॉक्स बनाए रखता है।
आर्किटेक्चर Kubernetes कंट्रोलर पैटर्न का अनुसरण करता है: उपयोगकर्ता Sandbox, Claim, Template या WarmPool कस्टम रिसोर्स बनाते हैं, और कंट्रोलर उन ऑब्जेक्ट्स को Pods और अन्य Kubernetes रिसोर्स में समन्वयित करते हैं। README में एक आर्किटेक्चर आरेख दिखाता है कि क्लेम वॉर्म पूल से सैंडबॉक्स अपनाते हैं और वॉर्म पूल टेम्पलेट्स को संदर्भित करते हैं।
इंस्टॉलेशन `kubectl` के साथ लागू किए जाने वाले रिलीज़ मैनिफेस्ट के रूप में प्रदान किया गया है। एक मानक मैनिफेस्ट core और extension दोनों कंपोनेंट इंस्टॉल करता है, जबकि अलग मैनिफेस्ट core-only इंस्टॉलेशन और वैकल्पिक extensions की अनुमति देते हैं। README में Kustomize के साथ स्रोत से मैनिफेस्ट रेंडर करना, एक Helm चार्ट, CRDs और कंट्रोलर डिप्लॉयमेंट के लिए सत्यापन कमांड, और अनइंस्टॉलेशन चरण भी प्रलेखित हैं। यह चेतावनी देता है कि CRDs हटाने से उनके कस्टम रिसोर्स का कैस्केडिंग विलोपन होता है।
प्रोग्रामेटिक एक्सेस Go और Python SDK के माध्यम से समर्थित है। Go SDK `go get sigs.k8s.io/agent-sandbox/clients/go/sandbox` से इंस्टॉल होता है, और Python SDK `k8s-agent-sandbox` के रूप में प्रकाशित है। एक वैकल्पिक Sandbox Router एक HTTP रिवर्स प्रॉक्सी है जो SDK या बाहरी क्लाइंट से ट्रैफ़िक को सैंडबॉक्स पॉड्स तक रूट कर सकता है, जिनमें ऐसे एनवायरनमेंट भी शामिल हैं जहाँ सीधा पॉड पोर्ट-फ़ॉरवर्डिंग उपलब्ध नहीं है।
प्रलेखित उपयोग मामलों में LLM-जनित कोड निष्पादित करने वाले अलग-थलग AI एजेंट रनटाइम, SWE-bench या R2E-Gym वर्कलोड जैसे रीइन्फोर्समेंट-लर्निंग और मूल्यांकन लूप, स्थायी डेवलपर एनवायरनमेंट, Jupyter-शैली नोटबुक सत्र, शोध उपकरण, और छोटी स्टेटफुल सिंगल-पॉड सेवाएँ शामिल हैं। वांछित दीर्घकालिक विशेषताओं में गहरी हाइबरनेशन, नेटवर्क कनेक्शन पर स्वचालित रिज़्यूम, कुशल इलास्टिक स्टोरेज, जहाँ समर्थित हो वहाँ रनटाइम-सहायित मेमोरी शेयरिंग, समृद्ध पहचान और कनेक्टिविटी, और एप्लिकेशन तथा एजेंट द्वारा प्रोग्रामेटिक उपभोग शामिल हैं।
यह प्रोजेक्ट Kubernetes SIG Apps के अंतर्गत विकसित है और Apache-2.0 लाइसेंस प्राप्त है। उन्नत कॉन्फ़िगरेशन दस्तावेज़ीकरण API QPS और वर्कर संख्या जैसी स्केल और कंकरेंसी ट्यूनिंग को कवर करता है, और एक अलग थ्रेट मॉडल सुरक्षा सीमाओं और शमन उपायों का वर्णन करता है।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.