지난 포스트에서 k8s설치시 CNI는 cilium을 사용하였으나 이게 어떻게 동작하는지는 알아보지 않았다.
무지성으로 설치했던 업보 청산을 위해서 공식문서에서 개념부분만 간단하게 읽어봤다.
아래 내용은 전부 cilium 공식문서에서 가져온 내용으로 자세한, 정확한 내용은 공식문서를 참고해주시면 감사하겠다.
linux kernel에서 작동하는 eBPF 사용. 그렇기 때문에 네트워크 보안정책을 application container에 변경 없이 커널에서 적용
iptables을 사용한 방식: IP주소, 포트를 사용하여 필터링해왔음
Cilium의 eBPF는 service / pod / container identity 기반으로 필터링
layer 3 network에서 컨테이너 네트워킹 해주며 멀티노드에서 overlay, native routing 2가지형태를 지원함
같은 Labels을 가지고 있다면 다른 노드에 배포되어도 같은 container identity를 가짐
https://docs.cilium.io/en/stable/concepts/terminology/#identity-management-in-the-cluster
https://docs.cilium.io/en/stable/concepts/overview/#data-store
https://docs.cilium.io/en/stable/concepts/networking/routing/#requirements-on-the-network
https://docs.cilium.io/en/stable/concepts/networking/routing/#native-routing
https://docs.cilium.io/en/stable/concepts/networking/ipam/cluster-pool/
ps. 음 점점 글이 안읽힌다... eBPF Datapath, Kubernetes Integration 부분은 다음에 읽어보겠다..
https://docs.cilium.io/en/stable/concepts/ebpf/
https://docs.cilium.io/en/stable/concepts/kubernetes/