Prerequisites
- Use kernel
5.7
or a higher version. Check your version withuname -r
. - Activate
cgroup2
in your system. Check the status withmount | grep cgroup2
.
Installation
Merbridge can be installed on Istio and Linkerd2 only.
Install on Istio
Apply the following command to install Merbridge:
kubectl apply -f https://raw.githubusercontent.com/merbridge/merbridge/main/deploy/all-in-one.yaml
Install on Linkerd2
Apply the following command to install Merbridge:
kubectl apply -f https://raw.githubusercontent.com/merbridge/merbridge/main/deploy/all-in-one-linkerd.yaml
Install on Kuma
Apply the following command to install Merbridge:
kubectl apply -f https://raw.githubusercontent.com/merbridge/merbridge/main/deploy/all-in-one-kuma.yaml
Verification
Verify installation
Before you start this verification, make sure all Pods relevant to Merbridge are running well. You can check Pod status in Istio with the following command:
kubectl -n istio-system get pods
If all these Pods are Running
, it means Merbridge is successfully installed.
Verify connection
Use the following methods to check the connectivity of Merbridge:
Install sleep and helloworld and wait for a full start
kubectl label ns default istio-injection=enabled
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/sleep/sleep.yaml
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld.yaml
Conduct curl test
kubectl exec $(kubectl get po -l app=sleep -o=jsonpath='{..metadata.name}') -c sleep -- curl -s -v helloworld:5000/hello
If you see words like * Connected to helloworld (127.128.0.1) port 5000 (#0)
in the output, it means Merbridge has managed to replace iptables with eBPF for traffic forwarding.