Configura RHEL

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 las guías de solución de problemas.

Antes de comenzar

Asegúrate de usar una versión compatible de tu sistema operativo. 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

Asegúrate de tener tu nombre de usuario y contraseña de Red Hat y de tener acceso raíz a las máquinas que configurarás. Sigue estos pasos para validar el administrador de paquetes:

  1. Si no registraste tu sistema operativo, regístrate en Red Hat con tu nombre de usuario y contraseña para descargar actualizaciones:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. Busca actualizaciones:

    sudo dnf check-update
    

    Asegúrate de que el resultado no tenga errores y de que incluya la última verificación de vencimiento de los metadatos. Por ejemplo:

    Updating Subscription Management repositories.
    ...
    # Last metadata expiration check: ...
    ...
    

Configura o inhabilita firewall

Los firewalls se pueden configurar para usarse con GKE en Bare Metal o estar inhabilitados. Para obtener información sobre la configuración de firewall, consulta configura puertos con firewalld en la página de requisitos de red.

Las siguientes instrucciones inhabilitan firewalld.

  1. Inhabilita firewalld:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. Verifica el estado de firewalld para asegurarte de que esté inhabilitado:

    sudo systemctl status firewalld | grep "Active"
    # Output
    # Active: inactive (dead)
    

Configura Docker en tu estación de trabajo

Sigue estos pasos para instalar Docker manualmente:

  1. Quita cualquier versión anterior de Docker:

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. Quita podman-manpages:

    sudo dnf remove podman-manpages
    
  3. Instala Docker 20.10.0+:

    sudo dnf install -y yum-utils
    
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/rhel/docker-ce.repo
    
    sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  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 versión 20.10.0 o posterior:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Verifica que se ejecute Docker:

    docker run hello-world
    

    Deberías ver un resultado similar a este:

    Hello from Docker!
    

    This message shows that your installation appears to be working correctly.

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 el caso de las máquinas que ejecutan RHEL 9, 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

Asegúrate de que estos valores estén configurados de forma correcta en tus máquinas de nodo:

  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.

Prácticas recomendadas

Para simplificar la instalación, recomendamos que configures RHEL con una instalación mínima con administración sin interfaz gráfica. Además, asegúrate de habilitar tu conexión de red y de usar el DHCP predeterminado o proporcionar una dirección IP estática y válida, además de información de la red. Asegúrate de que la máquina pueda conectarse a los recursos externos requeridos, como cloud.google.com.

Si Docker no se ejecuta, verifica que el daemon de Docker se esté ejecutando con el siguiente comando:

sudo systemctl start docker