Configuring CentOS

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 troubleshooting guides.

Before you begin

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

  • CentOS 8.1
  • CentOS 8.2
  • CentOS 8.3

Ensure you have root access to the machines you are configuring.
Validate Package manager with the following steps:

  1. Check for updates:

    sudo dnf check-update
    
  2. Ensure the output has no errors and the last metadata expiration check, for example:

    # Last metadata expiration check: ...
    ...
    google-cloud-sdk.x86_64 ...
    

Configuring or disabling firewalld

Starting with GKE on Bare Metal release 1.7.0, firewalld can be configured for use with GKE on Bare Metal or disabled. For information on configuring firewalld, see Configuring firewalld ports on the Network requirements page.

The following instructions disable firewalld.

  1. Disable firewalld:

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    
  2. Check the status of firewalld to ensure it is disabled:

    sudo systemctl status firewalld | grep "Active"
    # Output
    # Active: inactive (dead)
    

Configuring 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 dnf remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
    
  2. Install Docker 19.03+:

    sudo dnf install -y yum-utils
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    sudo dnf install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker
    
  3. Verify you are now running version 19.03+:

    sudo docker version
    
  4. 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
      Engine:
      Version:          19.03.13
    

Setting up time synchronization

To ensure proper time synchronization, install an 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 timedatectlshould contain the following status:

  System clock synchronized: yes