DEPLOY DI UNA SPRING BOOT APP SU MINIKUBE
L'obiettivo di questo articolo è quello, come si evince dal titolo, di deployare un'applicazione Spring Boot su Kubernetes. Il punto di partenza è, manco a dirlo, il nostro amato Spring Initializr.
L'unico modulo da aggiungere è quello web, in quanto ci limiteremo semplicemente ad esporre un endpoint REST che restituisce in response una stringa "Hello from Pierpaolo Di Dato".
Una volta generato il progetto ed importato all'interno del nostro IDE, procediamo alla creazione di un controller REST del tipo:
@RestController
public class FooController {
@RequestMapping(value="/check", method=RequestMethod.GET)
public String foo() {
return "Hello from Pierpaolo Di Dato!";
}
}
Fatto ciò, provvediamo alla compilazione del fat jar attraverso il comando Maven:
mvn clean install
Ora arriva la parte più divertente, quella della dockerizzazione della nostra applicazione. Nella root del progetto, creiamo il Dockerfile:
FROM openjdk:17
VOLUME /tmp
EXPOSE 8080
ARG JAR_FILE=target/spring-demo-0.0.1-SNAPSHOT.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Buildiamo l'immagine con il comando docker build
minikube status
minikube dashboard
Una volta startato Minikube, è importante che esso legga l'installazione locale di Docker e quindi le immagini sulla nostra macchina. Per far ciò eseguire il comando:eval $(minikube docker-env)
kubectl run app1 --image=spring-app --restart=Never --port=8080
kubectl get pods
kubectl logs {nome pod}
Comments
Post a Comment