[k8s] EgressGateway๊ณผ NAT

[์›๋ณธ ๋งํฌ]

๊ณต์ธ IP๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ธ ํ™˜๊ฒฝ์—์„œ ์ปจํ…Œ์ด๋„ˆ์˜ ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ํŠน์ • IP๋กœ ๊ณ ์ •ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด์„œ NAT ํŒจํ„ด ๋ง์ด๋‹ค.
์„œ๋“œํŒŒํ‹ฐ์™€์˜ ์‹ ๋ขฐ๊ด€๊ณ„๋ฅผ ์œ„ํ•ด์„œ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ํฌ๋กค๋ง ๊ฐ™์€ ์–ด๋‘ ์˜ ๊ธฐ์ˆ ์„ ์œ„ํ•ด์„œ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•„๋ฌดํŠผ ์ค‘์š”ํ•œ๊ฑด ์ด๋Ÿฐ ํ•„์š”์„ฑ์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ฟ ๋ฒ„์—์„œ pod๋“ค์ด ๋ฐ”๊นฅ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•  ๋•Œ๋Š”, ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ทธ๋ƒฅ ํ•ด๋‹น ๋…ธ๋“œ์˜ ๊ธฐ๋ณธ ๋ผ์šฐํŒ…์„ ๋”ฐ๋ผ์„œ ์•”๋ฌต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋“œํŒŒํ‹ฐ ํŒจํ‚ค์ง€๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด Egress ํ†ต์‹  ๊ฒฝ๋กœ๋ฅผ ์˜๋„๋Œ€๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์‹ค ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ฝ”์–ด ์ž์ฒด๋Š” ์ด Egress์— ๋Œ€ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ž€ ๊ฒƒ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹ค๋ฃจ๋Š” Egress๋Š” ์„œ๋“œํŒŒํ‹ฐ๋“ค์—์„œ ์•”๋ฌต์ ์œผ๋กœ ํ•ฉ์˜๋œ ๋ฆฌ์†Œ์Šค ํŒจํ„ด์„ ๋งํ•œ๋‹ค.




์„ ํƒ์ง€

Egress Gateway ํŒจํ„ด์„ ์ง€์›ํ•˜๋Š” ๊ตฌํ˜„์ฒด๋กœ๋Š” cillium, istio, antrea, calico(enterprise) ๋“ฑ์ด ์žˆ๋‹ค.
calico๋Š” ์ง€์›์„ ํ•˜๊ธด ํ•˜๋Š”๋ฐ, ์˜คํ”ˆ์†Œ์Šค ๋ฒ„์ „์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

istio๋Š” L3/L4 NAT์ด ์•„๋‹ˆ๋ผ envoy๋กœ ํ†ต๊ณผ์‹œํ‚ค๋Š” L4/L7 ๋ฉ”์‹œ ๊ฒฝ๋กœ์— ๊ฐ€๊นŒ์›Œ์„œ NAT ์‚ฌ์šฉํŒจํ„ด๊ณผ ์•„์ฃผ ์ž˜ ๋งž์ง€๋Š” ์•Š๋Š”๋‹ค. ์„ฑ๋Šฅ ์†์‹ค๋„ ์žˆ๊ณ , ์• ์ดˆ์— ์ด๋Ÿฐ ์šฉ๋„๊ฐ€ ์•„๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด ์ค‘์—์„œ๋Š” cillium์„ ๊ฐ€์žฅ ๊ถŒ์žฅํ•œ๋‹ค. ํ™˜๊ฒฝ๋„ ๋ฌด๋ฅด์ต์—ˆ๊ณ , ์„ฑ๋Šฅ์ด๋‚˜ ์•ˆ์ •์„ฑ๋„ ๊ฐ€์žฅ ๊ดœ์ฐฎ์€ ํŽธ์— ์†ํ•œ๋‹ค.
์—ฌ๊ธฐ์„œ๋„ cillium์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค.




๋™์ž‘ ์›๋ฆฌ์™€ tradeoff ์ง€์ 

Egress IP ์น˜ํ™˜์€ ๋ณดํ†ต SNAT์„ ํ†ตํ•ด ๋™์ž‘ํ•œ๋‹ค.

Egress๊ฐ€ ์ง€์ •๋œ Pod์—์„œ ์š”์ฒญ์„ ํ•˜๋‚˜ ๋‚ ๋ฆฌ๋ฉด, cillium์ด ๊ทธ ์š”์ฒญ์„ Egress Gateway๋กœ ๋„˜๊ธด๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์›ํ•˜๋Š” WAN IP์˜ Egress์šฉ LAN IP๋กœ SNAT ์น˜ํ™˜์„ ํ•˜๊ณ , ๊ทธ ์ƒํƒœ๋กœ ๋ผ์šฐํ„ฐ๋กœ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ผ์šฐํ„ฐ๊ฐ€ ๊ฑฐ๊ธฐ์— ๋งค์นญ๋˜๋Š” WAN -> ๊ณต์ธIP๋กœ ๋ฐ”๊ฟ”์„œ ๋‚ด๋ณด๋‚ด์ค€๋‹ค.

์—ฌ๊ธฐ์„œ Egress Gateway๋Š” ํŠน์ • ๋…ธ๋“œ ํ•˜๋‚˜๋ฅผ ๊ณ ์ •ํ•ด์„œ ์“ธ ์ˆ˜๋„ ์žˆ๊ณ , 2๋Œ€ ์ด์ƒ. ํ˜น์€ ๋ชจ๋“  ์›Œ์ปค๋…ธ๋“œ๋ฅผ ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทผ๋ฐ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ๋„ ์šด์˜๋ถ€๋‹ด์ด ํฌ๋‹ค. ๋…ธ๋“œ๋งˆ๋‹ค ๊ณ ์œ ํ•œ Egress LAN<>WAN ๋งคํ•‘์„ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฐ๊ฐ์˜ LAN์„ ์ „๋ถ€ ์Šค์ผ€์ค„๋งํ•ด๊ฐ€๋ฉฐ ์จ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์ธ ๊ทœ๋ชจ์—์„œ๋Š” Egress Gateway๋ฅผ 2๊ฐœ ์ •๋„๋งŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ-๊ฐ€์šฉ์„ฑ-์šด์˜ ํŽธ์˜์„ฑ ์ธก๋ฉด์—์„œ ๊ดœ์ฐฎ์€ ํŽธ์ด๋‹ค.



์ฐธ์กฐ
https://kubernetes.io/ko/docs/concepts/services-networking/network-policies/
https://m.blog.naver.com/sssang97/224176429255
https://cilium.io/use-cases/egress-gateway/
https://istio.io/latest/docs/tasks/traffic-management/egress/egress-gateway/
https://tech.kakaopay.com/post/cilium-egress-gateway/

Search