Usado para estender com segurança e eficiência os recursos do kernel sem a necessidade de alterar o código fonte do kernel ou carregar os módulos do kernel.

eBPF é uma tecnologia revolucionária com origem no kernel do Linux que pode executar programas em área restrita em um kernel do sistema operacional. Ele é usado para estender com segurança e eficiência os recursos do kernel sem a necessidade de alterar o código fonte do kernel ou carregar os módulos do kernel.

Sistema operacional sempre foi um local ideal para implementar observabilidade, segurança e funcionalidade de rede devido à capacidade privilegiada do kernel de supervisionar e controlar todo o sistema. Ao mesmo tempo, o kernel de um sistema operacional é difícil de evoluir devido ao seu papel central e alta exigência de estabilidade e segurança.

https://cdn.hashnode.com/res/hashnode/image/upload/v1673046932173/ca016b2a-1d3e-4f50-879b-395d4bbe9d05.png?auto=compress,format&format=webp

Como você pode ver no diagrama, você precisa de um programa BPF em execução no Kernel e um aplicativo de espaço do usuário em execução no espaço do usuário que interaja com o programa BPF (para coletar dados, por exemplo).

Desenvolvendo eBPF com BumbleBee

Construir, executar e distribuir programas eBPF através de imagens do Docker.

Permite que você se concentre em codificar o código eBPF, enquanto cuida dos componentes do espaço do usuário, assim expondo automaticamente seus dados como métricas ou logs.

Instale o bee CLI em plataforma Linux, pois se você usa Mac, precisará de um ambiente virtualizado para isso:

curl -sL <https://run.solo.io/bee/install> | sh

Com a sequência dos comandos acima, você terá o seguinte retorno.

<string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
Attempting to download bee version v0.0.14
Downloading bee-linux-amd64...
Download complete!, validating checksum...
Checksum valid.
bee was successfully installed 🎉

Add the bumblebee CLI to your path with:
  export PATH=$HOME/.bumblebee/bin:$PATH

Now run:
  bee init     # Initialize simple eBPF program to run with bee
Please see visit the bumblebee website for more info:  <https://github.com/solo-io/bumblebee>

Agora execute o export para acessar o executável do bee:

export PATH=$HOME/.bumblebee/bin:$PATH

Agora vamos criar um esqueleto para nosso programa eBPF:

bee init

A primeira opção com a qual você será confrontado é a linguagem com a qual desenvolverá seu probe.

Atualmente, apenas C é suportado, mas o suporte para Rust também está planejado.

Use the arrow keys to navigate: ↓ ↑ → ←
? What language do you wish to use for the filter:
  ▸ C