loxilb - How to build/run
1. Build from code and run (difficult)
- Install GoLang > v1.17
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz && sudo tar -xzf go1.22.0.linux-amd64.tar.gz --directory /usr/local/
export PATH="${PATH}:/usr/local/go/bin"
wget https://go.dev/dl/go1.22.0.linux-arm64.tar.gz && sudo tar -xzf go1.22.0.linux-arm64.tar.gz --directory /usr/local/
export PATH="${PATH}:/usr/local/go/bin"
-
Install standard packages
arm64 users, use the command below.sudo apt install -y clang llvm libelf-dev gcc-multilib libpcap-dev vim net-tools linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils wget unzip build-essential bison flex iproute2 curl
apt-get install -y clang llvm libelf-dev libpcap-dev vim net-tools ca-certificates elfutils dwarves git libbsd-dev bridge-utils wget unzip build-essential bison flex sudo iproute2 pkg-config tcpdump iputils-ping curl bash-completion
-
Install loxilb eBPF loader tools
curl -sfL https://github.com/loxilb-io/tools/raw/main/loader/install.sh | sh -
- Install Openssl 3
wget https://github.com/openssl/openssl/releases/download/openssl-3.3.1/openssl-3.3.1.tar.gz tar -xvzf openssl-3.3.1.tar.gz cd openssl-3.3.1 ./Configure enable-ktls '-Wl,-rpath,$(LIBRPATH)' --prefix=/usr/local/build make -j$(nproc) sudo make install_dev install_modules cd - sudo cp -a /usr/local/build/include/openssl /usr/include/ sudo bash -c "if [ -d /usr/local/build/lib64 ] ; then mv /usr/local/build/lib64 /usr/local/build/lib; fi" sudo cp -fr /usr/local/build/lib/* /usr/lib/ sudo ldconfig rm -fr openssl-3.3.1*
- Build and run loxilb
git clone --recurse-submodules https://github.com/loxilb-io/loxilb.git cd loxilb ./loxilb-ebpf/utils/mkllb_bpffs.sh make sudo ./loxilb
- Build and use loxicmd
git clone https://github.com/loxilb-io/loxicmd.git
cd loxicmd
go get .
make
sudo cp -f loxicmd /usr/local/sbin/
2. Build and run using docker (easy)
Build the docker image
git clone --recurse-submodules https://github.com/loxilb-io/loxilb.git
cd loxilb
make docker
This would create the docker image ghcr.io/loxilb-io/loxilb:latest
locally. One can then run loxilb in standalone mode by following guide here
3. Running in Kubernetes
- For running in K8s environment, kindly follow kube-loxilb guide