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 para conclusão da configuração necessária. Para mais informações sobre como solucionar problemas do GKE em bare metal, 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:
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
Verifique se há atualizações
sudo dnf check-update
Verifique se a saída não tem erros e inclui a última verificação de expiração dos metadados. Exemplo:
Updating Subscription Management repositories. ... # Last metadata expiration check: ... ...
Configurar ou desativar o firewalld
O firewalld pode ser configurado para uso com o GKE em bare metal 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.
Desativar firewalld:
sudo systemctl stop firewalld sudo systemctl disable firewalld
Verifique o status do firewalld para garantir que ele esteja desativado:
sudo systemctl status firewalld | grep "Active" # Output # Active: inactive (dead)
Configure o Docker na sua estação de trabalho
Siga estas etapas para instalar o Docker manualmente:
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
Remova podman-manpages
sudo dnf remove podman-manpages
Instale o 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
Verifique se você está executando a versão 20.10.0+:
sudo docker version
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
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
Verifique se os limites de inotify
do kernel do Linux são iguais ou maiores que o mínimo
Para máquinas que executam o RHEL 9, 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
Verifique se esses valores estão definidos corretamente nas máquinas de nós:
Verifique o valor de
max_user_instances
:cat /proc/sys/fs/inotify/max_user_instances
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
Verifique o valor de
max_user_watches
:cat /proc/sys/fs/inotify/max_user_watches
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
Se você atualizou algum 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 e as informações de rede válidas. 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