Configurar o Ubuntu

Para usar o GKE em bare metal, é necessário configurar o sistema operacional de base das suas máquinas de nó. Esta página contém as etapas necessárias para concluir a configuração necessária. Para mais informações sobre como resolver os requisitos do GKE em Bare Metal, consulte os problemas conhecidos.

Antes de começar

Verifique se você está usando uma versão com suporte do seu sistema operacional e um kernel de ativação de hardware (HWE) do Ubuntu. Para conferir uma lista de versões compatíveis, consulte Selecionar seu sistema operacional.

Ativar o compilador Just in Time do BPF

O kernel do sistema operacional precisa ter a opção do compilador Just In Time BPF ativada (CONFIG_BPF_JIT=y).

  • Para saber se essa opção está ativada, execute o seguinte comando:

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

Validar o gerenciador de pacotes

  • Use o seguinte comando para validar se o gerenciador de pacotes está funcionando corretamente:

    sudo apt-get check
    

    A resposta não mostrará erros e será semelhante ao exemplo a seguir:

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

Desativar Uncomplicated Firewall (UFW)

  1. Desative ufw:

    sudo ufw disable
    
  2. Verifique se ufw está desativado:

    sudo ufw status
    # Status: inactive
    

Configure o Docker na sua estação de trabalho

O GKE em Bare Metal ajuda a instalar o Docker nas suas máquinas bare metal nos seguintes cenários:

  • Se as máquinas bare metal não tiverem o Docker instalado, o bmctl vai instalar a versão 20.10.0 ou mais recente.
  • Se as máquinas bare metal tiverem o Docker 19.03.5 ou anterior instalado, o bmctl vai fazer upgrade do Docker para a versão 20.10.0 ou mais recente.

Siga estas etapas para instalar o Docker manualmente:

  1. Remova qualquer versão anterior do Docker:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. Atualize seu gerenciador de pacotes:

    sudo apt-get update
    
  3. Instale o Docker 20.10.0+:

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
      docker.io
    
  4. Verifique se você está executando a versão 20.10.0+:

    sudo docker version
    
  5. Compare a saída com o exemplo a seguir para garantir que as versões de cliente e servidor sejam 20.10.0+ :

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

Configurar a sincronização de horário

A sincronização de tempo consiste em definir os relógios nas máquinas de nós, usando uma referência de hora externa designada. A sincronização de tempo é importante para atividades de cluster com base em tempo, como geração de registros de eventos e coleta de métricas. O kernel da máquina de nó controla o relógio nos contêineres executados no nó. Para garantir a sincronização de tempo adequada, instale um serviço Network Time Protocol (NTP) nas máquinas usando qualquer um dos serviços disponíveis: chrony, systemd-timesyncd, ntp ou ntpdate. Execute timedatectl para verificar se o relógio do sistema está sincronizado. A saída de timedatectl precisa conter o status a seguir:

System clock synchronized: yes

Verifique se os limites de inotify do kernel do Linux são iguais ou maiores que o mínimo

Em máquinas com o Ubuntu 22.04, os limites de inotify do kernel do Linux para o máximo de instâncias de usuário e de observação de usuários precisam ser maiores ou iguais a estes:

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

Para garantir que esses valores sejam definidos corretamente nas máquinas de nós:

  1. Verifique o valor de max_user_instances:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. Se necessário, atualize max_user_instances para o valor mínimo:

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

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. Se necessário, atualize max_user_watches para o valor mínimo:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. Se você atualizou algum dos valores, reinicie a máquina.