C# को Kubernetes पर डिप्लॉय करना: शुरुआती लोगों के लिए बुनियादी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: C# और Kubernetes एक शक्तिशाली संयोजन क्यों हैं

\n\n

आधुनिक डेवलपमेंट में अक्सर केवल कोड लिखना ही नहीं, बल्कि उसे सही ढंग से पैकेज करना और क्लाउड वातावरण में चलाना भी शामिल है। Kubernetes (या K8s) कंटेनरों के ऑर्केस्ट्रेशन के लिए डी-फैक्टो मानक बन गया है, और C# (.NET) उच्च-लोड वेब एप्लिकेशन और माइक्रोसर्विसेज बनाने के लिए सबसे लोकप्रिय भाषाओं में से एक है।

\n\n

इस गाइड में, हम C# में तैयार एप्लिकेशन से लेकर Kubernetes क्लस्टर में इसके पूर्ण डिप्लॉयमेंट तक का सफर तय करेंगे। आप सीखेंगे कि Docker इमेज कैसे बनाएं, डिप्लॉयमेंट और सर्विस के लिए मेनिफेस्ट कैसे लिखें, और फिर kubectl का उपयोग करके सब कुछ कैसे चलाएं। कोई जादू नहीं - केवल अभ्यास।

\n\n

चरण 1: .NET एप्लिकेशन तैयार करना और कंटेनरीकरण

\n\n

1.1 C# में एक सरल वेब-API बनाना

\n\n

प्रदर्शन के लिए, हम एक न्यूनतम ASP.NET Core Web API बनाएंगे। टर्मिनल खोलें और निष्पादित करें:

\n\n
dotnet new webapi -n MyK8sApp\ncd MyK8sApp
\n\n

डिफ़ॉल्ट रूप से, प्रोजेक्ट में पहले से ही WeatherForecastController कंट्रोलर शामिल है। सुनिश्चित करें कि एप्लिकेशन स्थानीय रूप से चलता है:

\n\n
dotnet run
\n\n

http://localhost:5000/weatherforecast पर जाएं - आपको एक JSON प्रतिक्रिया दिखनी चाहिए। अब हमारा एप्लिकेशन पैकेजिंग के लिए तैयार है।

\n\n

1.2 Dockerfile बनाना

\n\n

Kubernetes पर डिप्लॉयमेंट कंटेनरीकरण के बिना संभव नहीं है। प्रोजेक्ट की रूट डायरेक्टरी में Dockerfile फ़ाइल बनाएं:

\n\n
# बिल्ड के लिए आधिकारिक इमेज का उपयोग करें\nFROM mcr.microsoft.com/dotnet/sdk:8.0 AS build\nWORKDIR /app\n\n# प्रोजेक्ट फ़ाइलों को कॉपी करें और डिपेंडेंसी रिस्टोर करें\nCOPY *.csproj .\nRUN dotnet restore\n\n# बाकी फ़ाइलों को कॉपी करें और एप्लिकेशन को बिल्ड करें\nCOPY . .\nRUN dotnet publish -c Release -o out\n\n# फाइनल इमेज - केवल runtime\nFROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime\nWORKDIR /app\nCOPY --from=build /app/out .\nENTRYPOINT ["dotnet", "MyK8sApp.dll"]
\n\n

ध्यान दें: हम मल्टी-स्टेज बिल्ड का उपयोग कर रहे हैं - यह अंतिम इमेज के आकार को कम करता है और सुरक्षा बढ़ाता है।

\n\n

1.3 Docker इमेज को बिल्ड और जांचना

\n\n

इमेज बनाएं और इसे स्थानीय रूप से चलाएं:

\n\n
docker build -t myk8sapp:latest .\ndocker run -d -p 8080:80 --name myapp myk8sapp:latest
\n\n

काम की जांच करें: http://localhost:8080/weatherforecast। अगर सब कुछ काम करता है - बढ़िया। कंटेनर को रोकें:

\n\n
docker stop myapp && docker rm myapp
\n\n

चरण 2: Kubernetes की मूल बातें - डिप्लॉयमेंट के लिए क्या जानना चाहिए

\n\n

मेनिफेस्ट लिखने से पहले, आइए Kubernetes की प्रमुख अवधारणाओं को समझें:

\n\n
    \n
  • Pod - डिप्लॉयमेंट की सबसे छोटी इकाई। इसमें एक या अधिक कंटेनर होते हैं।
  • \n
  • Deployment - Pods की स्थिति का प्रबंधन करता है: स्केलिंग, अपडेट, विफलता के बाद रिकवरी।
  • \n
  • Service - एक एब्स्ट्रैक्शन जो Pods तक नेटवर्क एक्सेस प्रदान करता है। आमतौर पर ClusterIP (आंतरिक) या LoadBalancer (बाहरी) प्रकार का उपयोग किया जाता है।
  • \n
  • ConfigMap / Secret - कॉन्फ़िगरेशन और संवेदनशील डेटा को स्टोर करने के लिए।
  • \n
\n\n

हम स्थानीय परीक्षण के लिए minikube का उपयोग करेंगे। इसे आधिकारिक निर्देशों के अनुसार इंस्टॉल करें।

\n\n

क्लस्टर शुरू करें:

\n\n
minikube start
\n\n

चरण 3: C# एप्लिकेशन के लिए Kubernetes मेनिफेस्ट बनाना

\n\n

3.1 Deployment मेनिफेस्ट

\n\n

deployment.yaml फ़ाइल बनाएं:

\n\n
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: myk8sapp-deployment\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: myk8sapp\n  template:\n    metadata:\n      labels:\n        app: myk8sapp\n    spec:\n      containers:\n      - name: myk8sapp\n        image: myk8sapp:latest\n        imagePullPol                

ब्लॉग

पुस्तक अनुशंसाएँ