Prueba tu despliegue de Java
Prerrequisitos
- Completa todas las secciones anteriores de esta guía, comenzando con Contenerizar tu aplicación.
- Activa Kubernetes en Docker Desktop.
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: 30001En 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
En una terminal, navega a
spring-petclinicy despliega tu aplicación en Kubernetes.$ kubectl apply -f docker-java-kubernetes.yamlDeberí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 createdAsegúrate de que todo haya funcionado listando tus despliegues.
$ kubectl get deploymentsTu despliegue debería aparecer de la siguiente manera:
NAME READY UP-TO-DATE AVAILABLE AGE docker-java-demo 1/1 1 1 15sEsto indica que el único pod que solicitaste en tu YAML está en funcionamiento. Realiza la misma comprobación para tus servicios.
$ kubectl get servicesDeberí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 75sAdemás del servicio predeterminado
kubernetes, puedes ver tu servicioservice-entrypoint, aceptando tráfico en el puerto 30001/TCP.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"]}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: