En este nuevo post vamos a ver como podemos manejarnos con fleetctl para la gestion de los servicios de systemD que correran en los cluster.

Primero definimos el escenario, hasta ahora tenemos un cluster de 3 maquinas en concreto 2+1 con etcd en cluster

Primero veremos con fleet que maquinas tenemos activas en el cluster con el comando

fleetctl list-machines

Nos aparecera algo similar a esto

coreos1 tierno # fleetctl list-machines
MACHINE		IP		METADATA
2e209fa2...	10.10.10.129	-
67d57baf...	10.10.10.130	-

Como veis tenemos dos maquinas en el cluster.

Lo siguiente que haremos sera crear un servicio de prueba para incluirlo en los servicios disponibles de nuestro cluster.

Para ver los servicios que tenemos disponibles utilizaremos el comando

fleetctl list-units

Nos aparecera algo asi

coreos1 tierno # fleetctl list-units   
UNIT	STATE	LOAD	ACTIVE	SUB	DESC	MACHINE

Como se aprecia no hay ningun servicio.

Vamos a crear un servicio de prueba para ver como se comporta fleet

creamos el fichero test.service, con el siguiente contenido

[Unit]
Description=TEST
[Service]
ExecStart=/bin/bash -c "while true; do echo \"hello\" ; sleep 1 ;  done"

AHora lo que haremos sera cargarlo en fleet con el siguiente comando

tierno@coreos2 ~/units $ fleetctl submit test.service

Ahora volveremos a comprobar la lista de unidades

tierno@coreos2 ~/units $ fleetctl list-units
UNIT		STATE		LOAD	ACTIVE	SUB	DESC	MACHINE
test.service	inactive	-	-	-	TEST	-

Como veis tenemos el servicio cargado en el sistema pero esta inactivo lo que haremos sera cargarlo en el cluster con el comando

tierno@coreos2 ~/units $ fleetctl load test.service
Job test.service loaded on 67d57baf.../10.10.10.130

Como veis nos lo ha cargado en la maquina 10.10.10.130

Pero como veis a continuacion esta inactivo

tierno@coreos2 ~/units $ fleetctl list-units
UNIT		STATE	LOAD	ACTIVE		SUB	DESC	MACHINE
test.service	loaded	loaded	inactive	dead	TEST	67d57baf.../10.10.10.130

Para inciar el servicio haremos lo siguiente

tierno@coreos2 ~/units $ fleetctl start test.service
Job test.service launched on 67d57baf.../10.10.10.130

Como veis se ha lanzado el trabajo

podemos comprobarlo y mirarlo asi

tierno@coreos2 ~/units $ fleetctl list-units
UNIT		STATE		LOAD	ACTIVE	SUB	DESC	MACHINE
test.service	launched	loaded	active	running	TEST	67d57baf.../10.10.10.130

si hacemos un ps aux o ps lefa veremos el proceso corriendo en background

4 S root      3276     1  0  80   0 -  3493 wait   11:43 ?        00:00:00 /bin/bash -c while true; do echo "hello" ; sleep 1 ;  done

Para hacer las acciones contrarias contamos con los siguientes comandos.

fleetctl stop @para una unidad
fleetctl unload @hace lo contrario al load de una unidad
fleetctl destroy @quita una unidad del cluster

Mas adelante veremos como podemos incluir esto con docker para levantar contenedores con servicios como apache etc

Espero que os sean utiles.

Aprovecho e incito a que dejeis comentarios sobre los post, asi como ofertas para proyectos ya que ando en busqueda activa de proyecto

Gracias

Deja un comentario