您必须配置节点机器的基本操作系统,以使用 GKE on Bare Metal。本页面介绍完成所需配置需要执行的步骤。 如需详细了解 GKE on Bare Metal 问题排查要求,请参阅已知问题。
准备工作
确保您使用的是受支持的操作系统版本和 Ubuntu Hardware Enablement (HWE) 内核。如需查看受支持版本的列表,请参阅选择操作系统。
启用 BPF Just In Time 编译器
您的操作系统的内核必须启用 BPF Just In Time 编译器选项 (CONFIG_BPF_JIT=y
)。
如需了解此选项是否已启用,请运行以下命令:
grep CONFIG_BPF_JIT /boot/config-$(uname -r)
验证软件包管理系统
使用以下命令验证软件包管理系统是否正常运行:
sudo apt-get check
输出应不显示错误并且类似于以下示例:
# Reading package lists... Done # Building dependency tree # Reading state information... Done
停用复杂防火墙 (UFW)
停用
ufw
:sudo ufw disable
检查
ufw
是否已停用:sudo ufw status # Status: inactive
在工作站上配置 Docker
在以下场景中,GKE on Bare Metal 可帮助您在裸金属机上安装 Docker:
- 如果您的裸金属机器未安装 Docker,
bmctl
会安装 20.10.0 或更高版本。 - 如果您的裸机机器安装了 Docker 19.03.5 或更早版本,
bmctl
会将 Docker 升级到 20.10.0 或更高版本。
按照以下步骤手动安装 Docker:
移除任何之前的 Docker 版本:
sudo apt-get remove docker docker-engine docker.io containerd runc
更新软件包管理器:
sudo apt-get update
安装 Docker 20.10.0 及更高版本:
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common \ docker.io
确认您现在正在运行 20.10.0 及以上版本:
sudo docker version
将您的输出与以下示例进行比较,以确保 Client 和 Server 版本为 20.10.0+:
Client: Docker Engine - Community Version: 25.0.3 ... Server: Docker Engine - Community Engine: Version: 25.0.3
设置时间同步
时间同步包括使用指定的外部时间参考信息在节点机器上设置时钟。时间同步对于时间敏感型集群活动(例如事件日志记录和指标收集)非常重要。节点机器的内核控制在节点上运行的容器中的时钟。为了确保正确进行时间同步,请使用任何可用的服务(chrony
、systemd-timesyncd
、ntp
或 ntpdate
)在您的机器上安装网络时间协议 (NTP) 服务。运行 timedatectl
验证系统时钟是否已同步。timedatectl
的输出应包含以下状态:
System clock synchronized: yes
确保 Linux 内核 inotify
限制不低于下限
对于运行 Ubuntu 22.04 的机器,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
如果您更新了任一值,请重新启动机器。