1편에서 VPN의 split tunnel을 정리했다. 사설 대역만 터널로 보내고 나머지는 로컬 인터넷으로 바로 내보내는 구조였다.k8s pod 네트워크에서도 같은 일이 일어난다. pod가 다른 노드의 pod로 가는 트래픽은 overlay 터널로, 클러스터 밖으로 나가는 트래픽은 노드의 로컬 인터페이스로 그냥 내보낸다. Cilium 기준으로 정리해보자.k8s 클러스터VPN과 다른 점은 대역을 사람이 적지 않는다는 것이다. pod는 수시로 생기고 사라지니, 각 노드의 CNI agent가 k8s API를 watch하면서 route와 BPF map을 실시간으로 채운다.cluster-pool 10.0.0.0/8, 노드당 /24node-a node IP 172.16.1.21 pod CIDR 10.0...
외부에서 사설망(172.16.0.0/16)에 WireGuard로 붙어 쓰고 있었는데, 기존엔 모든 트래픽을 모두 터널로 보내고 있어서 지연이 발생했다.이를 해결하기 위한 사설 대역만 터널로 보내는 split tunnel, 그리고 DNS까지 나누는 split DNS를 정리해보자.VPN은 기본적으로 전부 터널로 보낸다밖에서 사설망에 붙을 때는 보통 IPsec이나 WireGuard로 IP 패킷을 한 번 더 감싸서(encap) 보낸다.flowchart LR C(["`**사용자** 10.8.0.3`"]) -->|"UDP 51820\n(encap)"| GW["`**로컬 인터넷** NAT`"] GW -->|인터넷| S["`**WireGuard 서버** decap`"] S --> LAN..
배경기존에 집에 PC 두 대로 on-premise 환경에서 k8s 클러스터를 구축해두었다.추가로 리소스가 필요한 경우가 종종 있었는데, 그때마다 서버를 구매하기엔 부담돼서 public cloud 환경의 server를 필요할 때마다 증설할 수 있는 방법을 찾아보기로 했다.Cloud로 전부 안 옮기나?사실 모든 리소스를 public cloud로 옮기는 게 가장 편하긴 하다. 전력, HW fault 같은 이슈 관리를 cloud에게 맡기면 편하다.다만 그렇기에 기존 인프라 리소스를 모두 대체하기엔 비용이 너무 비싸다.기존 home infraStorage -> block storage, object storagePC 2ea -> Server instancePublic IP -> Elastic IP그래서 기존 인프..
이전 포스트에서 정리한 XDP, DSR/IPIP, RSS, Session Table, Maglev가 실제로 어떻게 구현되는지 Katran 코드를 까보면서 확인해보자.Katran Overviewflowchart TB subgraph CP["Control Plane (user space)"] direction LR GRPC["`**gRPC server** VIP/real 추가·삭제`"] --> LIB["`**KatranLb (C++)** 설정 → map 반영 Maglev ring 계산`"] end subgraph DP["Data Plane (kernel, XDP)"] BAL["`**balancer_kern.c** ..
- Total
- Today
- Yesterday
- C
- 웹IDE
- 뿌요뿌요 테트리스
- GPT2
- 시간 초과
- react
- Python
- ttyd
- 토이프로젝트
- 정보보호병
- 코딩
- pvm
- os
- codeanywhere
- Deep Learning
- HNSW
- pintos
- FastAPI
- 프로젝트
- Web
- 분할 정복
- io blocking
- 백준
- vector search
- 싸지방
- letsencrypt
- 구름ide
- 리눅스
- 사이버정보지식방
- 뿌요뿌요
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
