您必须配置节点机器的基本操作系统,以使用 GKE on Bare Metal。本页面介绍完成所需配置需要执行的步骤。 如需详细了解如何排查 GKE on Bare Metal 问题,请参阅问题排查指南。
准备工作
确保您使用的是受支持的操作系统版本。如需查看受支持版本的列表,请参阅选择操作系统。
启用 BPF Just In Time 编译器
您的操作系统的内核必须启用 BPF Just In Time 编译器选项 (CONFIG_BPF_JIT=y
)。
如需了解此选项是否已启用,请运行以下命令:
grep CONFIG_BPF_JIT /boot/config-$(uname -r)
验证软件包管理系统
确保您拥有 RedHat 用户名和密码,并且对正在配置的机器拥有根访问权限。按照以下步骤验证软件包管理器:
如果您尚未注册操作系统,请使用您的 RedHat 用户名和密码注册 RedHat 以下载更新:
sudo subscription-manager register sudo subscription-manager refresh sudo subscription-manager attach --auto
检查更新:
sudo dnf check-update
确保输出没有错误,并且包含上次元数据失效检查。例如:
Updating Subscription Management repositories. ... # Last metadata expiration check: ... ...
配置或停用 firewalld
可以将 Firewalld 配置成与 GKE on Bare Metal 搭配使用,也可以将其停用。如需了解如何配置 firewalld,请参阅“网络要求”页面上的配置 firewalld 端口。
以下说明用于停用 firewalld。
停用 firewalld:
sudo systemctl stop firewalld sudo systemctl disable firewalld
检查 firewalld 的状态以确保它已停用:
sudo systemctl status firewalld | grep "Active" # Output # Active: inactive (dead)
在工作站上配置 Docker
按照以下步骤手动安装 Docker:
移除任何之前的 Docker 版本:
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
移除 podman-manpages:
sudo dnf remove podman-manpages
安装 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
验证您现在是否正在运行 20.10.0 及以上版本:
sudo docker version
将您的输出与以下示例进行比较,以确保客户端和服务器版本均为 20.10.0 及更高版本:
Client: Docker Engine - Community Version: 25.0.3 ... Server: Docker Engine - Community Engine: Version: 25.0.3
验证 Docker 是否能运行:
docker run hello-world
您应该会看到如下所示的内容:
Hello from Docker!
此消息表明您的安装似乎在正常运行。
设置时间同步
时间同步包括使用指定的外部时间参考信息在节点机器上设置时钟。时间同步对于时间敏感型集群活动(例如事件日志记录和指标收集)非常重要。节点机器的内核控制在节点上运行的容器中的时钟。为了确保正确进行时间同步,请使用任何可用的服务(chrony
、systemd-timesyncd
、ntp
或 ntpdate
)在您的机器上安装网络时间协议 (NTP) 服务。运行 timedatectl
验证系统时钟是否已同步。timedatectl
的输出应包含以下状态:
System clock synchronized: yes
确保 Linux 内核 inotify
限制不低于下限
对于运行 RHEL 9 的机器,用户实例数上限和用户手表的 Linux 内核 inotify
限制必须大于或等于以下值:
fs.inotify.max_user_instances
:8192
fs.inotify.max_user_watches
:524288
确保在节点机器上正确设置以下值:
检查
max_user_instances
的值:cat /proc/sys/fs/inotify/max_user_instances
如果需要,将
max_user_instances
更新为最小值:echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
检查
max_user_watches
的值:cat /proc/sys/fs/inotify/max_user_watches
如果需要,将
max_user_watches
更新为最小值:echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
如果您更新了任一值,请重新启动机器。
最佳做法
为了简化安装,我们建议您使用具有无头管理的极简安装配置 RHEL。此外,请务必启用网络连接,并使用默认 DHCP 或提供有效的静态 IP 地址和网络信息。确保机器可以连接到必需的外部资源,例如 cloud.google.com
。
如果 Docker 运行失败,请使用以下命令检查 Docker 守护进程是否正在运行:
sudo systemctl start docker