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

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

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

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

परिचय: Kubernetes पर JavaScript क्यों डिप्लॉय करें?

\n\n

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

\n\n

Kubernetes एक कंटेनर ऑर्केस्ट्रेशन प्लेटफॉर्म है। यह आपके एप्लिकेशन के डिप्लॉयमेंट, स्केलिंग और संचालन का प्रबंधन करता है। इस गाइड में, हम Kubernetes पर एक सरल Node.js एप्लिकेशन के बुनियादी डिप्लॉयमेंट को समझेंगे। आप सीखेंगे कि कोड को Docker इमेज में कैसे पैकेज करें, Pod, Service और Deployment कैसे बनाएं।

\n\n

यह लेख शुरुआती लोगों के लिए है। यह माना जाता है कि आपके पास पहले से Docker और Minikube स्थापित हैं (या K8s क्लस्टर तक पहुंच है)।

\n\n

चरण 1: Node.js एप्लिकेशन और Docker इमेज तैयार करना

\n\n

शुरू करने के लिए, Express पर एक सरल वेब एप्लिकेशन बनाते हैं। यह HTTP अनुरोधों का जवाब देगा।

\n\n

1.1. एप्लिकेशन कोड (app.js)

\n\n

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

\n\n
const express = require('express');\nconst app = express();\nconst PORT = process.env.PORT || 3000;\n\napp.get('/', (req, res) => {\n  res.send('Kubernetes से नमस्ते!');\n});\n\napp.listen(PORT, () => {\n  console.log(`सर्वर पोर्ट ${PORT} पर शुरू हुआ`);\n});\n
\n\n

1.2. package.json फ़ाइल

\n\n

package.json बनाएं:

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

1.3. Dockerfile

\n\n

अब इमेज बिल्ड करने के लिए Dockerfile बनाएं:

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

1.4. इमेज बिल्ड और अपलोड करना

\n\n

कमांड चलाएं:

\n\n
docker build -t my-node-app:v1 .\n
\n\n

यदि आप Minikube का उपयोग कर रहे हैं, तो इसके वातावरण में इमेज बनाएं:

\n\n
minikube image build -t my-node-app:v1 .\n
\n\n

या इमेज को Docker Hub/किसी भी रजिस्ट्री में अपलोड करें और मेनिफेस्ट में इसका उल्लेख करें।

\n\n

चरण 2: Kubernetes की मुख्य वस्तुएं (Pod, Deployment, Service)

\n\n

Kubernetes वस्तुओं के साथ काम करता है। डिप्लॉयमेंट के लिए हमें तीन मुख्य वस्तुओं की आवश्यकता होगी:

\n\n
    \n
  • Pod — सबसे छोटी इकाई, एक या अधिक कंटेनर।
  • \n
  • Deployment — Pods का प्रबंधन करता है, स्केलिंग और अपडेट सुनिश्चित करता है।
  • \n
  • Service — Pods तक एक स्थिर पहुंच बिंदु (आमतौर पर ClusterIP या NodePort के माध्यम से)।
  • \n
\n\n

2.1. Deployment बनाना

\n\n

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

\n\n
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: node-app-deployment\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:v1\n        ports:\n        - containerPort: 3000\n        env:\n        - name: PORT\n          value: "3000"\n
\n\n

व्याख्या:

\n
    \n
  • replicas: 3 — दोष-सहिष्णुता के लिए एप्लिकेशन की 3 प्रतियां चलाएंगे।
  • \n
  • selector और labels — Deployment को Pods से जोड़ते हैं।
  • \n
  • image — आपकी Docker इमेज का नाम।
  • \n
\n\n

2.2. Service बनाना

\n\n

एप्लिकेशन तक पहुंच के लिए service.yaml फ़ाइल बनाएं:

\n\n
apiVersion: v1\nkind: Service\nmetadata:\n  name: node-app-service\nspec:\n  selector:\n    app: node-app\n  ports:\n    - protocol: TCP\n      port: 80\n      targetPort: 3000\n  type: NodePort\n
\n\n

यहां क्या हो रहा है:

\n
    \n
  • Service पोर्ट 80 से ट्रैफिक को Pods के पोर्ट 3000 पर रीडायरेक्ट करता है।
  • \n
  • type: NodePort — क्लस्टर के बाहर से एप्लिकेशन तक पहुंच प्रदान करता है।
  • \n

ब्लॉग

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