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.

Deja un comentario