Stay organized with collections
Save and categorize content based on your preferences.
You must configure the base operating system of your node machines to use
Google Distributed Cloud. This page contains the steps you need to take to complete the
needed configuration.
For more information about troubleshooting Google Distributed Cloud requirements,
see the known issues.
Before you begin
Ensure that you are using a supported version of your operating system and a
Ubuntu Hardware Enablement (HWE) kernel. For a list of supported versions, see
Select your operating system.
Enable BPF Just In Time compiler
The kernel for your operating system must have the BPF Just In Time compiler
option enabled (CONFIG_BPF_JIT=y).
To find out whether this option is enabled, run the following command:
grepCONFIG_BPF_JIT/boot/config-$(uname-r)
Validate the package manager
Use the following command to validate that the package manager is operating
correctly:
sudoapt-getcheck
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)
Disable ufw:
sudo ufw disable
Check that ufw is disabled:
sudo ufw status
# Status: inactive
Configure Docker on your workstation
Google Distributed Cloud 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
20.10.0 or later.
If your bare metal machines have Docker 19.03.5 or earlier installed, bmctl
upgrades Docker to version 20.10.0 or later.
Compare your output with the following example to ensure the Client and Server versions are 20.10.0+ :
Client: Docker Engine - Community
Version: 25.0.3
...
Server: Docker Engine - Community
Engine:
Version: 25.0.3
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
Ensure Linux kernel inotify limits are at or higher than minimum
For machines running Ubuntu 22.04, Linux kernel inotify limits
for maximum user instances and user watches must be greater than or equal to the
following:
fs.inotify.max_user_instances: 8192
fs.inotify.max_user_watches: 524288
To ensure these values are set correctly on your node machines:
Check the value of max_user_instances:
cat/proc/sys/fs/inotify/max_user_instances
If needed, update max_user_instances to the minimum value:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[],[],null,["# Configure Ubuntu\n\nYou must configure the base operating system of your node machines to use\nGoogle Distributed Cloud. This page contains the steps you need to take to complete the\nneeded configuration.\nFor more information about troubleshooting Google Distributed Cloud requirements,\nsee the [known issues](/kubernetes-engine/distributed-cloud/bare-metal/docs/troubleshooting/known-issues).\n\nBefore you begin\n----------------\n\nEnsure that you are using a supported version of your operating system and a\nUbuntu Hardware Enablement (HWE) kernel. For a list of supported versions, see\n[Select your operating system](/kubernetes-engine/distributed-cloud/bare-metal/docs/installing/os-reqs).\n\nEnable BPF Just In Time compiler\n--------------------------------\n\nThe kernel for your operating system must have the BPF Just In Time compiler\noption enabled (`CONFIG_BPF_JIT=y`).\n\n- To find out whether this option is enabled, run the following command:\n\n grep CONFIG_BPF_JIT /boot/config-$(uname -r)\n\nValidate the package manager\n----------------------------\n\n- Use the following command to validate that the package manager is operating\n correctly:\n\n sudo apt-get check\n\n The output should show no errors and look similar to the following example: \n\n # Reading package lists... Done\n # Building dependency tree\n # Reading state information... Done\n\nDisable Uncomplicated Firewall (UFW)\n------------------------------------\n\n1. Disable `ufw`:\n\n sudo ufw disable\n\n2. Check that `ufw` is disabled:\n\n sudo ufw status\n # Status: inactive\n\nConfigure Docker on your workstation\n------------------------------------\n\nGoogle Distributed Cloud helps you install Docker on your bare metal machines in the\nfollowing scenarios:\n\n- If your bare metal machines don't have Docker installed, `bmctl` installs 20.10.0 or later.\n- If your bare metal machines have Docker 19.03.5 or earlier installed, `bmctl` upgrades Docker to version 20.10.0 or later.\n\n| **Note:** The workstation running `bmctl` needs non-root user access to Docker to start the temporary bootstrap (kind) cluster during installation. To enable non-root user access to Docker, go to [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user).\n\nFollow these steps to manually install Docker:\n\n1. Remove any previous Docker version:\n\n sudo apt-get remove docker docker-engine docker.io containerd runc\n\n2. Update your package manager:\n\n sudo apt-get update\n\n3. Install Docker 20.10.0+:\n\n sudo apt-get install \\\n apt-transport-https \\\n ca-certificates \\\n curl \\\n gnupg-agent \\\n software-properties-common \\\n docker.io\n\n4. Verify you are now running version 20.10.0+:\n\n sudo docker version\n\n5. Compare your output with the following example to ensure the Client and Server versions are 20.10.0+ :\n\n Client: Docker Engine - Community\n Version: 25.0.3\n ...\n Server: Docker Engine - Community\n Engine:\n Version: 25.0.3\n\nSet up time synchronization\n---------------------------\n\nTime synchronization consists of setting the clocks on your node machines, using\na designated external time reference. Time synchronization is important for\ntime-sentive cluster activities, such as event logging and metrics collection.\nThe kernel of your node machine controls the clock in containers that run on the\nnode. To ensure proper time synchronization, install a network time protocol\n(NTP) service on your machines, using any of the available services:\n[`chrony`](https://chrony.tuxfamily.org/), `systemd-timesyncd`,\n`ntp`, or `ntpdate`. Run `timedatectl` to verify the system clock is\nsynchronized. The output of `timedatectl` should contain the following status: \n\n System clock synchronized: yes\n\nEnsure Linux kernel `inotify` limits are at or higher than minimum\n------------------------------------------------------------------\n\nFor machines running Ubuntu 22.04, Linux kernel `inotify` limits\nfor maximum user instances and user watches must be greater than or equal to the\nfollowing:\n\n- `fs.inotify.max_user_instances`: `8192`\n- `fs.inotify.max_user_watches`: `524288`\n\nTo ensure these values are set correctly on your node machines:\n\n1. Check the value of `max_user_instances`:\n\n cat /proc/sys/fs/inotify/max_user_instances\n\n2. If needed, update `max_user_instances` to the minimum value:\n\n echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf\n\n3. Check the value of `max_user_watches`:\n\n cat /proc/sys/fs/inotify/max_user_watches\n\n4. If needed, update `max_user_watches` to the minimum value:\n\n echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf\n\n5. If you updated either value, reboot the machine."]]