Publicando tus contenedores Docker sobre Giant Swarm

28-09-2015
 
Giant swarm Logo

Giant swarm Logo

Giant Swarm es un proveedor IaaS(Infraestructure As A Service) donde básicamente nos permite desplegar nuestros propios contenedores Docker sobre su infraestructura.

Todavía tienen su plan ‘Shared‘ en fase Alfa, pero después de varios tweets con varios componentes de la empresa me decidí a probar su servicio, que por cierto, es excelente. Son una empresa Alemana, con un equipo muy sociable y tiene pinta de ser un gran proyecto con un gran equipo detrás. Hay que decir que el precio que tienen por el servicio que dan es muy competitivo.

Antes de empezar

Giant Swarm dispone de varias imágenes de docker para desplegar en sus servidores, en mi caso, voy a desplegar una imagen que ya tengo con ubuntu y el servidor web Apache.

Si tenéis problemas para entender como funciona Docker podéis empezar leyendo mi anterior post “Trabajando con contenedores de Docker”.

Instalamos el cliente CLI(Command Line Interface)

Para poder interactuar con Giant Swarm necesitaremos instalar su cliente CLI. Esto es una practica habitual en muchos proveedores de este tipo de servicios, todos tienen su propio cliente CLI que nos permitirá interactuar(Por línea de comandos) con el servicio. En mi caso, como utilizo Ubuntu:

# Descargamos el cliente para Linux 64
curl -O https://downloads.giantswarm.io/swarm/clients/0.21.0/swarm-0.21.0-linux-amd64.tar.gz

# Lo descomprimimos
tar xzf swarm-0.21.0-linux-amd64.tar.gz

#Y lo copiamos en alguna carpeta del path, por ejemplo /usr/local/bin
sudo cp swarm /usr/local/bin/

Y nos logueamos con el cliente:

	swarm login mi_usuario_de_giantswarm

Subimos la imagen docker

En mi caso, ya tengo una imagen en docker llamada ‘ubuntuapache’. Le tendré que poner el nombre conforme a la normativa de Swarm Giant ‘registry.giantswarm.io//‘ para poder desplegarla en su infraestructura.

# Nos logueamos en Swarm Giant con docker
sudo docker login https://registry.giantswarm.io

# Le damos a mi imagen 'ubuntuapache' el formato de nombre que requiere Swarm
sudo docker tag ubuntuapache registry.giantswarm.io/acoronadoc/ubuntuapache:latest

# Hacemos el push a Swarm Giant
sudo docker push registry.giantswarm.io/acoronadoc/ubuntuapache:latest

Definimos el servicio que arrancará nuestra imagen

En Swarm Giant los servicios se definen mediante un fichero JSON, normalmente llamado ‘swarm.json'(Que crearemos en nuestro ordenador). En este fichero configuraremos el nombre de nuestro servicio y los componentes(imagenes docker) que tendrá. En mi caso tendrá una pinta como la siguiente:

{
  "name": "albert-service",

  "components": {

    "webserver": {
      "image": "registry.giantswarm.io/acoronadoc/ubuntuapache:latest",
      "entrypoint": "/home/start.sh",
      "ports": 80,
      "domains": {
        "80": "acoronadoc.gigantic.io"
      }

    }
  }
}

En este fichero se pueden definir un montón de cosas, podeis incontrar mas información en la extensa documentación del proveedor https://docs.giantswarm.io/reference/swarm-json/ . Por cierto, yo he tenido que crear un script para el ‘punto de entrada’ de la imagen docker que arranca el servidor apache y entra en un bucle para que no se cierre (No se si es lo mas elegante, pero funciona).

Después ponemos en marcha el servicio usando el comando swarm up(donde le tenemos que definir un dominio):

	swarm up --var=domain=testalbert-$(swarm user).gigantic.io

Y finalmente, ya tenemos nuestro servicio funcionando. El panel de control de Giant Swarm nos ofrece un montón de información en tiempo real del consumo de CPU y RAM de nuestros contenedores. En el pantallazo se ve además como nos permite gestionar varias organizaciones y entornos.

Giant Swarm Service Info

Giant Swarm Service Info

Ya veis que es muy sencillo… bueno, a mi me ha llevado toda la tarde. He tenido problemas a la hora de crear la imagen docker. Pero una vez entiendes el sistema es una pasada. Recomiendo mucho el proveedor por calidad y precio (Tanto del servicio y del equipo).

Comments

One Response to “Publicando tus contenedores Docker sobre Giant Swarm”
  1. […] anteriores posts vimos como publicar nuestros contenedores Docker sobre Giant Swarm. En el post de hoy veremos como publicar nuestros contenedores Docker sobre IBM Bluemix, el […]

Leave a Reply

© Albert Coronado Calzada