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