afm719 / Cloud-Computing-Arahi

0 stars 0 forks source link

Clúster Tutorial (ES) #1

Open afm719 opened 3 days ago

afm719 commented 3 days ago

Crear un clúster con una máquina máster y dos máquinas (node01 y node02)

Requisitos iniciales

  1. Descarga VirtualBox: https://www.virtualbox.org/
  2. Descarga una distribución de Ubuntu compatible (se recomienda una versión antigua para mayor compatibilidad): https://ubuntu.com/download/server

Características del clúster

Máquina Máster:

Máquinas de Nodo (node01, node02, ...):

Creación de la máquina template para la post-creación de las máquinas del clúster

  1. Crea la máquina con el nombre template,
  2. Elige una ubicación (normalmente se deja la que pone por defecto)
  3. cargar la imagen ISO

image

  1. Asignar los parámetros dichos anteriormente

image

  1. Se puede dejar por defecto el nombre de usuario y la contraseña. IMPORTANTE TENER EN CUENTA PARA LA POSTERIOR CONFIGURACIÓN

image

  1. Darle finalizar y arrancar la máquina (te pedirá el usuario y contraseña anotados anteriormente)
  2. Una vez iniciada ejecuta los siguientes comandos:
sudo apt update
sudo apt upgrade

Si tienes problemas, prueba a instalar una versión más moderna y estable.

  1. Instalación de paquetes
sudo apt install net-tools gcc make
sudo shutdown -h now

Maquina lista para ser clonada

Creación máquina Máster

  1. Clonación de la máquina template (pinchar en la oveja y darle a clonación completa, en Name poner master)
  2. Una vez creada, accede a la configuración -> red -> adaptador1 (NAT) (dejar como está) configuración -> red -> adaptador2 (Red interna) (necesario habilitarlo) (IMPORTANTE PONERLE DE NOMBRE clustervimnet)

Guarda la configuración

Configuración red del nodo Máster

Para ver las interfaces disponibles en la VM se debe ejecutar el comando

ip link show

Tras ejecutar el comando obtendrás:

image

dónde:

enp0s3 es el adaptador 1 (NAT). enp0s8 es el adaptador2 (red interna).

Hay que configurar la interfaz enp0s8 como estatica usando la dirección IP 192.168.0.1, para ello hay que editar el siguiente fichero:

sudo vim /etc/netplan/50-cloud-init.yaml

Dentro de ese fichero debes poner la siguiente información:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
     dhcp4: no
     addresses: [192.168.0.1/24]

Si estas editando con el editor VIM el comando para guardar es ESC :w y para salir ESC :q! Si estas editando con el editor NANO el comando para guardar es CTR+X

Una vez hayas guardado todo es importante GUARDAR, siempre que toques este fichero debes guardar y aplicar los cambios, usando el siguiente comando:

sudo netplan apply

Para identificar cada máquina de una forma más sencilla, accedemos a los ficheros de host ejecutando los siguientes comandos:

sudo vim /etc/hostname

dentro cambiaremos template por master.

Luego:

sudo vim /etc/hosts

127.0.0.1 localhost
192.168.0.1 master

192.168.0.22 cluster01

# The following lines are deriable for IPv6 capable hosts
...

SSH

Este paso es importante para conectar las VMs con nuestra máquina host

  1. En VirtualBox (máquina máster) accede al siguiente apartado: Settings>Network>Port Forwarding>Add
  2. Establece la siguiente regla: image
  3. Instala el servicio ssh sudo apt install openssh-server
  4. Comprueba que esté sudo systemctl status ssh, si no lo está activalo sudo systemctl enable ssh
  5. Entra en tu terminal de WINDOWS/MAC y ejecuta el comando: ssh-keygen para generar una clave
  6. Esta llave publica debe ser copiada en el host del máster con el siguiente comando:
    cd .ssh
    scp -P 2222 id_ed25519.pub vboxuser@127.0.0.1

recuerda que el nombre de id_.......pub y el nombre de vboxeruser no es el mismo para todos (vboxeruser es el nombre usuario que asignaste al principio de la creación de la máquina por lo que tendrá que ser ese nombre) y el id será el que te genere la ssh-keygen.

Por último debes ir a tu máquina máster y ejecutar el siguiente comando:

cat id_ed25519.pub >> .ssh/authorized_keys
rm id_ed25519.pub

Finalmente ya tendrás tu conexión ssh lista:

ssh -p 2222 vboxuser@127.0.0.1

Este comando debe ser ejecutado desde tu terminal de WINDOWS/MAC

DHCP y DNS

Lista de comando a ejecutar:

sudo apt install dnsmasq -y
sudo vim /etc/dnsmasq.conf
port=53
bogus-priv
strict-order
interface=enp0s8
listen-address=::1,127.0.0.1,192.168.0.1
bind-interfaces
log-queries
log-dhcp
dhcp-range=192.168.0.22,192.168.0.28,255.255.255.0,12h
dhcp-option=option:dns-server,192.168.0.1
dhcp-option=3

sudo ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf

sudo vim /etc/netplan/50-cloud-init.yaml

network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: false
      addresses: [192.168.0.1/24]
      nameservers:
        addresses: [192.168.0.1]
  version: 2

sudo netplan apply

sudo vim /etc/default/dnsmasq

IGNORE_RESOLVCONF=yes
DNSMASQ_EXCEPT="lo"

sudo systemctl restart dnsmasq systemd-resolved

sudo systemctl status dnsmasq

host cluster01

image

Sistema distribuido de ficheros

sudo apt install nfs-kernel-server
sudo mkdir -p /mnt/shared

#Intenta montar nuevamente el directorio exportado desde el servidor NFS:
sudo mount -t nfs <IP_del_servidor>:/shared /mnt/shared

#Reemplaza <IP_del_servidor> con la IP del servidor NFS
sudo mount -t nfs 192.168.0.1:/shared/ /mnt/shared

#Después del montaje, verifica si se realizó correctamente ejecutando el comando:

df -h | grep /mnt/shared

Si el directorio /mnt/shared aparece en la lista, significa que el sistema de archivos NFS fue montado con éxito.

Es importante que este sistema de ficheros esté siempre que encedamos la máquina es por eso que hace falta hacerlo permanente

sudo vim /etc/fstab

y pones: :/shared /mnt/shared nfs defaults 0 0

192.168.0.1:/shared /mnt/shared nfs defaults 0 0

Aquí están los componentes de esa línea:

Antes de reiniciar, prueba que la nueva entrada en /etc/fstab funciona correctamente. Ejecuta el siguiente comando para montar todos los sistemas de archivos especificados en /etc/fstab:

sudo mount -a

Si no ves ningún mensaje de error, significa que el montaje fue exitoso. Puedes verificarlo con el comando:

df -h | grep /mnt/shared

Finalmente, reinicia el cliente para asegurarte de que el sistema de archivos NFS se monta automáticamente al arrancar:

sudo reboot

Después del reinicio, verifica que el sistema de archivos NFS esté montado automáticamente:

df -h | grep /mnt/shared

Nodos01, Nodos02...Nodos_n

Realizar los mismos pasos de clonación y de configuración de red (adaptador)

Una vez iniciada la máquina abrir el siguiente fichero:

$ sudo vim /etc/netplan/50-cloud-init.yaml

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
      dhcp4-overrides:
        use-dns: no
    enp0s8:
     dhcp4: true
     dhcp-identifier: mac
     nameservers:
          addresses: [192.168.0.1]
  version: 2

y guardar cambios $ sudo netplan apply

sudo ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf

Configuración de resolución de nombres en el archivo /etc/hosts

  1. Configurar el archivo /etc/hosts para resolver cluster01

En el master, agrega una entrada en el archivo /etc/hosts para que el nombre cluster01 se resuelva a la IP de node01 (por ejemplo, 192.168.0.23).

Pasos:

  1. Abre el archivo /etc/hosts en el master:

    sudo vim /etc/hosts
  2. Agrega la siguiente línea al archivo para que el nombre cluster01 se resuelva a la IP de node01 (usa la IP que corresponde al interfaz de red que deseas utilizar, que sería probablemente 192.168.0.23):

    192.168.0.23   cluster01
  3. Guarda y cierra el archivo.

    1. Verificar que puedas hacer ping a cluster01

Una vez que hayas actualizado el archivo /etc/hosts, verifica que puedas hacer ping a cluster01 desde el master para asegurarte de que la resolución de nombres funciona correctamente:

ping cluster01

Si el ping responde, entonces la resolución de nombres funciona y puedes pasar al siguiente paso.

Finalmente desde la máquina máster podrás ejecutar:

ssh vboxuser@cluster01

# o también

ssh vboxuser@192.168.0.23

finalmente, repite los mismo pasos de creación de sistema distribuido de ficheros y tendrás tu clúster listo