Configure Ubuntu

You must configure the base operating system of your node machines to use GKE on Bare Metal. This page contains the steps you need to take to complete the needed configuration. For more information about troubleshooting GKE on Bare Metal requirements, see the known issues.

Before you begin

Ensure you are using a supported version of your operating system. GKE on Bare Metal supports the following versions for Ubuntu:

  • 18.04
  • 20.04

Validate package manager:

  sudo apt-get check

The output should show no errors and look similar to the following example:

  # Reading package lists... Done
  # Building dependency tree
  # Reading state information... Done

Disable Uncomplicated Firewall (UFW)

  1. Disable ufw:

    sudo ufw disable
  2. Check that ufw is disabled:

    sudo ufw status
    # Status: inactive

Configure Docker 19.03+ on your workstation

GKE on Bare Metal helps you install Docker on your bare metal machines in the following scenarios:

  • If your bare metal machines don't have Docker installed, bmctl installs 19.03.13 or later.
  • If your bare metal machines have Docker 19.03.5 or earlier installed, bmctl upgrades Docker to version 19.03.13 or later.

Follow these steps to manually install Docker:

  1. Remove any previous Docker version:

    sudo apt-get remove docker docker-engine containerd runc
  2. Update your package manager:

    sudo apt-get update
  3. Install Docker 19.03+:

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
  4. Verify you are now running version 19.03+:

    sudo docker version
  5. Compare your output with the following example to ensure the Client and Server versions are 19.03+ :

     Client: Docker Engine - Community
     Version:           19.03.13
     Server: Docker Engine - Community
      Version:          19.03.13

Set up time synchronization

Time synchronization consists of setting the clocks on your node machines, using a designated external time reference. Time synchronization is important for time-sentive cluster activities, such as event logging and metrics collection. The kernel of your node machine controls the clock in containers that run on the node. To ensure proper time synchronization, install a network time protocol (NTP) service on your machines, using any of the available services: chrony, systemd-timesyncd, ntp, or ntpdate. Run timedatectl to verify the system clock is synchronized. The output of timedatectl should contain the following status:

System clock synchronized: yes