Create a docker image from a spring boot project

In order to create a docker image from a spring boot project, First, your pom.xml has to be configured. <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- Cofiguration for creating a docker image --> <image> <name>chamow01/${project.artifactId}</name> </image> </configuration> </plugin> </plugins> </build> Then, the next maven command needs to be applied, so spring boot uses paketo-buildpacks in order to create a docker image based on you Java code mvn spring-boot:build-image ... [INFO] > Running creator [INFO] [creator] ===> DETECTING [INFO] [creator] 6 of 24 buildpacks participating [INFO] [creator] paketo-buildpacks/ca-certificates 3.2.0 [INFO] [creator] paketo-buildpacks/bellsoft-liberica 9.3.2 [INFO]

Kubernetes - Relación entre un POD y un SERVICE


A continuación se detalla como se comunica un Pod con un Service en el cluster de Kubernetes

Diagrama de configuración

Archivo client-pod.yaml


apiVersion: v1
kind: Pod
metadata:
  name: client-pod
  labels:
    component: web
spec:
  containers:
  - name: client
    image: stephengrider/multi-client
    ports:
      - containerPort: 3000
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
	
  • labels: Permite asignar un nombre al pod. Es una relación clave-valor; en este casocomponente:web
  • ports: Permite asignar el valor del puerto por donde el pod va a escuchar

Archivo client-node-port.yaml


apiVersion: v1
kind: Service
metadata:
  name: client-node-port
spec:
  type: NodePort
  ports:
  - port: 3050
    targetPort: 3000
    nodePort: 31515
  selector:
    component: web
	
  • selector: Permite asociar el servicio al pod, mediante la relación clave-valor; en este casocomponente:web
  • port: Permite configurar el pool de puertos del servicio, en este caso:
    • port:3050 Es el puerto por el cual otro pod puede acceder al pod asociado al servicio
    • targetPort:3000 Es la asociación con el puerto expuesto por el pod
    • nodePort:31515 Es el puerto por el cual se puede acceder al servicio desde fuera del cluster de Kubernetes. Debe ser un número entre 30000 y 32767, si no se configura el nodePort, Kubernetes asignación un número aleatorio entre 30000 y 32767

Comentarios

Entradas populares de este blog

Create a docker image from a spring boot project

Comandos docker

Kubernetes -Tipos de objetos