[Home-K8S] #22 FluxCD 계층과 분리 / 다중 클러스터 리소스 공유와 설정 분리
FluxCD - yaml 앞서 fluxcd 를 이용해서 helm chart 를 구성했습니다. 그 외에 일반적인 yaml
네트워크를 전공에서 배우기는 했지만, 제대로 된 과정을 사실 잘 모르고 있습니다. 하나하나 찾아가는 형식으로 배워나가려고 합니다. 일단 전체적인 처리 과정부터 세세하게 들어가 보도록 하겠습니다.
eBPF에 대해서 공부하려다가 시작하게 되었습니다. 7Layer에 대해서는 알고 있다고 생각하고 진행하겠습니다.
외부 네트워크는 궁금증이 생기거나 요청이 있을 시 진행하겠습니다.
NIC은 패킷을 읽고 데이터를 커널 공간에 저장합니다. 그리고 저장된 공간, 크기 등 메타데이터가 들어간 sk_buff가 생깁니다.

RX NIC
NIC에서 저장한 데이터는 L2 헤더부터 있는 데이터 입니다.
L2 -> L3 -> L4 를 통해서 사용자가 요청한 queue에 커널이 skb 리스트를 넣습니다.

커널에 있는 queue에서 유저 버퍼로 복사를 진행해야 합니다.
eBPF에 대해서 알기 위해 시작하였으니, eBPF에 대해서 정리해 봅니다.
| eBPF Program Type | Hook 위치 | 예시 역할 | 실행 시점 |
|---|---|---|---|
XDP (BPF_PROG_TYPE_XDP) |
NIC RX Ring 직후(skb 만들기 이전) | 초고속 필터·Redirect·LB | Netfilter·GRO보다 가장 먼저 |
tc cls/act (BPF_PROG_TYPE_SCHED_CLS/ACT) |
qdisc ingress / egress | 정책 라우팅·QoS·L4 LB | skb가 이미 존재, Netfilter 전 |
socket_filter (SO_ATTACH_BPF) |
소켓 수신 경로 | tcpdump 대용 캡처·DoS 차단 | demux 직후, 유저 read() 전에 |
| cgroup sendmsg/recvmsg | connect(), sendmsg() 등 |
L4-방화벽, per-cgroup 계량 | sys-call 경계 |
struct_ops (BPF_PROG_TYPE_STRUCT_OPS) |
커널 콜백 표 구조체 대체 | 커스텀 TCP CongCtrl, 스케줄러 | 커널 함수 내부 트램펄린 |
| kprobe/tracepoint/trampoline | 임의 커널 함수 | 세부 트레이싱·패치 | 함수 진입/탈출 |
Comments