์ฟ ๋ฒ„๋„คํ‹ฐ์Šค

์™ธ๋ถ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ธ์ถœ์‹œํ‚ค์ž

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์™ธ๋ถ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ธ์ถœ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ์ค‘์—์„œ external ip ๋ฅผ ์ด์šฉํ•ด์„œ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๊ฒƒ์˜ ์žฅ ๋‹จ์ ์„ ํ•™์Šตํ•˜์—ฌ ๋ณด์ž.

 

 

What is Service?

pod ๋“ค์ด ์…์„ฑ๋˜๊ฒŒ ๋˜๋ฉด ๊ฐ๊ฐ์€ ip ๊ฐ€ ๋žœ๋คํ•˜๊ฒŒ ์ƒ์„ฑ๋œ๋‹ค. ์ด๋Š” ํŒŒ๋“œ๋ณ„๋กœ ๊ฐ๊ฐ ๊ฐ€์ง€๋ฉฐ ํŒŒ๋“œ๊ฐ€ restart ํ• ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌํ•˜์—ฌ ์ด๋“ค์˜ ip ๋ฅผ ๋ฌถ์–ด์ฃผ๊ณ  ์ด๊ฒƒ๋“ค์—๊ฒŒ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” '๋ˆ„๊ตฐ๊ฐ€'๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋ฌ๋‹ค.

๊ทธ ์—ญํ• ์„ ์„œ๋น„์Šค๊ฐ€ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. service ๋Š” ์ง€์ •๋œ ip ๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊ณ ์œ ํ•œ DNS ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

Service  Type

 

1) cluster ip

 

- ๋””ํดํŠธ๋กœ ์„ค์ •์œผ๋กœ ๋”ฐ๋กœ service type ์„ ์„ค์ •์•ˆํ•ด์ฃผ๋ฉด cluster ip ํƒ€์ž…์œผ๋กœ ์„ค์ •๋œ๋‹ค. ์„œ๋น„์Šค ๋‚ด๋ถ€์— ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ ip๋ฅผ ํ• ๋‹นํ•ด ์ค€๋‹ค. ์ด๊ฒƒ์€ ์™ธ๋ถ€์—์„œ ์ ‘์†์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ip ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค proxy ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ 

 

 

2) Node port

 

- NAT ๊ฐ€ ์ด์šฉ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ๊ฐ๊ฐ ์„ ํƒ๋œ ๋…ธ๋“œ๋“ค์˜ ๋™์ผํ•œ ํฌํŠธ์— ์„œ๋น„์Šค๋ฅผ ๋…ธ์ถœ์‹œ์ผœ ์ค€๋‹ค. <NodeIP>

๋…ธ๋“œ ํฌํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์„œ๋น„์Šค๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. Cluster ip ์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์ด๋‹ค.  

 

 

3) LoadBalancer

 

- External ip ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋กœ๋“œ๋ฐธ๋žœ์„œ๋ฅผ ํ• ๋‹นํ•œ๋‹ค. NodePort ์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์ด๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. 

์ด๋Ÿฐ LoadBalancer ํƒ€์ž…์˜ ์„œ๋น„์Šค๋Š”, ์„œ๋น„์Šค 1๊ฐœ๋‹น LoadBalancer ๊ฐ€ 1๊ฐœ์”ฉ ํ•„์š”ํ•˜๋‹ค. ์„œ๋น„์Šค ๋งˆ๋‹ค ip ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์€ ์„œ๋น„์Šค ๋งˆ๋‹ค loadbalancer ์žฅ๋น„๋ฅผ ๊ฐ–๋Š๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ณ ,  ๋งŽ์€ ๋น„์šฉ์„ ๋“ค๊ฒŒ ํ•˜๋Š”๋ฐ ์ด์˜ ํ•ด๊ฒฐ์ฑ…์ด ingress ๊ฐ€ ๋œ๋‹ค.

 

 

What is Ingress

ํ•˜๋‚˜์˜ ip ๋กœ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์—†๋Š” LB ์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด Ingress ์ด๋‹ค.

์ธ๊ทธ๋ ˆ์Šค๋ž€ ์„œ๋น„์Šค๋“ค์„ ๋ฌถ๋Š” ์„œ๋น„์Šค๋“ค์˜ ์ƒ์œ„ ๊ฐ์ฒด ์ด๋‹ค.

 

ingress ๋Š” service ์™€ ๋‹ค๋ฅด๊ฒŒ ip ๊ธฐ๋ฐ˜์ด ์•„๋‹ˆ๋ผ url ๊ธฐ๋ฐ˜์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์ค€๋‹ค. ์–ด๋– ํ•œ url ์ด ์˜ค๋ฉด ๋ฏธ๋ฆฌ ์ด url ๊ณผ ๋งคํ•‘๋œ service ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. 

 

 

 

 

ref

https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/expose/expose-intro/

 

https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0