Kernel Headers

The Tawon Agent requires Linux kernel headers. There are two options for installing kernel headers:

  • Install the kernel headers package on each machine you intend to run Tawon. This solution is relatively simple and makes it easy to upgrade the kernel.

  • Inject the kernel headers with a container image on Agent startup

Using a kernel header package

This solution puts the operations team in charge of the packages deployed, and can easily be updated with the installation of new kernels.

Depending on the distribution, kernel-headers package names vary.

On Ubuntu:

apt-get install linux-headers

On RHEL/CentOS compatible:

yum install kernel-headers kernel-devel

On PhotonOS compatible:

tdnf install linux-api-headers linux-devel
On PhotonOS, depending on your kernel flavor, you might need to install a different version of linux-dev (e.g. linux-esx-devel)
The kernel headers must match the exact version of the kernel you are running. To check the current kernel version, run`uname -r`. To install a specific kernel headers version, append the version to the package name: linux-headers-$(uname -r).
More often than not, the kernel headers files contain filesystem links to other files in other directories. Therefore, when passing the kernel headers to the Tawon docker container, ensure all the necessary directories are mounted. In the standard deployment, the host root directory is mounted (/) and will contain all headers needed.

Using a kernel header container image

We can create a container image with the kernel headers for your system as needed, and that container image loads the headers before the agent starts in your Kubernetes cluster.

In order to prepare the kernel headers image, we need to know your kernel version. On the machines you intend to deploy Tawon, run:

uname -r

And send us the output. We will prepare the image. Then, a quick change in the Helm chart is required to instruct the agent to load the headers.

We must repeat this process for any kernel update on your machines.