Rancher: El cluster definitivo de Kubernetes EP1

0
4486
Rancher logo
Logo de rancher

En esta serie de entradas vamos a instalar y configurar rancher y kubernetes, intentando simular un entorno lo más productivo posible, dentro de nuestras limitaciones. Para ello si nos basamos en las buenas prácticas indicadas por la propia rancher. Necesitaremos lo siguiente:

Tres nodos de linux, también conocidos como virtual machines, en una infraestructura típica como puede ser Amazon EC2, Google Compute Engine o vSphere.

Un balanceador de red, para redirigir el tráfico del frontend entre los tres nodos.

Un registro DNS para mapear la URL por el balanceador, esto mapeará la URL de rancher y los cluster de kubernetes necesitarán llegar a ella.

Para simplificar un poco las cosas utilizaremos otro servidor linux con dnsmasq y NGINX.

Algunos se preguntarán, por qué tres nodos ?

En un cluster RKE, los datos de rancher son guardados en etcd. Esta base de datos es ejecutada en los tres nodos.

La base de datos etcd requiere un número impar de nodos para que siempre pueda elegir un líder con la mayoría del clúster etcd. Si la base de datos etcd no puede elegir un líder, etcd puede sufrir una división del cerebro, lo que requiere que el clúster se restaure de la copia de seguridad. Si uno de los tres nodos etcd falla, los dos nodos restantes pueden elegir un líder porque tienen la mayoría del número total de nodos etcd.

Nuestras tres máquinas de linux contaran con las siguientes características.

Linux nodes: 2vCpu, 8GB RAM, 100GB disk

Deployment SizeClustersNodesvCPUsRAM
SmallUp to 150Up to 150028 GB
MediumUp to 300Up to 3000416 GB
LargeUp to 500Up to 5000832 GB
X-LargeUp to 1000Up to 10,0001664 GB
XX-LargeUp to 2000Up to 20,00032128 GB
Tabla para cluster RKE

Aquí os dejo la relación que facilita rancher para los nodos del cluster RKE.

Si solamente queréis probar rancher podéis levantar un single node con docker, os dejo más información aquí.

Preparación del DNS y el Load Balancer

Como servidor DNS utilizaremos dnsmasq y como balanceador NGINX, sistema operativo Centos 7.

Instalamos dnsmasq , habilitamos el daemon y arrancamos el servicio

Systemctl enable dnsmasq

service dnsmasq start

Ahora en el fichero /etc/dnsmasq.conf añadiremos las siguientes entradas al final

strict-order
expand-hosts
domain-needed
domain=sysadm.local

El programa dnsmasq tiene la peculiaridad de leer los ficheros /etc/resolv.conf y /etc/hosts, los registros de nuestros DNS los podemos añadir en /etc/hosts de la siguiente manera:

192.168.1.80 ELBDNS.sysadm.local ELBDNS
192.168.1.81 rancher01.sysadm.local rancher01
192.168.1.82 rancher02.sysadm.local rancher02
192.168.1.83 rancher03.sysadm.local rancher03

Ahora instalaremos nginx, para ello añadiremos epel

yum install -y epel-release && yum -y install nginx

Arrancamos el daemon de nginx y el servicio

systemctl enable nginx && service nginx start

Para configurar NGINX con nuestros nodos de rancher aquí tenemos un fichero de configuración que nos facilita la propia rancher, solamente tendremos que sustituir los parámetros IP_NODE_X por nuestros DNS correspondientes, podéis leer la entrada aquí.

En las siguientes entradas procederemos a instalar y configurar rancher y kubernetes.

En esta anterior entrada te dejo como instalar ansible, no te la pierdas!

¡Hasta la próxima!

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí