Configure o RHEL

Tem de configurar o sistema operativo base das suas máquinas de nós para usar o Google Distributed Cloud. Esta página contém os passos que tem de seguir para concluir a configuração necessária. Para mais informações sobre a resolução de problemas do Google Distributed Cloud, consulte os guias de resolução de problemas.

Antes de começar

Certifique-se de que está a usar uma versão suportada do seu sistema operativo. Para ver uma lista das versões suportadas, consulte a secção Selecione o seu sistema operativo.

Ative o compilador Just In Time do BPF

O kernel do seu sistema operativo tem de ter a opção do compilador Just In Time do BPF ativada (CONFIG_BPF_JIT=y).

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

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

Valide o gestor de pacotes

Certifique-se de que tem o nome de utilizador e a palavra-passe do RedHat, e que tem acesso de raiz às máquinas que está a configurar. Valide o Gestor de pacotes com os seguintes passos:

  1. Se não tiver registado o seu sistema operativo, registe-o no RedHat com o seu nome de utilizador e palavra-passe do RedHat para transferir atualizações:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. Procure atualizações:

    sudo dnf check-update
    

    Certifique-se de que o resultado não tem erros e inclui a última verificação da expiração dos metadados. Por exemplo:

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

Configure ou desative o firewalld

O Firewalld pode ser configurado para utilização com o Google Distributed Cloud ou desativado. Para obter informações sobre a configuração do firewalld, consulte o artigo Configure as portas do firewalld na página Requisitos de rede.

As instruções seguintes desativam o firewalld.

  1. Desative o firewalld:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. Verifique o estado do firewalld para garantir que está desativado:

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

Configure o Docker na sua estação de trabalho

Siga estes passos para instalar manualmente o Docker:

  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 superior:

    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 está a usar a versão 20.10.0 ou superior:

    sudo docker version
    
  5. Compare a sua saída com o exemplo seguinte para garantir que as versões do cliente e do servidor são 20.10.0 ou superiores:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Valide as execuções do Docker:

    docker run hello-world
    

    Deve ver algo semelhante ao seguinte:

    Hello from Docker!
    

    Esta mensagem mostra que a instalação parece estar a funcionar corretamente.

Configure a sincronização de tempo

A sincronização de tempo consiste em definir os relógios nas máquinas dos nós, usando uma referência de tempo externa designada. A sincronização de tempo é importante para atividades de cluster sensíveis ao tempo, como o registo de eventos e a recolha de métricas. O kernel da máquina do nó controla o relógio nos contentores executados no nó. Para garantir a sincronização de tempo adequada, instale um serviço de protocolo de tempo de rede (NTP) nas suas 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. O resultado de timedatectl deve conter o seguinte estado:

System clock synchronized: yes

Certifique-se de que os limites do kernel do Linux inotify estão no mínimo ou acima do mínimo

Para máquinas com o RHEL 9 e o 8.10, os inotifylimites do kernel do Linux para o número máximo de instâncias de utilizadores e de observações de utilizadores têm de ser superiores ou iguais ao seguinte:

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

Certifique-se de que estes valores estão definidos corretamente nas suas 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 atualizou algum dos valores, reinicie a máquina.

Práticas recomendadas

Para simplificar a instalação, recomendamos que configure o RHEL através de uma instalação mínima com gestão sem monitor. Além disso, certifique-se de que ativa a ligação de rede e usa o DHCP predefinido ou fornece um endereço IP estático válido e informações de rede. Certifique-se de que a máquina consegue estabelecer ligação aos recursos externos necessários, como cloud.google.com.

Se o Docker não for executado, verifique se o daemon do Docker está em execução com o seguinte comando:

sudo systemctl start docker