Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
Kotlin es un lenguaje JVM que está ganando popularidad por su compatibilidad con Concurrency y Coroutines. Kubernetes es una plataforma de orquestación de contenedores que se usa ampliamente para implementar, administrar y escalar aplicaciones en contenedores.
En este artículo, veremos cómo usar Kotlin y Kubernetes para implementar y escalar sus aplicaciones. También aprenderemos sobre algunas de las mejores prácticas para usar estas tecnologías juntas.
El primer paso para implementar aplicaciones en Kubernetes es contenerlas. Podemos utilizar cualquier tecnología de contenedorización como Docker, rkt o LXD. En este artículo, utilizaremos Docker.
Docker es una plataforma de contenedores que facilita el empaquetado y la implementación de aplicaciones. Utiliza contenedores de Linux para crear entornos aislados para sus aplicaciones.
Para contenerizar nuestra aplicación Kotlin, primero necesitaremos crear un Dockerfile
. Un Dockerfile
es un archivo de texto que contiene instrucciones para docker sobre cómo crear una imagen de docker.
El siguiente es un 'Dockerfile' simple para una aplicación de Kotlin:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Este Dockerfile
utiliza la imagen acoplable openjdk:8-jdk-alpine
como imagen base. Luego crea un volumen en /tmp
y copia el archivo app.jar
en el contenedor. La instrucción ENTRYPOINT
se utiliza para especificar el comando que se ejecutará cuando se inicie el contenedor.
Ahora que tenemos nuestro Dockerfile
, podemos construir una imagen de la ventana acoplable usando el comando docker build
. El siguiente es el comando para construir una imagen acoplable desde nuestro Dockerfile
:
docker build -t kotlin-app:latest .
Este comando creará una imagen acoplable con la etiqueta kotlin-app:latest
. Ahora podemos ejecutar nuestra aplicación en un contenedor docker usando el comando docker run
.
docker run -d -p 8080:8080 kotlin-app:latest
Este comando iniciará nuestro contenedor en modo separado y expondrá el puerto 8080
del contenedor al puerto 8080
en el host. Ahora podemos acceder a nuestra aplicación en http://localhost:8080
.
Ahora que tenemos nuestra aplicación en contenedores, podemos implementarla en Kubernetes. Kubernetes es una plataforma de orquestación de contenedores que se puede usar para implementar, administrar y escalar aplicaciones en contenedores.
Hay muchas formas de implementar aplicaciones en Kubernetes. En este artículo, utilizaremos la herramienta de línea de comandos kubectl
.
La herramienta kubectl
se puede utilizar para crear y administrar recursos de Kubernetes. Lo usaremos para crear un recurso de 'Despliegue'. Se utiliza un recurso de "Implementación" para administrar la implementación de aplicaciones en Kubernetes.
El siguiente es el comando kubectl
para crear un recurso Deployment
para nuestra aplicación:
kubectl create deployment kotlin-app --image=kotlin-app:latest
Este comando creará un recurso de Implementación
con el nombre kotlin-app
. Utilizará la imagen acoplable kotlin-app:latest
para la implementación.
Una vez que se crea el recurso Deployment
, Kubernetes creará un Pod
para ejecutar nuestra aplicación. Un "Pod" es un grupo de uno o más contenedores que se implementan juntos en Kubernetes.
El 'Pod' para nuestra aplicación se creará en el espacio de nombres 'predeterminado'. Podemos ver el Pod
usando el comando kubectl get pods
.
kubectl get pods
NAME READY STATUS RESTARTS AGE
kotlin-app-7567cf6b7f-x8b8j 1/1 Running 0 2m9s
Podemos ver que el Pod
está funcionando. Ahora podemos acceder a nuestra aplicación en http://localhost:8080
.
Kubernetes facilita el escalado de sus aplicaciones. Podemos usar la herramienta kubectl
para escalar nuestra aplicación.
El siguiente es el comando para escalar nuestra aplicación a 10 réplicas:
kubectl scale deployment kotlin-app --replicas=10
Este comando escalará nuestro recurso de 'Implementación' a 10 réplicas. Kubernetes creará "Pods" adicionales para ejecutar las réplicas adicionales. Podemos ver los Pods
usando el comando kubectl get pods
.
kubectl get pods
NAME READY STATUS RESTARTS AGE
kotlin-app-7567cf6b7f-x8b8j 1/1 Running 0 9m
kotlin-app-7567cf6b7f-b4vh2 1/1 Running 0 9m
kotlin-app-7567cf6b7f-4xb4p 1/1 Running 0 9m
kotlin-app-7567cf6b7f-c66r8 1/1 Running 0 9m
kotlin-app-7567cf6b7f-f8j8k 1/1 Running 0 9m
kotlin-app-7567cf6b7f-hbk8r 1/1 Running 0 9m
kotlin-app-7567cf6b7f-kxw6k 1/1 Running 0 9m
kotlin-app-7567cf6b7f-mjsjl 1/1 Running 0 9m
kotlin-app-7567cf6b7f-nlx89 1/1 Running 0 9m
kotlin-app-7567cf6b7f-snx4x 1/1 Running 0 9m
Podemos ver que Kubernetes ha creado 10 'Pods' para ejecutar nuestras 10 réplicas. Ahora podemos acceder a nuestra aplicación en http://localhost:8080
.
Estas son algunas de las mejores prácticas para usar Kotlin y Kubernetes:
Use un lenguaje JVM como Kotlin para desarrollar aplicaciones que se implementarán en Kubernetes. Esto le permitirá utilizar las funciones de concurrencia y corrutinas de Kotlin para escribir aplicaciones eficientes y escalables.
Use los recursos de Kubernetes como "Implementación" y "Servicio" para administrar la implementación y el escalado de sus aplicaciones.
Utilice la herramienta kubectl
para interactuar con los recursos de Kubernetes.
Use Docker
para contener sus aplicaciones.
Use la herramienta kubectl
para escalar sus aplicaciones.