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

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

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

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

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

\n\n

Java में आधुनिक डेवलपमेंट कंटेनरीकरण और ऑर्केस्ट्रेशन के बिना अकल्पनीय है। Kubernetes (K8s) कंटेनरीकृत एप्लिकेशन के प्रबंधन के लिए डी-फैक्टो मानक बन गया है। इस गाइड में, हम चरण दर चरण Kubernetes क्लस्टर पर एक सरल Java एप्लिकेशन डिप्लॉय करने की प्रक्रिया को समझेंगे। आप सीखेंगे कि कोड को Docker इमेज में कैसे पैकेज करें, आवश्यक मेनिफेस्ट कैसे बनाएं और प्रोडक्शन-जैसे वातावरण में एप्लिकेशन कैसे चलाएं।

\n\n

1. Java एप्लिकेशन और Docker इमेज तैयार करना

\n\n

चलिए एक सरल Spring Boot एप्लिकेशन से शुरू करते हैं। प्रोजेक्ट की रूट डायरेक्टरी में Dockerfile फ़ाइल बनाएं:

\n\n
FROM openjdk:17-jdk-alpine\nWORKDIR /app\nCOPY target/my-app.jar app.jar\nEXPOSE 8080\nENTRYPOINT ["java", "-jar", "app.jar"]
\n\n

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

\n\n
mvn clean package -DskipTests\ndocker build -t myregistry/my-java-app:v1 .\ndocker push myregistry/my-java-app:v1
\n\n

सुनिश्चित करें कि इमेज स्थानीय रूप से काम करती है:

\n\n
docker run -p 8080:8080 myregistry/my-java-app:v1
\n\n

2. Kubernetes के मुख्य ऑब्जेक्ट

\n\n

Java एप्लिकेशन डिप्लॉय करने के लिए हमें तीन प्रमुख संसाधनों की आवश्यकता होगी:

\n\n
    \n
  • Deployment — रेप्लिका और अपडेट का प्रबंधन करता है
  • \n
  • Service — पॉड्स तक नेटवर्क एक्सेस प्रदान करता है
  • \n
  • Ingress — (वैकल्पिक) बाहरी ट्रैफ़िक का रूटिंग
  • \n
\n\n

Deployment बनाना (deployment.yaml)

\n\n
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: java-app-deployment\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: java-app\n  template:\n    metadata:\n      labels:\n        app: java-app\n    spec:\n      containers:\n      - name: java-app\n        image: myregistry/my-java-app:v1\n        ports:\n        - containerPort: 8080\n        resources:\n          requests:\n            memory: "256Mi"\n            cpu: "250m"\n          limits:\n            memory: "512Mi"\n            cpu: "500m"\n        livenessProbe:\n          httpGet:\n            path: /actuator/health\n            port: 8080\n          initialDelaySeconds: 30\n          periodSeconds: 10\n        readinessProbe:\n          httpGet:\n            path: /actuator/health\n            port: 8080\n          initialDelaySeconds: 20\n          periodSeconds: 5
\n\n

Service बनाना (service.yaml)

\n\n
apiVersion: v1\nkind: Service\nmetadata:\n  name: java-app-service\nspec:\n  selector:\n    app: java-app\n  ports:\n  - protocol: TCP\n    port: 80\n    targetPort: 8080\n  type: ClusterIP
\n\n

3. Kubernetes क्लस्टर पर डिप्लॉय

\n\n

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

\n\n
kubectl apply -f deployment.yaml\nkubectl apply -f service.yaml
\n\n

पॉड्स और सर्विस की स्थिति जांचें:

\n\n
kubectl get pods\nkubectl get svc java-app-service
\n\n

बाहरी पहुंच के लिए (जैसे, परीक्षण के लिए) port-forward का उपयोग करें:

\n\n
kubectl port-forward service/java-app-service 8080:80
\n\n

अब एप्लिकेशन http://localhost:8080 पर उपलब्ध है।

\n\n

4. स्केलिंग और अपडेट

\n\n

Kubernetes एप्लिकेशन को आसानी से स्केल करने की अनुमति देता है:

\n\n
kubectl scale deployment java-app-deployment --replicas=5
\n\n

इमेज अपडेट करने के लिए (rolling update) Deployment में टैग बदलें और लागू करें:

\n\n
kubectl set image deployment/java-app-deployment java-app=myregistry/my-java-app:v2\nkubectl rollout status deployment/java-app-deployment
\n\n

आवश्यकता पड़ने पर परिवर्तनों को वापस रोलबैक करें:

\n\n
kubectl rollout undo deployment/java-app-deployment
\n\n

निष्कर्ष

\n\n

हमने Kubernetes पर Java एप्लिकेशन डिप्लॉय करने की बुनियादी प्रक्रिया देखी।

ब्लॉग

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