@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

kubernetes-onpremise-ubuntu-conjure-up-14

Kubernetes OnPremise: Ubuntu Conjure-Up

Kubernetes OnPremise: Ubuntu Conjure-Up

Si habéis intentado crear una infraestructura On-Premise de Kubernetes, habéis podido ver que es un auténtico dolor de cabeza, de hecho el otro día escribí un artículo mostrándolo. Esto se debe, a que normalmente estas infraestructuras o son Cloud, o buscas soluciones integradas tipo OpenStack o VMware con la integración en vSphere.

Lo bueno, es que en esto del OpenSource, siempre hay alguien que piensa en el bien común. Y si ese alguien es Canonical con Ubuntu, el resultado seguramente sea de calidad para los pobres usuarios.

Ubuntu Server en su versión 20.04LTS y sus derivados, que es la que voy a utilizar yo, disponen de una herramienta que se llama Conjure-Up. Que tiene un nombre mágico, y realmente, la hace. Nos permite a base de clics implementar nuestra infraestructura en pocos minutos. Y no creáis que terminaréis montando una infraestructura para desarrollo, aunque se pueda, sino que podremos hacer directamente una infraestructura de Kubernetes para Producción si lo deseamos.

¿Y eso como es posible? Porque lleva integrado todo lo necesario, para que trabajando sobre contenedores LXC, podamos montar los Masters, Workers, Containers,…que deseemos y sin mucha dificultad. Esto lo hace con LXD, que no es lo mismo que LXC. LXD es la herramienta para la gestión de los contenedores LXC.

En mi caso, ya tengo un LAB con Proxmox + CephFS, el cual tiene discos SSD y HDD, en el que ya puedo montar LXC (intentaré mostrar si somos capaces de no tener que hacer esta capa adicional y usar directamente Proxmox). Así que usaré la alta disponibilidad que me proporciona esta capa de Proxmox, para implementar mi infraestructura de Kubernetes también en alta disponibilidad.

Este esquema explica como sería el modelo de clúster onpremise para Kubernetes con Ubuntu. En mi caso, la máquina virtual sería el UBUNTU sobre Proxmox y los LXC corriendo debajo:

kubernetes-onpremise-ubuntu-conjure-up-0

Instalamos Ubuntu Server 20.04 LTS con 16GB-24GB de RAM mínimo y 32GB de disco para el sistema operativo (2 tarjetas de red y un disco adicional de 100GB), como vemos los repos ya están cargados. Yo meto también Prometheus para el tema de monitorización al terminar actualizaré el sistema operativo. Hardware recomendado para LOCALHOST:

  • 2 cores
  • 16G RAM
  • 32G Swap
  • 250G SSD
kubernetes-onpremise-ubuntu-conjure-up-1

He agregado un disco adicional para albergar los servidores LXC, lo dejaré en 100GB (hay que tener en cuenta que tendremos los workers, masters y containers en este espacio):

kubernetes-onpremise-ubuntu-conjure-up-2

Usaremos ZFS como sistema de almacenamiento. Podemos usar BTRFS perfectamente, pero a nivel de servidor, personalmente creo que es mejor opción ZFS (integridad de datos, soporte altas capacidades de almacenamiento, chequeos de integridad y reparación automática,…):

Hay que usar la versión de SNAP de LXC, si lo intentáis instalar os dirá que ya existe:

kubernetes-onpremise-ubuntu-conjure-up-3

Os dejo como desinstalar y volver a lanzar la instalación de la siguiente forma:

kubernetes-onpremise-ubuntu-conjure-up-30

Agregamos al usuario para que tenga permisos en la ejecución de comandos sin pasar por SUDO:

kubernetes-onpremise-ubuntu-conjure-up-4

Como hemos dicho tenemos dos discos /sda (para el sistema del host) y /sdb (para los contenedores LXC)

kubernetes-onpremise-ubuntu-conjure-up-5

Ejecutamos el comando lxd init para inicializar LXD (hay reportados errores si se activa IPv6 así que dejarlo a NONE, y aunque os pongo ZFS también hay reportes para colocarlo en DIR ante problemas con CONJURE-UP). Podéis ver en la imagen todas mis respuestas para una nueva instalación:

kubernetes-onpremise-ubuntu-conjure-up-60

Una vez inicializado LXD vamos a instalar conjure-up:

kubernetes-onpremise-ubuntu-conjure-up-7

Lanzamos la instalación mediante el comando conjure-up y en mi caso elijo Kubernetes Core:

kubernetes-onpremise-ubuntu-conjure-up-8

Veis que podéis conectaros a diferentes proveedores, en nuestro caso LOCALHOST:

kubernetes-onpremise-ubuntu-conjure-up-9

Como hemos inicializado LXD los datos vienen ya dados:

kubernetes-onpremise-ubuntu-conjure-up-10

Elegimos FLANNEL y nos pide nuestra contraseña de usuario para lanzar sudo:

kubernetes-onpremise-ubuntu-conjure-up-12

Y aquí viene lo más importante ya que podemos elegir como será nuestro clúster de Kubernetes, os explico cada caso:

  • Containerd: es el componente que gestiona nuestros containers. Desde las settings avanzadas podremos configurar la CA, RAM, CPU, proxy…
  • Easyrsa: permite generar certificados. Aquí no hay settings avanzadas
  • Etcd: es el componente que gestiona la base de datos de Kubernetes. Es interesante darle alta disponibilidad, lo dejaré en 3.
  • Flannel: se refiere a la parte de networking de los containers
  • Kubernetes-Master: el nodo maestro es el que gestiona el clúster. Le daremos alta disponibilidad, mínimo 3. En las settings avanzadas disponéis de todo tipo de configuraciones extras, como configurar un balanceo de carga con haproxy, instalar dashboard, permisos,… que me parece súper interesante.
  • Kubernetes-Worker: los workers o minions son los nodos que tienen los Pods, Deploys, Services…en avanzadas encontraréis parámetros como Ingress y otros más.

kubernetes-onpremise-ubuntu-conjure-up-14

Os dejo una muestra (los recursos se rellenan de la siguiente forma cores=2 mem=2G):

kubernetes-onpremise-ubuntu-conjure-up-14

Permisos en el master:

kubernetes-onpremise-ubuntu-conjure-up-15

Haproxy configuración:

kubernetes-onpremise-ubuntu-conjure-up-16

Lo generaré en mi caso de la siguiente forma:

kubernetes-onpremise-ubuntu-conjure-up-17

Juju, que es la herramienta que usa Ubuntu para la automatización, se pondrá en proceso de la generación de los componentes y el clúster de Kubernetes:

kubernetes-onpremise-ubuntu-conjure-up-18

En el proceso de creación podéis ver el proceso y la generación de los diferentes containers como el de juju:

kubernetes-onpremise-ubuntu-conjure-up-19

El storage:

kubernetes-onpremise-ubuntu-conjure-up-20

O la red:

kubernetes-onpremise-ubuntu-conjure-up-21

Tardará unos minutos completarse. Espero os parezca interesante…

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

linux-comandos-y-directorios-basicos

Linux: Comandos y Directorios básicos

Linux: Comandos y Directorios básicos En el artículo de hoy, os proporcionaremos una visión detallada …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

diez − uno =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu