Configurar o RHEL

É necessário configurar o sistema operacional de base das máquinas de nó para usar o Google Distributed Cloud. Esta página contém as etapas necessárias para concluir a configuração necessária. Para mais informações sobre como resolver problemas do Google Distributed Cloud, consulte os guias de solução de problemas.

Antes de começar

Verifique se você está usando uma versão compatível do seu sistema operacional. Para acessar uma lista de versões compatíveis, consulte Selecione 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

Verifique se você tem o nome de usuário e a senha do RedHat e se tem acesso raiz às máquinas que está configurando. Valide o gerenciador de pacotes com as seguintes etapas:

  1. Se você não registrou seu sistema operacional, registre com o RedHat usando seu nome de usuário e senha para fazer o download de atualizações:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. Verifique se há atualizações

    sudo dnf check-update
    

    Verifique se a saída não tem erros e a última verificação de expiração de metadados, por exemplo:

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

Configurar ou desativar o firewall

O firewall pode ser configurado para uso com o Google Distributed Cloud ou desativado. Para informações sobre como configurar o firewalld, consulte Como configurar portas de firewalld na página de requisitos de rede.

As instruções a seguir desativam o firewalld.

  1. Desativar firewalld:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. Verifique o status do firewalld para garantir que ele esteja desativado:

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

Configurar o Docker na estação de trabalho

Siga estas etapas para instalar o Docker manualmente:

  1. Remova qualquer versão anterior do Docker:

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

    sudo dnf remove podman-manpages
    
  3. Instale o Docker 20.10.0 ou posterior:

    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. Verifique se você está usando a versão 20.10.0 ou posterior:

    sudo docker version
    
  5. Compare o resultado com o exemplo a seguir para garantir que as versões do cliente e do servidor sejam 20.10.0 ou posterior:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Verifique se o Docker executa:

    docker run hello-world
    

    Você verá algo como:

    Hello from Docker!
    

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

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

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

Para máquinas com RHEL 9, os limites de inotify do kernel do Linux para instâncias de usuário máximas e monitoramentos de usuário precisam ser maiores ou iguais a este:

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

Verifique se esses valores estão definidos corretamente nas máquinas de nó:

  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ê tiver atualizado um dos valores, reinicie a máquina.

Práticas recomendadas

Para simplificar a instalação, configure o RHEL usando uma instalação mínima com gerenciamento headless. Além disso, ative a conexão de rede e use o DHCP padrão ou forneça um endereço IP estático válido e as informações de rede. Verifique se a máquina pode se conectar aos recursos externos necessários, como cloud.google.com.

Se a execução do Docker falhar, verifique se o daemon do Docker está sendo executado com o seguinte comando:

sudo systemctl start docker