Configura Ubuntu

Debes configurar el sistema operativo base de las máquinas de nodo para usar GKE en Bare Metal. En esta página, se incluyen los pasos que debes seguir para completar la configuración necesaria. Para obtener más información sobre la solución de problemas de GKE en Bare Metal, consulta los problemas conocidos.

Antes de comenzar

Asegúrate de estar usando una versión compatible de tu sistema operativo y un kernel de habilitación de hardware de Ubuntu (HWE). Para obtener una lista de las versiones compatibles, consulta Selecciona tu sistema operativo.

Habilita el compilador Just In Time de BPF

El kernel de tu sistema operativo debe tener habilitada la opción del compilador Just In Time de BPF (CONFIG_BPF_JIT=y).

  • Para saber si esta opción está habilitada, ejecuta el siguiente comando:

    grep CONFIG_BPF_JIT /boot/config-$(uname -r)
    

Valida el administrador de paquetes

  • Usa el siguiente comando para validar que el administrador de paquetes funcione correctamente:

    sudo apt-get check
    

    El resultado no debería mostrar errores y debería ser similar al siguiente ejemplo:

    # Reading package lists... Done
    # Building dependency tree
    # Reading state information... Done
    

Inhabilita el Uncomplicated Firewall (UFW)

  1. Inhabilita ufw:

    sudo ufw disable
    
  2. Verifica que ufw esté inhabilitado:

    sudo ufw status
    # Status: inactive
    

Configura Docker en tu estación de trabajo

GKE en Bare Metal te ayuda a instalar Docker en las máquinas de Bare Metal en las siguientes situaciones:

  • Si tus máquinas de Bare Metal no tienen instalado Docker, bmctl instala la versión 20.10.0 o una posterior.
  • Si tus máquinas de equipos físicos tienen instalado Docker 19.03.5 o una versión anterior, bmctl actualiza Docker a la versión 20.10.0 o posterior.

Sigue estos pasos para instalar Docker manualmente:

  1. Quita cualquier versión anterior de Docker:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. Actualiza el administrador de paquetes:

    sudo apt-get update
    
  3. Instala Docker 20.10.0+:

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
      docker.io
    
  4. Verifica que estés ejecutando la versión 20.10.0 o una posterior:

    sudo docker version
    
  5. Compara el resultado con el siguiente ejemplo para asegurarte de que las versiones del cliente y del servidor sean la 20.10.0 o posterior :

     Client: Docker Engine - Community
     Version:           25.0.3
     ...
     Server: Docker Engine - Community
      Engine:
      Version:          25.0.3
    

Configura la sincronización de hora

La sincronización temporal consiste en configurar los relojes en tus máquinas de nodos con una referencia de tiempo externa designada. La sincronización temporal es importante para las actividades de clúster con concepción de tiempo, como el registro de eventos y la recopilación de métricas. El kernel de tu máquina de nodos controla el reloj en contenedores que se ejecutan en los nodos. Para garantizar una sincronización temporal correcta, instala un servicio de protocolo NTP en tus máquinas con cualquiera de los servicios disponibles: chrony, systemd-timesyncd, ntp o ntpdate. Ejecuta timedatectl para verificar que el reloj del sistema esté sincronizado. El resultado de timedatectl debería contener el siguiente estado:

System clock synchronized: yes

Asegúrate de que los límites de inotify del kernel de Linux sean iguales o superiores al mínimo

En las máquinas que ejecutan Ubuntu 22.04, los límites de inotify del kernel de Linux para la cantidad máxima de instancias de usuarios y las observaciones de usuarios deben ser mayores o iguales que lo siguiente:

  • fs.inotify.max_user_instances: 8192
  • fs.inotify.max_user_watches: 524288

Para asegurarte de que estos valores estén configurados de forma correcta en tus máquinas de nodos, sigue estos pasos:

  1. Verifica el valor de max_user_instances:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. Si es necesario, actualiza max_user_instances al valor mínimo:

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. Verifica el valor de max_user_watches:

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. Si es necesario, actualiza max_user_watches al valor mínimo:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. Si actualizaste cualquiera de los valores, reinicia la máquina.