Configuring RHEL

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, 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 RHEL:

  • RHEL 8.1
  • RHEL 8.2

Ensure you have root access to the machines you are configuring, and your RedHat username and password.
Validate Package manager with the following steps:

  1. If you haven't registered your operating system, register with RedHat using your username and password to download updates:

    sudo subscription-manager register
    sudo subscription-manager refresh
    sudo subscription-manager attach --auto
  2. Check for updates:

    sudo dnf check-update

Ensure the output has no errors and the last metadata expiration check, for example:

  Updating Subscription Management repositories.
  # Last metadata expiration check: ...

Setting SELinux to permissive

  1. Set SELinux to permissive:

    sudo setenforce 0 # temporary
    sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
  2. After rebooting, verify SELinux is set to permissive:

    sudo sestatus | grep "Current mode"
    # Output
    # Current mode: permissive

Disabling 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 \
  2. Remove podman-manpages

    sudo dnf remove podman-manpages
  3. Install Docker 19.03+:

    sudo dnf install -y yum-utils
    sudo yum-config-manager \
        --add-repo \
    sudo dnf install -y docker-ce docker-ce-cli
    sudo systemctl start docker
  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
  6. Verify Docker runs:

    docker run hello-world
    You should see something similar to this:
    Hello from Docker!
    This message shows that your installation appears to be working correctly.

Best Practices

To simplify installation, we recommend that you configure RHEL using a minimal installation with headless management. Also, be sure to enable your network connection and either use the default DHCP or provide a valid, static IP address and network information. Ensure the machine can connect to the required external resources, such as

If Docker fails to run, check that the Docker daemon is running with the following command:

sudo systemctl start docker