Kubernetes पर JavaScript (Node.js) की तैनाती: चरण-दर-चरण मार्गदर्शिका

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

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

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

परिचय: Node.js के लिए Kubernetes क्यों?

JavaScript (Node.js) पर आधुनिक वेब एप्लिकेशन को उच्च उपलब्धता, स्केलेबिलिटी और दोष सहनशीलता की आवश्यकता होती है। जब आपका एप्लिकेशन एक सर्वर की सीमा से बाहर निकलता है, तो मैन्युअल प्रबंधन एक बुरा सपना बन जाता है। यहाँ Kubernetes (K8s) मदद करता है — एक कंटेनर ऑर्केस्ट्रेशन सिस्टम जो एप्लिकेशन की तैनाती, स्केलिंग और प्रबंधन को स्वचालित करता है।

इस मार्गदर्शिका में, हम पूरा रास्ता तय करेंगे: एक साधारण Node.js एप्लिकेशन से लेकर Kubernetes पर प्रोडक्शन-जैसे वातावरण में इसे चलाने तक। आप सीखेंगे कि कोड को Docker इमेज में कैसे पैकेज करें, आवश्यक K8s संसाधन (Pod, Deployment, Service) कैसे बनाएं और बाहरी पहुंच कैसे सेट करें।



1. Node.js एप्लिकेशन तैयार करना

शुरू करने के लिए, हम एक सरल Express एप्लिकेशन बनाएंगे। यह HTTP अनुरोधों का जवाब देगा और कंटेनर का होस्टनाम प्रदर्शित करेगा (लोड बैलेंसिंग की जांच के लिए उपयोगी)।



1.1. फ़ाइल app.js

const express = require('express');const os = require('os');

const app = express();const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => { res.json({ message: 'Hello from Node.js on Kubernetes!', hostname: os.hostname(), timestamp: new Date().toISOString() });});

app.listen(PORT, () => { console.log(`Server running on port ${PORT}`);});


1.2. फ़ाइल package.json

{  "name": "k8s-node-app",  "version": "1.0.0",  "dependencies": {    "express": "^4.18.2"  },  "scripts": {    "start": "node app.js"  }}


2. कंटेनरीकरण: Docker इमेज

Kubernetes कंटेनरों के साथ काम करता है। हम अपने Node.js एप्लिकेशन के लिए एक न्यूनतम Dockerfile बनाएंगे। आकार को अनुकूलित करने के लिए आधिकारिक Node.js इमेज और मल्टी-स्टेज बिल्ड का उपयोग करें।



2.1. Dockerfile

FROM node:18-alpine AS builderWORKDIR /appCOPY package*.json ./RUN npm ci --only=production

FROM node:18-alpineWORKDIR /appCOPY --from=builder /app/node_modules ./node_modulesCOPY . .EXPOSE 3000CMD ["node", "app.js"]


इमेज बनाएं और इसे Docker Hub या किसी अन्य रजिस्ट्री पर भेजें:

docker build -t your-dockerhub/k8s-node-app:v1 .docker push your-dockerhub/k8s-node-app:v1


3. Kubernetes पर तैनाती

अब सबसे महत्वपूर्ण भाग पर आते हैं — Kubernetes संसाधन बनाना। हम Deployment (Pod प्रबंधन के लिए) और Service (नेटवर्क एक्सेस के लिए) का उपयोग करेंगे।



3.1. Deployment बनाना

Deployment सुनिश्चित करता है कि आपके एप्लिकेशन के साथ आवश्यक संख्या में Pod हमेशा चल रहे हों। फ़ाइल deployment.yaml बनाएं:

apiVersion: apps/v1kind: Deploymentmetadata:  name: node-app-deployment  labels:    app: node-appspec:  replicas: 3  selector:    matchLabels:      app: node-app  template:    metadata:      labels:        app: node-app    spec:      containers:      - name: node-app        image: your-dockerhub/k8s-node-app:v1        ports:        - containerPort: 3000        env:        - name: PORT          value: "3000"        resources:          requests:            memory: "64Mi"            cpu: "100m"          limits:            memory: "128Mi"            cpu: "200m"


3.2. Service बनाना

Service Pod तक पहुंचने के लिए एक स्थिर IP पता और DNS नाम प्रदान करता है। service.yaml बनाएं:

apiVersion: v1kind: Servicemetadata:  name: node-app-servicespec:  selector:    app: node-app  ports:    - protocol: TCP      port: 80      targetPort: 3000  type: ClusterIP


3.3. क्लस्टर पर चलाना

कमांड निष्पादित करें (पहले सुनिश्चित करें कि kubectl कॉन्फ़िगर किया गया है और क्लस्टर तक पहुंच है):

kubectl apply -f deployment.yamlkubectl app                

ब्लॉग

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