Compartir comentarios
Las respuestas se generan en base a la documentación.

Prueba tu despliegue de Java

Prerrequisitos

Descripción general

En esta sección, aprenderás cómo usar Docker Desktop para desplegar tu aplicación en un entorno Kubernetes con todas las funciones en tu máquina de desarrollo. Esto te permite probar y depurar tus cargas de trabajo en Kubernetes localmente antes de desplegarlas.

Crear un archivo YAML de Kubernetes

En tu directorio spring-petclinic, crea un archivo llamado docker-java-kubernetes.yaml. Abre el archivo en un IDE o editor de texto y agrega el siguiente contenido. Reemplaza DOCKER_USERNAME/REPO_NAME con tu nombre de usuario de Docker y el nombre del repositorio que creaste en Configurar CI/CD para tu aplicación Java.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: docker-java-demo
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      service: server
  template:
    metadata:
      labels:
        service: server
    spec:
      containers:
        - name: server-service
          image: DOCKER_USERNAME/REPO_NAME
          imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: service-entrypoint
  namespace: default
spec:
  type: NodePort
  selector:
    service: server
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30001

En este archivo YAML de Kubernetes, hay dos objetos, separados por ---:

  • Un Deployment, que describe un grupo escalable de pods idénticos. En este caso, obtendrás solo una réplica, o copia de tu pod. Ese pod, que se describe bajo template, tiene solo un contenedor dentro. El contenedor se crea a partir de la imagen construida por GitHub Actions en Configurar CI/CD para tu aplicación Java.
  • Un servicio NodePort, que enrutará el tráfico desde el puerto 30001 de tu host al puerto 8080 dentro de los pods a los que se dirige, lo que te permite acceder a tu aplicación desde la red.

Para aprender más sobre los objetos de Kubernetes, consulta la documentación de Kubernetes.

Desplegar y comprobar tu aplicación

  1. En una terminal, navega a spring-petclinic y despliega tu aplicación en Kubernetes.

    $ kubectl apply -f docker-java-kubernetes.yaml
    

    Deberías ver una salida similar a la siguiente, indicando que tus objetos de Kubernetes se crearon correctamente.

    deployment.apps/docker-java-demo created
    service/service-entrypoint created
  2. Asegúrate de que todo haya funcionado listando tus despliegues.

    $ kubectl get deployments
    

    Tu despliegue debería aparecer de la siguiente manera:

    NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
    docker-java-demo     1/1     1            1           15s

    Esto indica que el único pod que solicitaste en tu YAML está en funcionamiento. Realiza la misma comprobación para tus servicios.

    $ kubectl get services
    

    Deberías obtener una salida como la siguiente.

    NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    kubernetes           ClusterIP   10.96.0.1       <none>        443/TCP          23h
    service-entrypoint   NodePort    10.99.128.230   <none>        8080:30001/TCP   75s

    Además del servicio predeterminado kubernetes, puedes ver tu servicio service-entrypoint, aceptando tráfico en el puerto 30001/TCP.

  3. En una terminal, haz un curl al servicio. Ten en cuenta que no se desplegó una base de datos en este ejemplo.

    $ curl --request GET \
      --url http://localhost:30001/actuator/health \
      --header 'content-type: application/json'
    

    Deberías obtener una salida como la siguiente.

    {"status":"UP","groups":["liveness","readiness"]}
    
  4. Ejecuta el siguiente comando para eliminar tu aplicación.

    $ kubectl delete -f docker-java-kubernetes.yaml
    

Resumen

En esta sección, aprendiste cómo usar Docker Desktop para desplegar tu aplicación en un entorno Kubernetes con todas las funciones en tu máquina de desarrollo.

Información relacionada: