Install Kerno Locally

This section guides you through setting up Kerno on a local Kubernetes cluster

Installing Kerno locally is a quick way to experience eBPF-powered observability in your Kubernetes cluster. In just a few steps, you’ll be collecting invaluable insights into your workloads and cluster behavior without complex configurations.

Local installations do not include the Kerno dashboard, but we’re actively working on it.

Prerequisites

  1. Kind, minikube, or k3d installed on your machine.

  2. A local Kubernetes cluster up and tunning

  3. The kubectl CLI tool installed and configured to access your cluster.

  4. Docker installed locally to run the installer image.

If you are using minikube please execute this command when creating the cluster: minikube start --embed-certs

Installing Kerno

Ensure your kubectl context is set to the cluster where you want to install Kerno:

kubectl config use-context <kubernetes-context>

Run the Kerno installer via Docker, mounting your local ~/.kube/config:

docker run -it --pull always --network host \
  -e ENVIRONMENT=local \
  -v ~/.kube/config:/root/.kube/config \
  public.ecr.aws/fyck.io/installer:main

The installation automatically creates the necessary deployments and daemon sets in your cluster.

Verifying the Installation

Kerno installs the following Kubernetes resources in the kerno namespace:

  • Nanobe (Deployment)

  • Preon (DaemonSet)

  • Vector (DaemonSet)

You can learn more about Kerno's architecture here.

To verify that these resources are running correctly, run:

kubectl get pods -n kerno

Ensure that all pods have a Running or Completed status. If any pods are in a CrashLoopBackOff or Error state, check their logs for more details.

After the installation is completed, the installer will output a unique Kerno key (K4_KEY). This key identifies your local installation.

Important: For any subsequent operations (updates or uninstalls), you must provide the same K4_KEY. Not using or using an incorrect key can result in unexpected behavior.

Exploring the Data

To inspect the data Kerno collects, replace <pod-name> with the name of a running nanobe pod:

kubectl logs <pod-name> -n kerno

Updating Kerno

To update Kerno with the latest release, rerun the installer command but include your K4_KEY:

kubectl config use-context <kubernetes-context>
docker run -it --pull always --network host \
  -e ENVIRONMENT=local \
  -e K4_KEY=<K4_KEY> \
  -v ~/.kube/config:/root/.kube/config \
  public.ecr.aws/fyck.io/installer:main

Uninstalling Kerno

If you need to remove Kerno and its components entirely from your cluster, set the UNINSTALL environment variable to true, along with your K4_KEY:

kubectl config use-context <kubernetes-context>
docker run -it --pull always --network host \
  -e ENVIRONMENT=local \
  -e K4_KEY=<K4_KEY> \
  -e UNINSTALL=true \
  -v ~/.kube/config:/root/.kube/config \
  public.ecr.aws/fyck.io/installer:main

If you encounter issues or have questions, message us on Slack, and we’ll gladly help.

Last updated