Nordix / Meridio

Facilitator of attraction and distribution of external traffic within Kubernetes via secondary networks
https://meridio.nordix.org
Apache License 2.0
46 stars 9 forks source link

gRPC probes instead of Exec probes #391

Open LionelJouin opened 1 year ago

LionelJouin commented 1 year ago

Is your feature request related to a problem? Please describe. Due to the ExecProbes, the userspaces program might be slower than expected. NFQLB in the stateless-lb might have some latency and performance issues.

We use Exec probes because the probes are exposed via GRPC, so we use this project for health checking: https://github.com/grpc-ecosystem/grpc-health-probe

Describe the solution you'd like Since Kubernetes 1.23, GRPC probes is a native feature, it can be enabled via the GRPCContainerProbe feature gate, and is already enabled from Kubernetes 1.24. We must replace all Exec probes by GRPC probes in all components for Kubernetes 1.24 deployment.

Describe alternatives you've considered /

Additional context /

LionelJouin commented 1 year ago

Benchmark to see if there is any improvement:

1. Deploy with 1 worker
2.a ping vip every 1 ms (-i 0.001) during 20 seconds (now during 5 minutes) (ping  -i 0.001  <VIP> -w 30)
2.b Running TCPdump on all interfaces in the stateless-lb (filter on ICMP) (tcpdump -l -i any 'icmp[0] == 0 || icmp[0] == 8')
3. Parsing the tcpdump output and compute the differences between In (from the gateway) and Out (towards the proxy) of a packet And check how much time a packet spends in the pod.