Kubernetes पर TypeScript डिप्लॉय: मूल गाइड

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

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

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

Kubernetes पर TypeScript डिप्लॉय: मूल गाइड



आधुनिक वेब डेवलपमेंट में अक्सर न केवल गुणवत्तापूर्ण कोड लिखना शामिल है, बल्कि एप्लिकेशन का उचित तैनाती भी शामिल है। TypeScript, अपनी सख्त टाइपिंग और शक्तिशाली टूल्स के कारण, Node.js पर बैकएंड सेवाओं के लिए एक लोकप्रिय विकल्प बन गया है। हालांकि, उचित डिप्लॉय के बिना, आदर्श कोड भी स्थानीय मशीन पर ही रह जाएगा। Kubernetes - कंटेनर ऑर्केस्ट्रेशन का मानक - आपको एप्लिकेशन की तैनाती, स्केलिंग और प्रबंधन को स्वचालित करने की अनुमति देता है। इस गाइड में, हम Kubernetes पर TypeScript एप्लिकेशन डिप्लॉय करने की चरण-दर-चरण प्रक्रिया को समझेंगे।



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

कोड को क्लस्टर में भेजने से पहले, यह सुनिश्चित करना आवश्यक है कि एप्लिकेशन कंटेनर में चलने के लिए तैयार है। आइए Express.js और TypeScript के साथ एक विशिष्ट प्रोजेक्ट पर विचार करें।



प्रोजेक्ट संरचना

my-ts-app/├── src/│   ├── index.ts│   └── routes/├── dist/├── package.json├── tsconfig.json└── Dockerfile


tsconfig.json सेटअप

सुनिश्चित करें कि TypeScript कंपाइलर प्रोजेक्ट को dist फ़ोल्डर में बना रहा है:

{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true  },  "include": ["src/**/*"]}


सरल सर्वर (src/index.ts)

import express, { Request, Response } from 'express';

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

app.get('/health', (_req: Request, res: Response) => { res.json({ status: 'ok', timestamp: new Date().toISOString() });});

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


package.json में स्क्रिप्ट जोड़ें:

"scripts": {  "build": "tsc",  "start": "node dist/index.js",  "dev": "ts-node src/index.ts"}


2. TypeScript के लिए Docker इमेज बनाना

कंटेनरीकरण Kubernetes में डिप्लॉय से पहले एक महत्वपूर्ण कदम है। इमेज के आकार को कम करने के लिए मल्टी-स्टेज बिल्ड का उपयोग करें।



Dockerfile

# Stage 1: BuildFROM node:18-alpine AS builderWORKDIR /appCOPY package*.json ./RUN npm ciCOPY tsconfig.json ./COPY src/ ./src/RUN npm run build

# Stage 2: ProductionFROM node:18-alpine AS productionWORKDIR /appCOPY --from=builder /app/dist ./distCOPY --from=builder /app/package*.json ./RUN npm ci --only=productionEXPOSE 3000CMD ["node", "dist/index.js"]


इमेज बनाएं और इसे रजिस्ट्री (जैसे, Docker Hub) पर भेजें:

docker build -t yourusername/my-ts-app:v1 .docker push yourusername/my-ts-app:v1


3. Kubernetes मेनिफेस्ट लिखना

Kubernetes में तैनाती के लिए कम से कम दो संसाधनों की आवश्यकता होती है: Deployment (पॉड प्रबंधन) और Service (एप्लिकेशन तक पहुंच)।



deployment.yaml

apiVersion: apps/v1kind: Deploymentmetadata:  name: my-ts-app  labels:    app: my-ts-appspec:  replicas: 2  selector:    matchLabels:      app: my-ts-app  template:    metadata:      labels:        app: my-ts-app    spec:      containers:      - name: app        image: yourusername/my-ts-app:v1        ports:        - containerPort: 3000        env:        - name: PORT          value: "3000"        livenessProbe:          httpGet:            path: /health            port: 3000          initialDelaySeconds: 5          periodSeconds: 10        readinessProbe:          httpGet:            path: /health            port: 3000          initialDelaySeconds: 3          periodSeconds: 5


service.yaml

apiVersion: v1kind: Servicemetadata:  name: my-ts-app-servicespec:  selector:    app: my-ts-app  ports:  - protocol: T                

ब्लॉग

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