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)
Inhabilita
ufw
:sudo ufw disable
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:
Quita cualquier versión anterior de Docker:
sudo apt-get remove docker docker-engine docker.io containerd runc
Actualiza el administrador de paquetes:
sudo apt-get update
Instala Docker 20.10.0+:
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common \ docker.io
Verifica que estés ejecutando la versión 20.10.0 o una posterior:
sudo docker version
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:
Verifica el valor de
max_user_instances
:cat /proc/sys/fs/inotify/max_user_instances
Si es necesario, actualiza
max_user_instances
al valor mínimo:echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
Verifica el valor de
max_user_watches
:cat /proc/sys/fs/inotify/max_user_watches
Si es necesario, actualiza
max_user_watches
al valor mínimo:echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
Si actualizaste cualquiera de los valores, reinicia la máquina.