์ฟ ๋ฒ๋คํฐ์ค ์์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ธ๋ถ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถ ๊ฐ๋ฅํ๋ค.
๊ทธ์ค์์ 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/