SUMMARY

Gateway API๋Š” ํ‘œ์ค€์ ์ด๊ณ  ์„ ์–ธ์ ์ธ ๋ฐฉ์‹์œผ๋กœ TCP/UDP ๋ผ์šฐํŒ…์„ ์ง€์›ํ•˜๋ฉฐ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜์ง€๋งŒ, ์•„์ง ์ƒํƒœ๊ณ„ ์ง€์›์ด ๋ถ€์กฑํ•˜๋‹ค. ๋ฐ˜๋ฉด Ingress-nginx๋Š” ์„ฑ์ˆ™ํ•˜๊ณ  ์•ˆ์ •์ ์ด๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ Helm ์ฐจํŠธ์—์„œ ์ง€์›ํ•˜์ง€๋งŒ, TCP/UDP ์„ค์ •์ด ๋‹ค์†Œ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๐Ÿ’ก ๊ฐœ์š”

๊ธฐ์กด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์ธ๊ทธ๋ ˆ์Šค(Ingress)๋ฅผ ์‚ฌ์šฉํ•ด์™”๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ํ‘œ์ค€์œผ๋กœ ๊ฒŒ์ดํŠธ์›จ์ด API(Gateway API)๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ, ๋‘ ๊ธฐ์ˆ  ์‚ฌ์ด์˜ ์žฅ๋‹จ์ ์„ ๋น„๊ตํ•˜๊ณ  ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ• ์ง€ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” ingress-nginx์™€ Cilium Gateway API๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋‘ ๋ฐฉ์‹์˜ ํŠน์ง•์„ ๋น„๊ตํ•˜๊ณ , ์‚ฌ๋‚ด ํด๋Ÿฌ์Šคํ„ฐ์— ๋„์ž…ํ•œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•œ๋‹ค.

๐Ÿ“‹ ์„ ์ • ๋ฐฐ๊ฒฝ

๊ณผ๊ฑฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ๋‹น์—ฐํ•˜๊ฒŒ ingress-nginx๋ฅผ ํ‘œ์ค€์œผ๋กœ ๋„์ž…ํ–ˆ๋‹ค. ์‚ฌ์‹ค ingress-nginx๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์•„์ฃผ ํฐ ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋‹ค๋งŒ, TCP/UDP ๊ฐ™์€ L4 ํ”„๋กœํ† ์ฝœ์„ ๋…ธ์ถœํ•ด์•ผ ํ•  ๋•Œ ์•„์‰ฌ์šด ์ ์ด ์žˆ์—ˆ๋‹ค. ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ConfigMap์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์žฌ๊ธฐ๋™ํ•ด์•ผ ํ•˜๋Š” ๊ณผ์ •์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.

ํ•˜์ง€๋งŒ ์†”์งํžˆ ๋งํ•˜๋ฉด, ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์ ์ธ ์•„์‰ฌ์›€๋ณด๋‹ค๋Š” Gateway API๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์ด๋ผ๋Š” ์  ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๋งˆ์Œ์ด ๊ฐ€์žฅ ์ปธ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ํ˜ธ๊ธฐ์‹ฌ๊ณผ ํ‘œ์ค€์„ ๋”ฐ๋ผ๊ฐ€๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ์ด๋ฒˆ ๊ธฐ์ˆ  ๊ฒ€ํ† ์˜ ์ฃผ๋œ ๋™๊ธฐ์˜€๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Š ๋น„๊ต

๊ธฐ๋ŠฅIngress (ingress-nginx)Gateway API (Cilium)
ํ‘œ์ค€ ์—ฌ๋ถ€์‚ฌ์‹ค์ƒ ํ‘œ์ค€๊ณต์‹ ํ‘œ์ค€ (์ฐจ์„ธ๋Œ€)
๋ผ์šฐํŒ…HTTP/HTTPS ์ค‘์‹ฌHTTP, HTTPS, TCP, UDP, gRPC ๋“ฑ
์„ค์ • ๋ฐฉ์‹Annotation, ConfigMap์„ ์–ธ์  API (Gateway, HTTPRoute, TCPRoute ๋“ฑ)
TCP/UDPConfigMap ์ˆ˜์ • ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ ์žฌ๊ธฐ๋™ ํ•„์š”TCPRoute, UDPRoute ๋ฆฌ์†Œ์Šค๋กœ ์„ ์–ธ์  ๊ด€๋ฆฌ
์—ญํ•  ๋ถ„๋ฆฌ์–ด๋ ค์›€ (ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž์™€ ์•ฑ ๊ฐœ๋ฐœ์ž ๊ถŒํ•œ ํ˜ผ์žฌ)๋ช…ํ™•ํ•จ (Gateway, Route ๋ฆฌ์†Œ์Šค ๋ถ„๋ฆฌ)
์ƒํƒœ๊ณ„ ์ง€์›๋งค์šฐ ๋†’์Œ (๋Œ€๋ถ€๋ถ„์˜ Helm ์ฐจํŠธ ์ง€์›)์„ฑ์žฅ ์ค‘ (์•„์ง ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋งŽ์Œ)
๊ด€์ธก์„ฑ์ œํ•œ์ Cilium Hubble ์—ฐ๋™ ์‹œ L4-L7 ๊ฐ€์‹œ์„ฑ ํ™•๋ณด

โœ… ์„ ์ • ์‚ฌ์œ 

์‚ฌ๋‚ด ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” Cilium Gateway API๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” Gateway API๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์ด๋ผ๋Š” ์ ๊ณผ, TCPRoute์™€ UDPRoute๋ฅผ ํ†ตํ•ด L4 ํŠธ๋ž˜ํ”ฝ์„ ์„ ์–ธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŽธ๋ฆฌํ•จ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ๋˜ํ•œ, CNI๋กœ Cilium์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ์—, Gateway API๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด Hubble UI์—์„œ L7 ํŠธ๋ž˜ํ”ฝ๊นŒ์ง€ ๊ด€์ธกํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ๋„ ํฐ ์žฅ์ ์œผ๋กœ ๋‹ค๊ฐ€์™”๋‹ค. ํ˜„์žฌ๊นŒ์ง€ ํŠน๋ณ„ํ•œ ์ด์Šˆ ์—†์ด ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ์‹ค์ œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๊ธฐ์ˆ ์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ํ˜„์žฌ ์‹œ์ ์—์„œ๋Š” Ingress-nginx๋ฅผ ์„ ํƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ƒํƒœ๊ณ„ ์„ฑ์ˆ™๋„: ๋Œ€๋ถ€๋ถ„์˜ Helm ์ฐจํŠธ๊ฐ€ Ingress ๋ฆฌ์†Œ์Šค๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€๋งŒ, Gateway API๋Š” ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • ์šด์˜ ๊ฒฝํ—˜: ingress-nginx๋ฅผ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•ด์˜ค๋ฉด์„œ ํŠธ๋ž˜ํ”ฝ ์ œํ•œ, ํƒ€์ž„์•„์›ƒ ์„ค์ • ๋“ฑ ๋‹ค์–‘ํ•œ ์šด์˜ ๋…ธํ•˜์šฐ์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฒฝํ—˜์ด ์ถ•์ ๋˜์–ด ์žˆ๋‹ค.

๐Ÿ”— ์ฐธ๊ณ