@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

kubernetes-aplicacion-con-cronjob-1

Kubernetes: Aplicación con CronJob

Kubernetes: Aplicación con CronJob

En este caso práctico, vamos a generar una aplicación web que consta de un Pod, un Service y un CronJob.

Pod: el primer objeto es de tipo Pod, y consta de etiquetas “nginx”. Se crea un contenedor llamado “front”, que va a usar un volumen persistente en la carpeta “/mnt/web”. Y como podéis intuir, se genera un servidor “nginx” al que se le monta un volumen persistente.
Service: para darle visibilidad desde el interior, generaremos un servicio, en este caso LoadBalancer, y que va a abrir el puerto 80.
CronJob: adicionalmente, vamos a generar un objeto que nos permite crear una programación. Lo lanzaremos cada minuto mediante un job, que tiene el mismo volumen que el servidor web y lanza una imagen “Ubuntu”, y desde esa imagen usaremos el comando ECHO poniendo un “.” en el fichero index.html de la aplicación web.

Contenido del fichero YML, hay que tener cuidado con los espacios al generarlo:

kubernetes-aplicacion-con-cronjob-0

Creamos los directorios necesarios en los workers:

raulunzue@KUBERNETES02:~$ sudo mkdir /mnt/web
raulunzue@KUBERNETES02:~$ sudo mkdir /usr/share/nginx/html -p

Se ejecuta el fichero yml con el siguiente comando:

raulunzue@KBMASTER:~$ kubectl create -f cronjob.yml 
pod/nginx created
service/nginx created
cronjob.batch/nginx created

Comprobamos los pods, servicios y cronjobs generados y que no hay errores:

raulunzue@KBMASTER:~$ kubectl get svc,cronjobs,pods
NAME                 TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP      10.96.0.1              443/TCP        73d
service/nginx        LoadBalancer   10.96.39.155       80:32599/TCP   8m52s

NAME                  SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/nginx   */1 * * * *   False     0        27s             8m52s

NAME                         READY   STATUS      RESTARTS   AGE
pod/nginx                    1/1     Running     0          8m52s
pod/nginx-1584740520-p4rc6   0/1     Completed   0          2m22s
pod/nginx-1584740580-nzvt5   0/1     Completed   0          81s
pod/nginx-1584740640-nptmd   0/1     Completed   0          21s

Si nos vamos a un navegador, hemos expuesto el puerto a través del puerto 80:32599, y podemos ver el resultado. Cada punto se añade cada minuto:

kubernetes-aplicacion-con-cronjob-1

Borrado de cronjobs, servicio y pods:

raulunzue@KBMASTER:~$ kubectl delete cronjobs nginx
cronjob.batch nginx" deleted
raulunzue@KBMASTER:~$ kubectl delete svc nginx
service "nginx" deleted
raulunzue@KBMASTER:~$ kubectl delete pods nginx
pod "nginx" deleted

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

terraform-crear-contenedores-lxc-en-proxmox-3

Terraform: Crear contenedores LXC en Proxmox

Terraform: Crear contenedores LXC en Proxmox Hoy vamos a explicar como automatizar despliegues con Terraform …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

cinco × dos =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu