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

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

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

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

Kubernetes पर JavaScript (Node.js) की तैनाती: व्यावहारिक बुनियादी मार्गदर्शिका

\n\n

आधुनिक वेब डेवलपमेंट कंटेनरीकरण और ऑर्केस्ट्रेशन के बिना अधूरी है। यदि आप JavaScript (Node.js) में लिखते हैं, तो देर-सबेर यह सवाल उठेगा: प्रोडक्शन में एप्लिकेशन को विश्वसनीय रूप से कैसे चलाएं, इसकी स्केलिंग और फॉल्ट टॉलरेंस कैसे सुनिश्चित करें? इसका उत्तर है Kubernetes। यह सिर्फ एक फैशनेबल टूल नहीं है, बल्कि कंटेनरीकृत एप्लिकेशन के प्रबंधन के लिए डी-फैक्टो मानक है।

\n

इस मार्गदर्शिका में, हम Kubernetes पर एक सरल Node.js एप्लिकेशन की तैनाती के पूरे चक्र को समझेंगे। आप सीखेंगे कि कोड को Docker इमेज में कैसे पैकेज करें, आवश्यक मेनिफेस्ट कैसे बनाएं और क्लस्टर में सब कुछ कैसे चलाएं। यह सामग्री उन डेवलपर्स के लिए है जो पहले से Node.js की मूल बातों से परिचित हैं और DevOps प्रथाओं में महारत हासिल करना चाहते हैं।

\n\n

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

\n

Kubernetes पर एप्लिकेशन तैनात करने से पहले, इसे एक कंटेनर में पैकेज करना होगा। इसके लिए हम एक सरल Express एप्लिकेशन बनाएंगे। सुनिश्चित करें कि आपके पास Node.js और npm स्थापित हैं।

\n

फ़ाइल app.js बनाएं:

\n
const express = require('express');\nconst app = express();\nconst port = process.env.PORT || 3000;\n\napp.get('/', (req, res) => {\n  res.json({ message: 'Hello from Node.js on Kubernetes!' });\n});\n\napp.get('/health', (req, res) => {\n  res.status(200).send('OK');\n});\n\napp.listen(port, () => {\n  console.log(`Server running on port ${port}`);\n});\n
\n

/health एंडपॉइंट जोड़ना महत्वपूर्ण है — Kubernetes इसका उपयोग कार्यक्षमता जांच (liveness probe) के लिए करेगा।

\n

अब प्रोजेक्ट की रूट में Dockerfile बनाएं:

\n
FROM node:18-alpine\n\nWORKDIR /usr/src/app\n\nCOPY package*.json ./\nRUN npm install --production\n\nCOPY . .\n\nEXPOSE 3000\n\nCMD ["node", "app.js"]\n
\n

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

\n
docker build -t my-node-app:latest .\ndocker run -p 3000:3000 my-node-app:latest\n
\n

http://localhost:3000 खोलें — आपको JSON प्रतिक्रिया दिखनी चाहिए।

\n\n

2. Node.js के लिए मुख्य Kubernetes मेनिफेस्ट

\n

Kubernetes घोषणात्मक कॉन्फ़िगरेशन (YAML) के साथ काम करता है। Node.js एप्लिकेशन की तैनाती के लिए हमें कम से कम दो मुख्य संसाधनों की आवश्यकता होगी: Deployment और Service।

\n\n

2.1. Deployment

\n

Deployment आपके एप्लिकेशन की रेप्लिका का प्रबंधन करता है। फ़ाइल deployment.yaml बनाएं:

\n
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: node-app-deployment\n  labels:\n    app: node-app\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: node-app\n  template:\n    metadata:\n      labels:\n        app: node-app\n    spec:\n      containers:\n      - name: node-app\n        image: my-node-app:latest\n        ports:\n        - containerPort: 3000\n        env:\n        - name: PORT\n          value: "3000"\n        livenessProbe:\n          httpGet:\n            path: /health\n            port: 3000\n          initialDelaySeconds: 5\n          periodSeconds: 10\n        readinessProbe:\n          httpGet:\n            path: /\n            port: 3000\n          initialDelaySeconds: 3\n          periodSeconds: 5\n
\n

महत्वपूर्ण बिंदु:

\n
    \n
  • replicas: 3 — Kubernetes फॉल्ट टॉलरेंस के लिए आपके एप्लिकेशन की 3 प्रतियां बनाएगा।
  • \n
  • livenessProbe — जांचता है कि एप्लिकेशन चालू है या नहीं। यदि कोई प्रतिक्रिया नहीं है, तो Kubernetes कंटेनर को पुनरारंभ करेगा।
  • \n
  • readinessProbe — जांचता है कि एप्लिकेशन ट्रैफ़िक प्राप्त करने के लिए तैयार है या नहीं। जब तक जांच पास नहीं हो जाती, पॉड को अनुरोध प्राप्त नहीं होते।
  • \n
\n\n

2.2. Service

\n

Service पॉड्स तक नेटवर्क पहुंच प्रदान करता है। service.yaml बनाएं:

\n
apiVersion: v1\nkind: Service\nmetadata:\n  name: node-app-service\nspec:\n  selector:\n    app: node-app\n  ports:\n    - protocol: TCP\n                

ब्लॉग

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