配置 Ubuntu

您必须配置节点机器的基本操作系统,以使用 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)

  1. 停用 ufw

    sudo ufw disable
    
  2. 检查 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:

  1. 移除任何之前的 Docker 版本:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. 更新软件包管理器:

    sudo apt-get update
    
  3. 安装 Docker 20.10.0 及更高版本:

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
      docker.io
    
  4. 确认您现在正在运行 20.10.0 及以上版本:

    sudo docker version
    
  5. 将您的输出与以下示例进行比较,以确保 Client 和 Server 版本为 20.10.0+:

     Client: Docker Engine - Community
     Version:           25.0.3
     ...
     Server: Docker Engine - Community
      Engine:
      Version:          25.0.3
    

设置时间同步

时间同步包括使用指定的外部时间参考信息在节点机器上设置时钟。时间同步对于时间敏感型集群活动(例如事件日志记录和指标收集)非常重要。节点机器的内核控制在节点上运行的容器中的时钟。为了确保正确进行时间同步,请使用任何可用的服务(chronysystemd-timesyncdntpntpdate)在您的机器上安装网络时间协议 (NTP) 服务。运行 timedatectl 验证系统时钟是否已同步。timedatectl 的输出应包含以下状态:

System clock synchronized: yes

确保 Linux 内核 inotify 限制不低于下限

对于运行 Ubuntu 22.04 的机器,Linux 内核 inotify 用户实例数上限和用户手表限制必须大于或等于以下值:

  • fs.inotify.max_user_instances8192
  • fs.inotify.max_user_watches524288

要确保在您的节点机器上正确设置这些值,请执行以下操作:

  1. 检查 max_user_instances 的值:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. 如果需要,将 max_user_instances 更新为最小值:

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. 检查 max_user_watches 的值:

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. 如果需要,将 max_user_watches 更新为最小值:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. 如果您更新了任一值,请重新启动机器。