Buenas tardes,
Siguiendo con el hilo de coreos hoy me gustaria poner como se crea un cluster en coreos y etcd
Osea coreos+etcd
Que es ETCD.
Es un sistema de configuracion distribuida clave valor, os pongo la descripcion original para que quede mejor explicado
README version 0.4.1 A highly-available key value store for shared configuration and service discovery. etcd is inspired by Apache ZooKeeper and doozer, with a focus on being: Simple: curl'able user facing API (HTTP+JSON) Secure: optional SSL client cert authentication Fast: benchmarked 1000s of writes/s per instance Reliable: properly distributed using Raft etcd is written in Go and uses the Raft consensus algorithm to manage a highly-available replicated log.
Primero lo que tenemos hacer es instalar coreos segun puse en el post anterior
Para hacer el cluster utilizaremos 2 + 1 , 2 maquinas en cluster y una que hara de descubridor.
Podemos eliminar la maquina descubridora y podemos utilizar la el servicio gratuito
https://discovery.etcd.io
Esto nos generara un token que luego utilizariamos
https://discovery.etcd.io/[tokem]
Yo utilizo la maquina descubridora por que no me gusta compartir informacion interna con servicios externos.
Para la maquina descubridora lo primero que tendremos que lanzar el servicio de etcd con el siguiente comando, siempre parto de que se tiene el coreos instalado.
etcd -name coreos0 -addr 10.10.10.1:4001 -peer-addr 10.10.10.1:7001 -data-dir /opt/etcd
Con esto el servicio estaria levantado ademas nos podemos conectar via web ha
http://10.10.10.1:4001/mod/dashboard
Segun aparece en la imagen de abajo
Ahora tenemos que crear nuestro token para echo haremos uso de su api con este sencillo comando
curl -L "http://10.10.10.1:4001/v2/keys/token" -d dir=true -XPUT
Ya tenemos nuestro token creado
Ahora vamos a iniciar el primer nodo del cluster en otra maquina con el siguiente comando
etcd -name coreos1 -addr 10.10.10.2:4001 -bind-addr 0.0.0.0 -peer-addr 10.10.10.2:7001 -peer-bind-addr 0.0.0.0 -data-dir /opt -discovery http://10.10.10.1:4001/v2/keys/token
esto nos creara una entrada en /token en el etcd para ver la entrada podemos hacer uso de api de la siguiente manera
curl -L "http://10.10.10.1:4001/v2/keys/token" -XGET
Ahora inciamos el segundo nodo del cluster con el mismo comando
etcd -name coreos2 -addr 10.10.10.3:4001 -bind-addr 0.0.0.0 -peer-addr 10.10.10.3:7001 -peer-bind-addr 0.0.0.0 -data-dir /opt -discovery http://10.10.10.1:4001/v2/keys/token
Despues de esto negociaran los etcd quien es el lider y ya tenemos el cluster montando de etcd.
Si queremos escalar el cluster es tan sencillo como repetir el ultimo comando.
Todo este proceso se puede simplificar con un fichero echo en yaml y utilizando el commando coreos-cloudinit
En el siguiente pos os pondre los ficheros y como utilizar fleet.