एकाइहरू
1. DevOps र Cloud AI को परिचय: भूमिका, सीमा, प्रमाणीकरण, सुरक्षा र रहस्यहरू 2. कृत्रिम बुद्धिमत्ताको साथ CI/CD पाइपलाइनहरू डिजाइन गर्दै: GitHub कार्यहरू र GitLab CI 3. कोडको रूपमा पूर्वाधार प्रबन्ध गर्नुहोस्: टेराफार्म र आईएसीसँग कृत्रिम बुद्धिमत्ता 4. कन्टेनराइजेशन: कृत्रिम बुद्धिमत्ताको साथ डकरफाइल र छवि अनुकूलन 5. Kubernetes: Manifest, Helm र AI-संचालित अर्केस्ट्रेशन 6. अनुगमन र अवलोकन योग्यता: मेट्रिक, लग, ट्रेस र अलार्म नियम 7. घटना व्यवस्थापन र पोस्टमार्टम: कृत्रिम बुद्धिमत्ताको साथ मूल कारण विश्लेषण 8. क्लाउड लागत अनुकूलन (FinOps): कृत्रिम बुद्धिमत्ताको साथ फोहोरको लागि शिकार 9. स्क्रिप्ट र स्वचालन जेनेरेसन: Bash, Python र PowerShell 10. सुरक्षा र गोप्य व्यवस्थापन: DevSecOps र कृत्रिम बुद्धिमत्ता 11. उत्पादन प्रमाणीकरण, रिलीज रणनीतिहरू र अन्त-देखि-अन्त एआई कार्यप्रवाह
एकाइ 5 / 11

Kubernetes: Manifest, Helm र AI-संचालित अर्केस्ट्रेशन

लाभ:

  • आधारभूत वस्तुहरू (पोड, डिप्लोय, सेवा, कन्फिगम्याप, गोप्य, नेमस्पेस) र कुबर्नेट्सको घोषणात्मक दर्शन बुझ्ने र कृत्रिम बुद्धिमत्ताका लागि ठोस प्रकटीकरणहरू उत्पादन गर्ने क्षमता।
  • उत्पादनको लागि मेनिफेस्टहरू तयार पार्ने क्षमता र स्रोत सीमाहरू, स्वास्थ्य जाँचहरू (प्रोबहरू), निश्चित छवि ट्यागहरू र साँघुरो RBAC सँग सुरक्षित
  • कार्यान्वयन गर्नु अघि सही सन्दर्भ प्रमाणित गर्न र ड्राई-रन / डिफको साथ ड्राई-रन अनुशासन लागू गर्ने क्षमता

एक कन्टेनर चलाउन सजिलो छ। तर दर्जनौं सर्भरहरूमा सयौं कन्टेनरहरू फैलाउने प्रणाली स्थापना गर्दै, तिनीहरूमध्ये एउटा क्र्यास हुँदा स्वचालित रूपमा पुन: सुरु हुन्छ, लोड बढ्दा यसलाई प्रतिलिपि बनाउँछ, र शून्य डाउनटाइमको साथ अपडेट गर्दछ? त्यो अर्केस्ट्रेशन हो, र उद्योग मानक उपकरण Kubernetes (छोटोको लागि K8s) हो - प्लेटफर्म जसले क्लस्टरमा कन्टेनरहरू स्वचालित रूपमा डिप्लोइ, स्केल र व्यवस्थापन गर्दछ। Kubernetes शक्तिशाली तर जटिल छ: सबै कुरा लामो, इन्डेन्टेसन-संवेदनशील YAML फाइलहरू द्वारा परिभाषित गरिएको छ — जसलाई manifests भनिन्छ। यहाँ AI ले ताजा हावाको सास दिन्छ; सही सन्दर्भको साथ, यसले द्रुत रूपमा यी प्रकटहरू उत्पादन गर्दछ र तिनीहरूको रहस्यमय त्रुटिहरू डिकोड गर्दछ।

तर Kubernetes मा, एक गलत प्रकटीकरण भनेको सम्पूर्ण सेवा खडा गर्न असफल हुनु, गलत मापन, वा एक जोखिम छोड्नु हो। AI ले उत्पादन गरेको प्रत्येक म्यानिफेस्टलाई बुझ्ने र प्रमाणित गर्नु तपाईंको जिम्मेवारी हो - विशेष गरी kubectl लागू गर्नु अघि।

Kubernetes कोर वस्तुहरू

Kubernetes को अडिट गर्न को लागी, तपाईले मुख्य अवधारणाहरु थाहा पाउनु पर्छ:

  • पोड: सबैभन्दा सानो काम गर्ने एकाइ; यसमा एक वा धेरै कन्टेनरहरू छन्। सामान्यतया, पोड प्रत्यक्ष रूपमा प्रयोग हुँदैन, तर यसलाई व्यवस्थापन गर्ने अभिभावक वस्तुहरू प्रयोग गरिन्छ।
  • डिप्लोयमेन्ट: एप्लिकेसनको कति प्रतिहरू चल्नेछ, कुन छविले प्रयोग गर्नेछ, र यसलाई कसरी अद्यावधिक गरिनेछ भनेर परिभाषित गर्दछ। यदि पोड क्र्यास भयो भने यसले स्वचालित रूपमा यसलाई पुन: सिर्जना गर्नेछ।
  • सेवा: एक निश्चित नेटवर्क ठेगाना र पोडहरूमा लोड सन्तुलन प्रदान गर्दछ; पोडहरू आउँछन् र जान्छन्, पहुँच ठेगाना परिवर्तन हुँदैन।
  • कन्फिगम्याप र गोप्य: कन्फिगरेसन मानहरू र गोप्य जानकारी पोडहरूबाट अलग राख्छ। कन्फिगम्याप स्पष्ट सेटिङहरूको लागि हो, गोप्य संवेदनशील मानहरूको लागि हो।
  • Namespace: क्षेत्र जसले तार्किक रूपमा विभाजित र स्रोतहरूलाई अलग गर्छ (जस्तै dev, prod)।
  • प्रवेश: नियम सेट जसले HTTP ट्राफिकलाई बाह्य संसारबाट क्लस्टरमा सेवाहरूमा निर्देशित गर्दछ।

Helm Kubernetes को "प्याकेज प्रबन्धक" हो: यसले तपाइँलाई पुनरावर्ती प्रकटीकरणहरू (चार्टहरू) टेम्प्लेट गर्न र एकल आदेशको साथ विभिन्न वातावरणमा फरक मानहरू स्थापना गर्न अनुमति दिन्छ। AI ले कच्चा manifest र Helm चार्ट दुवै उत्पादन गर्दछ।

किन त्यहाँ धेरै वस्तुहरू छन्? किनभने Kubernetes को मूल दर्शन घोषणात्मक छ: तपाईंले "तपाईले प्रणाली अन्ततः कसरी हेर्न चाहनुहुन्छ" परिभाषित गर्नुहुन्छ (जस्तै "सधैं यो अनुप्रयोगको 3 प्रतिलिपिहरू चलिरहेको छ"), जबकि Kubernetes निरन्तर वर्तमान स्थितिलाई इच्छित अवस्थाको नजिक लैजान्छ। यदि पोड मर्छ, यसले नयाँ बनाउँछ; यदि नोड तल जान्छ भने, यसले कार्यभारलाई अर्को नोडमा सार्छ। यसैले मेनिफेस्टहरू "गर्नुहोस्" आदेशहरू होइनन्, तर "यसलाई यस्तो हुन दिनुहोस्" रेसिपीहरू। AI ले उत्पादन गर्ने मेनिफेस्टहरू पढ्दा यो भिन्नता बुझ्न महत्त्वपूर्ण छ: प्रत्येक डोमेनले प्रणालीको इच्छित अवस्थाको अंश वर्णन गर्दछ। गलत डोमेन भनेको कुबर्नेट्सले गलत लक्ष्य तिर काम गरिरहेको छ — र त्यो लक्ष्य चुपचाप, निरन्तर लागू गरिएको छ।

सुझाव: Kubernetes मा, सबैभन्दा महत्त्वपूर्ण सुरक्षित परीक्षण उपकरण kubectl apply --dry-run=server -f file.yaml हो: यसले सर्भरले स्वीकार गर्छ कि गर्दैन र वास्तवमा manifest लागू नगरी के गर्ने भनेर देखाउँछ। उत्पादनमा manifest लागू गर्नु अघि dry-run र kubectl diff चलाउन निश्चित हुनुहोस्।

चरणबद्ध रूपमा: AI सँग प्रकटहरू सिर्जना गर्दै

  1. आवेदन र आवश्यकता वर्णन गर्नुहोस्। छविको नाम, पोर्ट, कति प्रतिकृतिहरू, स्रोत सीमाहरू (CPU/मेमोरी)।
  2. डिप्लोयमेन्ट + सेवा अनुरोध गर्नुहोस्। सामान्यतया दुवै सँगै आवश्यक छ।
  3. अलग कन्फिगरेसन र गोप्य। कन्फिगम्यापमा सेटिङहरू, गोप्यमा संवेदनशील मानहरू।
  4. स्वास्थ्य जाँच थप्नुहोस्। livenessProbe (यो लाइभ) र ReadinessProbe (के यो ट्राफिकको लागि तयार छ) महत्वपूर्ण छन्।
  5. स्रोत सीमा सेट गर्नुहोस्। अनुरोध/सीमा बिना पोडले सम्पूर्ण नोड उपभोग गर्न सक्छ।
  6. `--dry-run` र `diff` सँग रुजु गर्नुहोस्, त्यसपछि लागू गर्नुहोस्। परीक्षण नाम स्थानमा पहिलो।

सुरक्षा: Kubernetes-विशिष्ट जोखिम

  1. गोप्य साँच्चै गोप्य छैन - यो केवल base64 हो। Kubernetes गोप्य वस्तु base64 ले मानहरू सङ्केत गर्छ; यो इन्क्रिप्शन होइन, यो सजिलै डिक्रिप्ट गरिएको छ। साँचो गोपनीयताको लागि, etcd इन्क्रिप्सन र बाह्य भल्ट (भल्ट, क्लाउड गोप्य प्रबन्धक) आवश्यक छ। गोप्य प्रकटीकरणहरू सिधै गिटमा नगर्नुहोस् (त्यहाँ यसका लागि समाधानहरू छन् जस्तै सील गरिएका गोप्यहरू/बाह्य गोप्यहरू)।
  2. स्रोत सीमा सेट गर्नुहोस्। सीमा बिनाको पोडले मेमोरी लीकको साथ सम्पूर्ण नोड क्र्यास गर्न सक्छ।
  3. न्यूनतम प्राधिकरण (RBAC)। भूमिका-आधारित पहुँच नियन्त्रणको साथ, प्रत्येक सेवा/प्रयोगकर्तालाई चाहिने अनुमतिहरू मात्र हुन्छन्। AI ले कहिलेकाहीं ठूलो क्लस्टर-एडमिन दिन्छ; यसलाई संकुचित गर्नुहोस्।
  4. `पछिल्लो` छवि ट्याग प्रयोग नगर्नुहोस्। तपाइँलाई थाहा छैन कुन संस्करण चलिरहेको छ र तपाइँ यसलाई फिर्ता गर्न सक्नुहुन्न।
सावधानी: kubectl मेटाउन वा गलत आवेदनले लाइभ डिप्लोयमेन्टलाई नष्ट गर्न सक्छ। आदेशहरू चलाउनु अघि तपाइँ कुन नेमस्पेस (kubectl कन्फिग वर्तमान-सन्दर्भ) मा हुनुहुन्छ भनेर प्रमाणित गर्न निश्चित हुनुहोस्; आकस्मिक कार्य उत्पादन सन्दर्भमा एक सामान्य आपदा हो।

कच्चा म्यानिफेस्ट बनाम हेल्म तालिका

मापदण्ड

कच्चा YAML प्रकट

हेलम चार्ट

स्थापना

kubectl लागू -f

हेलम स्थापना

मल्टिमिडिया (dev/prod)

कपी-पेस्ट, त्रुटि प्रवण

एकल चार्ट, विभिन्न मानहरू।yaml

संस्करण/रोलब्याक

हातले

हेल्म रोलब्याक संग सजिलो

सिक्ने वक्र

कम

मध्यम

कहिले

सानो, एकल वातावरण

बहु-मिडिया, दोहोरिने सेवा

तीन मिनी केसहरू

केस 1 - दुर्घटनाग्रस्त सेवा को रहस्य। एउटा पोड निरन्तर रिबुट हुँदै थियो (CrashLoopBackOff)। टोलीले AI लाई लग र म्यानिफेस्ट दियो; एआईले देखाएको छ कि पोडलाई कहिल्यै "तयार" मानिदैन किनभने रेडिनेसप्रोबले गलत पोर्ट हेरिरहेको थियो। उनीहरूले पोर्ट फिक्स गरे, १० मिनेटमा सेवा स्थिर भयो। म्यानुअल रूपमा यो सम्बन्ध स्थापना गर्न घण्टा लाग्न सक्छ।

केस 2 - सीमाहरू सेट नगर्दा गाँठ तोडियो। परिनियोजनमा कुनै सीमा थिएन; मेमोरी चुहावटले पोड फुल्यो र सम्पूर्ण नोड क्र्यास भयो, छिमेकी सेवाहरू पनि तल ल्यायो। घटना पछि, तिनीहरूले AI लाई "सबै डिप्लोयमेन्टहरूमा उचित CPU/मेमोरी अनुरोधहरू र सीमाहरू थप्नुहोस्" भन्यो र यसलाई मानक बनायो। डाउनटाइमको एक हराइरहेको लाइन लागत घण्टा।

केस ३ — ठूलो RBAC कैद गरियो। अनुसन्धानको क्रममा, एआई द्वारा उत्पन्न गरिएको सेवा खाता मेनिफेस्ट क्लस्टर-एडमिन भूमिकामा बाँधिएको फेला पर्यो - जसको अर्थ सेवाले सम्पूर्ण क्लस्टर व्यवस्थापन गर्न सक्छ। टोलीले आफ्नो नेमस्पेसमा पोडहरू मात्र पढ्ने अनुमतिलाई सीमित गर्यो। न्यूनतम विशेषाधिकारको सिद्धान्तले सुरक्षा जोखिम बन्द गर्यो।

चार प्रतिलिपि गर्न मिल्ने टेम्प्लेटहरू

1) परिनियोजन + सेवा उत्पादन:

Kubernetes को लागि एक तैनाती र सेवा प्रकटीकरण लेख्नुहोस्। आवेदन: [AD], छवि: [छवि: निश्चित-संस्करण], पोर्ट: [X], प्रतिकृति: [N]। नियमहरू:- CPU/मेमोरी अनुरोधहरू र सीमाहरू थप्नुहोस्।- livenessProbe र ReadinessProbe परिभाषित गर्नुहोस्।- ConfigMap बाट कन्फिगरेसन पढ्नुहोस्, गोप्य वस्तुबाट गोप्य; manifest मा मानहरू इम्बेड नगर्नुहोस्, प्लेसहोल्डरहरू प्रयोग गर्नुहोस्। - छवि ट्याग ": नवीनतम" प्रयोग नगर्नुहोस्। विवरण सहित दिनुहोस्।

2) प्रकट त्रुटि समाधान:

हालको पोड [CrashLoopBackOff/Pending/ImagePullBackOff] अवस्थामा छ। निम्न manifest र 'kubectl describe' आउटपुट अनुसार, सम्भाव्यताको क्रममा सम्भावित मूल कारणहरू सूचीबद्ध गर्नुहोस् र प्रत्येकको लागि verify आदेश जारी गर्नुहोस्। म्यानिफेस्ट: [YAML] वर्णन गर्नुहोस्: [आउटपुट]

3) सुरक्षा/अखण्डता जाँच:

यो Kubernetes manifest जाँच गर्नुहोस्: के संसाधन सीमा हराइरहेको छ, के यो प्रोब हराइरहेको छ, के त्यहाँ एउटा : नवीनतम ट्याग छ, के त्यहाँ अत्यधिक फराकिलो RBAC/अनुमति छ, के गोप्य म्यानिफेस्टमा इम्बेड गरिएको छ? नतिजाहरूलाई महत्त्वको क्रम र सुधारसहित लेख्नुहोस्। प्रकट: [YAML]

4) हेलम चार्टमा रूपान्तरण:

निम्न कच्चा प्रकटीकरणहरूलाई पुन: प्रयोज्य हेल्म चार्टमा रूपान्तरण गर्नुहोस्: कुन मानहरू values.yaml (छवि, प्रतिकृति, स्रोत, वातावरण) मा जानुपर्छ? चार्ट संरचना र नमूना मानहरू देखाउनुहोस्। yaml. Manifests: [YAML]

कमजोर प्रम्प्ट / बलियो प्रम्प्ट

कमजोर: "मेरो आवेदनको लागि Kubernetes YAML लेख्नुहोस्।"

नतिजा: एक नो-प्रोब, नो-लिमिट डिप्लोइमेन्ट: नवीनतम ट्यागको साथ, गोप्य प्लेन इम्बेड गर्दै; उत्पादनमा असुरक्षित र कमजोर।

बलियो: "Kubernetes Deployment + Service लेख्नुहोस्। छवि myapp: 1.4.2, 3 प्रतिकृतिहरू, 8080 पोर्टहरू। CPU 100m-500m, मेमोरी 128Mi-512Mi अनुरोधहरू/सीमाहरू थप्नुहोस्। /healthz को लागि liveness probe राख्नुहोस्, Readyness probe' बाट वस्तु पठाउनुहोस्। म्यानिफेस्टमा इम्बेड गर्नुहोस् वर्णन सहित।

भिन्नता: दोस्रो प्रम्प्ट संस्करणले स्केल, स्रोत सीमा, स्वास्थ्य जाँच र गोप्य नियम दिन्छ; उत्पादन उत्पादन र सुरक्षित नजिक छ।

सामान्य गल्तीहरू

  • स्रोत सीमा तोकिएको छैन। एउटै पोडले सम्पूर्ण नोड उपभोग गर्न सक्छ।
  • स्वास्थ्य जाँच (प्रोब) थपिएको छैन। Kubernetes क्र्यास भएको/तयार नभएको पोड पत्ता लगाउन सक्दैन।
  • `: नवीनतम` ट्याग। कुन संस्करण चलिरहेको छ भन्ने स्पष्ट छैन, यसलाई फिर्ता गर्न सकिँदैन।
  • सीधै Git मा गोप्य प्रतिबद्धता। Base64 एन्क्रिप्शन होइन; सबैले समाधान गर्छन्।
  • गलत सन्दर्भ/नामस्थानमा आदेशहरू चलाउँदै। उत्पादनमा क्र्यास गर्ने सबैभन्दा सामान्य तरिका।
  • `--dry-run`/`diff` छोड्दै। कार्यान्वयन हुनुअघि के हुन्छ हेर्दैन ।

संक्षेपमा

Kubernetes एक शक्तिशाली तर जटिल अर्केस्ट्रेटर हो जसले क्लस्टरमा कन्टेनरहरूलाई स्वचालित रूपमा डिप्लोइ, स्केल र अनुकूलन गर्छ; सबै कुरा manifest YAMLs द्वारा परिभाषित गरिएको छ, जसलाई Helm टेम्प्लेटाइज गर्दछ। AI ले तुरुन्तै डिप्लोयमेन्ट/सर्भिस म्यानिफेस्टहरू र हेल्म चार्टहरू उत्पादन गर्छ, रहस्यमय बगहरू समाधान गर्छ — तर तपाईंले स्पष्ट रूपमा स्रोत सीमा, स्वास्थ्य जाँच, अपरिवर्तनीय छवि ट्याग, संकीर्ण RBAC र गोप्य सुरक्षा नियमहरूको लागि सोध्नु पर्छ। --dry-run, diff र सही सन्दर्भ जाँच गर्ने बानीहरू हुन् जसले प्रोड क्र्यासहरूलाई रोक्छ।

आवेदन कार्य

AI लाई "Deployment + Service Generation" टेम्प्लेटको साथ नमूना अनुप्रयोगको लागि एउटा manifest उत्पन्न गराउनुहोस्। त्यसपछि: (१) यसलाई "सुरक्षा/सेनिटी जाँच" टेम्प्लेटको साथ स्रोत सीमा, अनुसन्धान, : नवीनतम, र गोप्यको लागि जाँच गर्नुहोस्; (२) यदि सम्भव भएमा परीक्षण क्लस्टर/मिनिक्युबमा kubectl लागू --dry-run=सर्भर चलाउनुहोस् र आउटपुट पढ्नुहोस्; (3) तपाईंले हराइरहेको फेला पार्ने दुई सबैभन्दा महत्त्वपूर्ण सुरक्षा/मजबूत वस्तुहरू नोट गर्नुहोस्।

चेकलिस्ट

  • [ ] मैले मेरो अनुरोधमा छवि संस्करण, प्रतिकृतिहरूको संख्या, पोर्ट र स्रोत सीमाहरू थपेको छु।
  • [ ] मैले म्यानिफेस्टमा जीवन्तता र तत्परता जाँच थपें।
  • [] छवि ट्याग निश्चित; मैले प्रयोग गरेन: नवीनतम।
  • [ ] रहस्य प्रकटमा सम्मिलित छैन; मैले गोप्य वस्तु/बाह्य भल्ट प्रयोग गरें।
  • [ ] मैले RBAC/अनुमतिहरूलाई न्यूनतम अनुमतिहरूमा संकुचित गरें।
  • [] आवेदन गर्नु अघि, मैले प्रमाणित गरें कि म सही सन्दर्भमा थिएँ र त्यो --dry-run/diff आउटपुटहरू।