Blog de Contraslash (Legacy)

Iniciando con Linode

March 31, 2017

Iniciando con Linode

Cuando finalmente tomé la decisión de cambiarme de lleno a la arquitectura contenedores, decidí echarle un vistazo a mi infraestructura. Hasta el momento he sido un fiel cliente de Digital Ocean, pero tras un percance épico con uno de mis servidores favoritos que lo dejó totalmente inutilizado para usar Docker, decidí considerar otras opciones.

Este es el estado de cambio utilizando Linode.

¿Porqué Linode?

Cuesta la mitad que Digital Ocean, lo digo hoy 31 de Marzo de 2017

Aprovisionando un nuevo Ubuntu 16:04

Deshabilitar ip v6

Si, tuve que deshabilitarla para poder trabajar con mas tranquilidad

Pegar esto al final de /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1 
net.ipv6.conf.lo.disable_ipv6 = 1 

y luego

sudo sysctl -p

Para verificar

cat /proc/sys/net/ipv6/conf/all/disable_ipv6 

Si la respuesta es 1 todo va bien

Instalar docker

Asegurarse de no utilizar un kernel personalizado de linode.

Revisar este post

sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

sudo apt-get update

sudo apt-get install docker-ce

Creando y configurando el Swarm

docker swarm init

docker network create --driver=overlay traefik-network

Creando y configurando traefik

docker service create \
    --name traefik \
    --constraint=node.role==manager \
    --publish 80:80 --publish 8080:8080 \
    --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
    --network traefik-network \
    traefik \
    --docker \
    --docker.swarmmode \
    --docker.domain=example.com \
    --docker.watch \
    --web

Probando un cliente de apache2

docker service create \
    --name apache2 \
    --label traefik.port=80 \
    --network traefik-network \
    httpd

Para ayudar en la resolución de direcciones IPv4 es util habilitar el tcpmtuprobing añadiendo la línea

net.ipv4.tcp_mtu_probing=1

a /etc/sysctl.con y luego ejecutando el comando

sudo sysctl -p