kubernetes_service
Last updated
Last updated
์๋น์ค
Pod ์งํฉ๊ณผ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ ํ๋ API ๊ฐ์ฒด
์ฟ ๋ฒ๋คํฐ์ค์ ์๋น์ค๋ ๋์ผํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๋ ๊ทธ๋ฃน์ ์ง์์ ์ธ ๋จ์ผ ์ ์ ์ ๋ง๋ค๋ ค๊ณ ํ ๋ ์์ฑํ๋ ๋ฆฌ์์ค๋ก ๊ฐ ์๋น์ค๋ ์๋น์ค๊ฐ ์กด์ฌํ๋ ๋์ ์ ๋ ๋ฐ๋์ง ์๋ IP ์ฃผ์์ ํฌํธ๊ฐ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๋ ํด๋น IP์ ํฌํธ๋ก ์ ์ํ ๋ค์ ํด๋น ์๋น์ค๋ฅผ ์ง์ํ๋ ํ๋ ์ค ํ๋๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
Service์ Cluster IP๋ฅผ ํตํด ์ ๋์ ์ผ๋ก ์์ฑ๋๊ณ ์ฌ๋ผ์ง๋ Pod์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
ClusterIP , NodePort , LoadBalancer ํ์ ์ ๊ณตํ๋ฉฐ ๊ธฐ๋ณธ ์ต์ ์ ํด๋ฌ์คํฐ ๋ด๋ถ์์๋ง ์ฌ์ฉํ ์ ์๋ Cluster IP์ ๋๋ค.
์ฌ๋ฌ Pod๋ฅผ ๋ฌถ์ด Healthyํ Pod๋ก Traffic ๋ผ์ฐํ ํ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ ์ ๊ณตํฉ๋๋ค.
ํด๋ฌ์คํฐ์ Service CIDR ์ค์์ ์ง์ ๋ IP๋ก ์์ฑ ๊ฐ๋ฅํฉ๋๋ค.
์๋น์ค ์์ฑ
kubectl expose๋ก ์๋น์ค ์์ฑ
expose ๋ช ๋ น์ด๋ ๋ ํ๋ฆฌ์ผ์ด์ ์ปจํธ๋กค๋ฌ์์ ์ฌ์ฉ๋ ๊ฒ๊ณผ ๋์ผํ ํ๋ ์ ๋ ํฐ๋ฅผ ์ฌ์ฉํด ์๋น์ค ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ณ ๋ชจ๋ ํ๋๋ฅผ ๋จ์ผ IP ์ฃผ์์ ํฌํธ๋ก ๋ ธ์ถํฉ๋๋ค.
์คํ ์ค์ธ ์ปจํ ์ด๋์ ์๊ฒฉ์ผ๋ก ๋ช ๋ น์ด ์คํ
kubectl exec ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ํ๋์ ์ปจํ ์ด๋ ๋ด์์ ์๊ฒฉ์ผ๋ก ์์์ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ปจํ ์ด๋์ ๋ด์ฉ, ์ํ, ํ๊ฒฝ์ ๊ฒ์ฌํ ๋ ์ ์ฉํฉ๋๋ค.
kubectl exec {k get pods์ ํ๋} -- curl -s {http://10.111.249.153 - k get svc์ ํด๋ฌ์คํฐ IP}
๋ช ๋ น์ด์ ๋๋ธ ๋์(--)๋ kubectl ๋ช ๋ น์ค ์ต์ ์ ๋์ ์๋ฏธํ๋ฉฐ ๋๋ธ ๋์ ๋ค์ ๋ชจ๋ ๊ฒ์ ํ๋ ๋ด์์ ์คํ๋ผ์ผ ํ๋ ๋ช ๋ น์ด์ ๋๋ค.
ํด๋ฌ์คํฐ ์ธ๋ถ์ ์๋ ์๋น์ค ์ฐ๊ฒฐ
์๋น์ค ์๋ํฌ์ธํธ
์๋น์ค๋ ํ๋์ ์ง์ ์ฐ๊ฒฐ(link)๋์ง ์์ต๋๋ค. ๋์ ์๋ํฌ์ธํธ ๋ฆฌ์์ค๊ฐ ๊ทธ ์ฌ์ด์ ์์ต๋๋ค.
์๋ํฌ์ธํธ ๋ฆฌ์์ค๋ ์๋น์ค๋ก ๋ ธ์ถ๋๋ ํ๋์ IP ์ฃผ์์ ํฌํธ ๋ชฉ๋ก์ ๋๋ค.
์ธ๋ถ ์๋น์ค๋ฅผ ์ํ ๋ณ์นญ ์์ฑ
ExternalName ์๋น์ค ์์ฑ
์ธ๋ถ ์๋น์ค์ ๋ณ์นญ์ผ๋ก ์ฌ์ฉ๋๋ ์๋น์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ์ ํ(type) ํ๋๋ฅผ ExternalName์ผ๋ก ์ค์ ํด ์๋น์ค ๋ฆฌ์์ค๋ฅผ ๋ง๋ฌ
์ธ๋ถ ํด๋ผ์ด์ธํธ์ ์๋น์ค ๋ ธ์ถ
์ธ๋ถ์์ ์๋น์ค๋ฅผ ์ก์ธ์คํ ์ ์๋ ๋ฐฉ๋ฒ
๋ ธ๋ํฌํธ๋ก ์๋น์ค ์ ํ ์ค์ : ๋ ธ๋ํฌํธ ์๋น์ค์ ๊ฒฝ์ฐ ๊ฐ ํด๋ฌ์คํฐ ๋ ธ๋๋ ๋ ธ๋ ์์ฒด์์ ํฌํธ๋ฅผ ๊ฒฐ๊ณ ํด๋น ํฌํธ๋ก ์์ ๋ ํธ๋ํฝ์ ์๋น์ค๋ก ์ ๋ฌํฉ๋๋ค. ์ด ์๋น์ค๋ ๋ด๋ถ ํด๋ฌ์คํฐ IP์ ํฌํธ๋ก ์ก์ธ์คํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ ธ๋์ ์ ์ฉ ํฌํธ๋ก๋ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์๋น์ค ์ ํ์ ๋ ธ๋ํฌํธ ์ ํ์ ํ์ฅ์ธ ๋ก๋๋ฐธ๋ฐ์๋ก ์ค์ : ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์คํ ์ค์ธ ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ํ๋ก๋น์ ๋๋ ์ ์ฉ ๋ก๋๋ฐธ๋ฐ์๋ก ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ก๋๋ฐธ๋ฐ์๋ ํธ๋ํฝ์ ๋ชจ๋ ๋ ธ๋์ ๋ ธ๋ํฌํธ๋ก ์ ๋ฌํ๋ฉฐ ํด๋ผ์ด์ธํธ๋ ๋ก๋๋ฐธ๋ฐ์์ IP๋ก ์๋น์ค์ ์ก์ธ์คํฉ๋๋ค.
๋จ์ผ IP ์ฃผ์๋ก ์ฌ๋ฌ ์๋น์ค๋ฅผ ๋ ธ์ถํ๋ ์ธ๊ทธ๋ ์ค ๋ฆฌ์์ค ๋ง๋ค๊ธฐ : HTTP ๋ ๋ฒจ์์ ์๋ํ๋ฏ๋ก 4๊ณ์ธต ์๋น์ค๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค
๋ ธ๋ํฌํธ ์๋น์ค ์ฌ์ฉ
๋ ธ๋ํฌํธ ์๋น์ค๋ฅผ ๋ง๋ค๋ฉด ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ชจ๋ ๋ ธ๋์ ํน์ ํฌํธ๋ฅผ ํ ๋นํ๊ณ (๋ชจ๋ ๋ ธ๋์์ ๋์ผํ ํฌํธ ๋ฒํธ๊ฐ ์ฌ์ฉ๋จ) ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ํ๋๋ก ๋ค์ด์ค๋ ์ฐ๊ฒฐ์ ์ ๋ฌํฉ๋๋ค.
์ผ๋ฐ ์๋น์ค(์ค์ ์ ํ์ ClusterIP)์ ์ ์ฌํ์ง๋ง ์๋น์ค์ ๋ด๋ถ ํด๋ฌ์คํฐ IP๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ ธ๋์ IP์ ํ ๋น๋ ๋ ธ๋ํฌํธ๋ก ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
๋ ธ๋ํฌํธ ์๋น์ค ํ์ธ
EXTERNAL-IP์ ๋ผ๊ณ ํ์๋ผ ์๊ณ ํด๋ฌ์คํฐ ๋ ธ๋์ IP ์ฃผ์๋ก ์๋น์ค์ ์ก์ธ์คํ ์ ์์์ ๋ํ๋
์ธ๋ถ ๋ก๋๋ฐธ๋ฐ์๋ก ์๋น์ค ๋ ธ์ถ
ํด๋ผ์ฐ๋ ๊ณต๊ธ์์์ ์คํ๋๋ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ์๋์ผ๋ก ํ๋ก๋น์ ๋ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ก๋๋ฐธ๋ฐ์๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์ค ๊ฐ๋ฅํ ๊ณ ์ ํ IP์ฃผ์๋ฅผ ๊ฐ์ง๋ฉฐ ๋ชจ๋ ์ฐ๊ฒฐ์ ์๋น์ค๋ก ์ ๋ฌํฉ๋๋ค. ๋ก๋๋ฐธ๋ฐ์์ IP ์ฃผ์๋ก ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ธ๊ทธ๋ ์ค ๋ฆฌ์์ค๋ก ์๋น์ค ์ธ๋ถ ๋ ธ์ถ
์ธ๊ทธ๋ ์ค๊ฐ ํ์ํ ์ด์
๋ก๋๋ฐธ๋ฐ์ ์๋น์ค๋ ์์ ์ ๊ณต์ฉ IP ์ฃผ์๋ฅผ ๊ฐ์ง ๋ก๋๋ฐธ๋ฐ์๊ฐ ํ์ํ์ง๋ง, ์ธ๊ทธ๋ ์ค๋ ํ IP ์ฃผ์๋ก ์์ญ ๊ฐ์ ์๋น์ค์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ์ง์ํด์ค๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ HTTP ์์ฒญ์ ์ธ๊ทธ๋ ์ค์ ๋ณด๋ผ ๋, ์์ฒญํ ํธ์คํธ์ ๊ฒฝ๋ก์ ๋ฐ๋ผ ์์ฒญ์ ์ ๋ฌํ ์๋น์ค๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค.
์ธ๊ทธ๋ ์ค๋ ๋คํธ์ํฌ ์คํ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(HTTP)์์ ์๋ํ๋ฉฐ ์๋น์ค๊ฐ ํ ์ ์๋ ์ฟ ํค ๊ธฐ๋ฐ ์ธ์ ์ดํผ๋ํฐ ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์๋น์ค ๋ฌธ์ ํด๊ฒฐ
๋จผ์ ์ธ๋ถ๊ฐ ์๋ ํด๋ฌ์คํฐ ๋ด์์ ์๋น์ค์ ํด๋ฌ์คํฐ IP์ ์ฐ๊ฒฐ๋๋์ง ํ์ธํฉ๋๋ค.
์๋น์ค์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํ๋ ค๊ณ ์๋น์ค IP๋ก ํ์ ํ ํ์ ์์ต๋๋ค.(์๋น์ค์ ํด๋ฌ์คํฐ IP๋ ๊ฐ์ IP์ด๋ฏ๋ก ํ๋์ง ์์ต๋๋ค.)
๋ ๋๋์ค ํ๋ก๋ธ๋ฅผ ์ ์ํ๋ค๋ฉด ์ฑ๊ณตํ๋์ง ํ์ธํ๋ผ. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ๋๋ ์๋น์ค์ ํฌํจ๋์ง ์์ต๋๋ค.
ํ๋๊ฐ ์๋น์ค์ ์ผ๋ถ์ธ์ง ํ์ธํ๋ ค๋ฉด kubectl get endpoints๋ฅผ ์ฌ์ฉํด ํด๋น ์๋ํฌ์ธํธ ์ค๋ธ์ ํธ๋ฅผ ํ์ธํฉ๋๋ค.
FQDN์ด๋ ๊ทธ ์ผ๋ถ(myservice.mynamespace.svc.cluster.local ๋๋ myservice.mynamespace)๋ก ์๋น์ค์ ์ก์ธ์คํ๋ ค๊ณ ํ๋๋ฐ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ, FQDN ๋์ ํด๋ฌ์คํฐ IP๋ฅผ ์ฌ์ฉํด ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
๋์ ํฌํธ๊ฐ ์๋ ์๋น์ค๋ก ๋ ธ์ถ๋ ํฌํธ์ ์ฐ๊ฒฐํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
ํ๋ IP์ ์ง์ ์ฐ๊ฒฐํด ํ๋๊ฐ ์ฌ๋ฐ๋ฅธ ํฌํธ์ ์ฐ๊ฒฐ๋ผ ์๋์ง ํ์ธํฉ๋๋ค.
ํ๋ IP๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ก์ปฌํธ์คํธ์๋ง ๋ฐ์ธ๋ฉํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
https://www.oreilly.com/library/view/kubernetes-in-action/9781617293726/
https://www.oreilly.com/library/view/cloud-native-devops/9781492040750/