Kotlin को Kubernetes पर तैनात करना: मूल गाइड

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

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

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

Kotlin को Kubernetes पर तैनात करना: मूल गाइड



आधुनिक डेवलपमेंट कंटेनरीकरण और ऑर्केस्ट्रेशन के बिना अकल्पनीय है। Kubernetes (K8s) माइक्रोसर्विसेज के प्रबंधन के लिए मानक बन गया है, और Kotlin विश्वसनीय बैकएंड एप्लिकेशन बनाने के लिए सबसे लोकप्रिय भाषाओं में से एक है। इस गाइड में, हम एक साधारण Kotlin एप्लिकेशन से लेकर Kubernetes क्लस्टर में इसकी पूर्ण तैनाती तक का सफर तय करेंगे। आप सीखेंगे कि कोड को Docker इमेज में कैसे पैक करें, मेनिफेस्ट कैसे लिखें और सेवा तक पहुँच कैसे सेट करें।



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



उदाहरण के लिए, हम Ktor पर एक सरल REST API लेंगे - जो Kotlin के लिए एक हल्का फ्रेमवर्क है। एक फ़ाइल बनाएँ Main.kt:



import io.ktor.server.engine.*import io.ktor.server.netty.*import io.ktor.server.routing.*import io.ktor.http.*import io.ktor.server.response.*

fun main() { embeddedServer(Netty, port = 8080) { routing { get("/") { call.respondText("Hello from Kotlin on K8s!", ContentType.Text.Plain) } get("/health") { call.respondText("OK", ContentType.Text.Plain) } } }.start(wait = true)}


यह कोड पोर्ट 8080 पर दो एंडपॉइंट के साथ एक सर्वर शुरू करता है: रूट और हेल्थ चेक। सुनिश्चित करें कि build.gradle.kts में Ktor और Netty निर्भरताएँ शामिल हैं।



2. Docker इमेज बनाना



Kubernetes में तैनाती के लिए, एप्लिकेशन को एक कंटेनर में पैक किया जाना चाहिए। प्रोजेक्ट की रूट में एक Dockerfile बनाएँ:



FROM gradle:8.5-jdk21 AS buildWORKDIR /appCOPY build.gradle.kts settings.gradle.kts ./COPY src ./srcRUN gradle build --no-daemon

FROM openjdk:21-jdk-slimWORKDIR /appCOPY --from=build /app/build/libs/*.jar app.jarEXPOSE 8080ENTRYPOINT ["java", "-jar", "app.jar"]


बिल्ड दो चरणों में किया जाता है: पहले Gradle के साथ संकलन, फिर JAR फ़ाइल को एक साफ इमेज में कॉपी करना। कमांड से इमेज बनाएँ:



docker build -t my-kotlin-app:1.0 .


रजिस्ट्री (जैसे Docker Hub) में प्रकाशित करने के लिए, निष्पादित करें:



docker tag my-kotlin-app:1.0 yourusername/my-kotlin-app:1.0docker push yourusername/my-kotlin-app:1.0


3. Kubernetes मेनिफेस्ट



अब क्लस्टर में तैनाती के लिए YAML फ़ाइलें बनाएँ। deployment.yaml से शुरू करें:



apiVersion: apps/v1kind: Deploymentmetadata:  name: kotlin-appspec:  replicas: 2  selector:    matchLabels:      app: kotlin-app  template:    metadata:      labels:        app: kotlin-app    spec:      containers:      - name: kotlin-app        image: yourusername/my-kotlin-app:1.0        ports:        - containerPort: 8080        livenessProbe:          httpGet:            path: /health            port: 8080          initialDelaySeconds: 5          periodSeconds: 10        readinessProbe:          httpGet:            path: /health            port: 8080          initialDelaySeconds: 3          periodSeconds: 5


यह मेनिफेस्ट एप्लिकेशन की दो प्रतिकृतियाँ बनाता है, और लाइवनेस और रेडीनेस जाँच जोड़ता है। इसके बाद service.yaml:



apiVersion: v1kind: Servicemetadata:  name: kotlin-app-svcspec:  selector:    app: kotlin-app  ports:  - port: 80    targetPort: 8080  type: ClusterIP


सेवा पोर्ट 80 से कंटेनर के पोर्ट 8080 पर ट्रैफ़िक निर्देशित करती है। यदि बाहरी पहुँच की आवश्यकता है, तो प्रकार को NodePort या LoadBalancer में बदलें।



4. Ingress कॉन्फ़िगरेशन और तैनाती



बाहर से अनुरोधों को रूट करने के लिए, Ingress कंट्रोलर का उपयोग करें। ingress.yaml बनाएँ:



apiVersion: networking.k8s.io/v1kind: Ingressmetadata:  name: kotlin-app-ingress  annotations:    nginx.ingress.kubernetes.io/rewrite-target: /spec:  rules:  - host: kotlin.example.com    http:                

ब्लॉग

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