eBPF(Extended Berkeley Packet Filter)
- 솔직히 잘 모르겠다.
우선은커널 내 가상머신
이라고 알고 있으며 bpf() syscall을 통해
UserSpace와 eBPF프로그램이 통신할 수 있다고 알아두자.- Kernel의 프로브나 이벤트에 연결하여 유영한 통계를 수집하고 데이터 구조에 결과를 저장할 수 있다.
DSR(Direct Server Return)
의 약자로 로드벨런서를 거치지 않고
서버 -> 클라이언트로 직접 전달할 수 있다.
DSR의 장점은 영상이나 음성 데이터를 스트리밍하는 경우 응답 속도의 이점이 크다는 장점이 있다, 혹은
실시간 응답이 중요한 어플리케이션
에서 잘 어울린다.
네트워크 트래픽 처리를
IPTABLES
대신eBPF
를 사용한다.
이를 통해 얻을 수 있는 내용은 다음과 같다.
- 외부 Client의 Source IP 보존
- DSR 적용 가능
기존의 방식은
IPTABLES
의 기능 중SNAT
되어
외부 클라이언트의 IP를 알 수 없다.
Calico eBPF를 사용하면 NodePort Type 사용시 다른 Node의 Pods로 전달 시 SNAT 되지않고 전달하여
외부 Client의 IP를 알 수 있다.
- Calico eBPF
DSR
설정 시 외부 Client의 IP는 보존되고,
return traffic
은해당 노드에서 바로 빠져나간다.