service
Last updated
Last updated
์๋น์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ ํด๋ฌ์คํฐ ip์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ด๋ฅผ ํ๋์ ์ฐ๊ฒฐ์์ผ ๋์ผ๋ฉด ํด๋น ip์ฃผ์๋ฅผ ์ด์ฉํด์ ์ ๊ทผํ ์ ์๋ค. ํ๋๋ ๋ณ๋์ ip์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์ด๋ ํ๋ฐ์ฑ ip์ฃผ์์ด๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ์ด ๋จ์ด์ง์ง๋ง ์๋น์ค๋ก ์ฐ๊ฒฐ์์ผ๋์ผ๋ฉด ์ฌ์์ฑ์ด ๋๋๋ผ๋ ์ ๊ทผ์ ํ ์ ์๊ฒ ๋๋ค.
์๋น์ค๊ฐ ๊ฐ์ง๋ ip์ฃผ์๋ ์ธ๋ถ์์๋ ์ ๊ทผ ํ ์ ์์ผ๋ฉฐ ํด๋ฌ์คํฐ ๋ด์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ ์ฌ๋ฌ๊ฐ์ ํ๋๋ฅผ ์ฐ๊ฒฐ์์ผ๋์์ ๋ถํ๋ถ์ฐ๋ ์ํํ ์ ์๋ค.
type์ต์ ์์ ClusterIP๋ ์ต์ ๋ํ ๊ฐ์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ด ClusterIp์ด๊ธฐ ๋๋ฌธ์ ๋ช ์ํด์ฃผ์ง ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๊ฐ์ ๊ฐ๊ฒ ๋๋ค. ์ yml์ 9000๋ฒํฌํธ์ ์์ฒญ์ ํ๋์ 8080ํฌํธ๋ก ์ฐ๊ฒฐ์์ผ์ค๋ค๋ ๋ด์ฉ์ด๋ค.
์ธ๋ถ์์ ์ ๊ทผํ ์๊ฐ ์๊ณ ํด๋ฌ์คํฐ๋ด์์๋ง ์ฌ์ฉํ๋ ip๋ก ์ด์์์ ๊ฐ์ด ์ธ๊ฐ๋ ์ฌ์ฉ์๋ง ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋์๋ณด๋
๋ ํ๋์ ์๋น์ค ์ํ ๋๋ฒ๊น
ํ ๋ ์ฌ์ฉํ๋ค.
ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ๋์ด์๋ ๋ชจ๋ ๋ ธ๋์ ํน์ ํฌํธ๋ฅผ ํ ๋นํ์ฌ ํน์ ๋ ธ๋์์ ํ ๋น๋ ํฌํธ๋ก ์ฐ๊ฒฐ์ ์๋ํ ๋ ๋ ธ๋๋ค์ด ํด๋น ์๋น์ค๋ก ์ฐ๊ฒฐ์ด ๋๊ณ ์๋น์ค์ ์ฐ๊ฒฐ๋ ํ๋์๊ฒ ์ญํ ์ ๋ณด๋ด์ฃผ๊ฒ ๋๋ค.
nodePort๋ 30000~32767์ฌ์ด์ ํฌํธ์ค์ ์ ํํ ์ ์๊ณ ๋ช ์ํ์ง ์์ผ๋ฉด ์ด ๊ฐ์ค ํ ๊ฐ์ผ๋ก ์๋์ผ๋ก ์ค์ ์ด ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ด๋ค ํน์ ๋
ธ๋๋ฅผ ํตํด์ ์ ๊ทผ์ ํด ์์ฒญ์ ํ๋๋ผ๊ณ ์๋น์ค๋ 1๋ฒ๋
ธ๋๋ด์ ์กด์ฌํ๋ ํ๋๋ฅผ ์ํํ๋ ๊ฒ์ด ์๋๋ผ ์๋น์ค๊ฐ ํ๋จํ์ฌ ์ ์ ํ ๋ค๋ฅธ ๋
ธ๋์ ํ๋๋ฅผ ํ ๋นํ๊ฒ ๋๋๋ฐ externalTrafficPolicy: Local
์ต์
์ ์ฃผ๋ฉด ํน์ ๋
ธ๋๋ฅผ ํตํด ์ ๊ทผํ ์์ฒญ์ ํด๋น ๋
ธ๋๋ด์ ํ๋๋ฅผ ์ํํ๋๋ก ํด์ค ์ ์๋ค.
๋ฌผ๋ฆฌ์ ์ธ ํธ์คํธ์ ip๋ฅผ ํตํด์ ํ๋์ ์ ๊ทผํ ์ ์๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋๋ฐ ๋ณดํต ํธ์คํธip๋ ๋ด๋ถ๋ง์์๋ง ์ ๊ทผํ ์ ์๊ฒ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ๋ด๋ถ๋ง์ ์ฐ๊ฒฐ
ํ ๋๋ ๋ฐ๋ชจ
๋ ์์ ์ฐ๊ฒฐ์ฉ
์ผ๋ก ์ฌ์ฉํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ ธ๋ํฌํธ์ ์ต์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ ธ๋๋ค ์์ ๋ก๋๋ฐธ๋ฐ์๊ฐ ํ๋ ์์ฑ์ด ๋๊ณ , ๋ก๋๋ฐธ๋ฐ์๊ฐ ๋ถํ๋ถ์ฐ์ ํตํด ์ฌ๋ฌ ๋ ธ๋๋ค๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค. ์ด๋ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ๋ก๋๋ฐธ๋ฐ์์ ip์ฃผ์๋ ์๋์ผ๋ก ์์ฑ์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ์ธ๋ถ์ ์ ip๋ฅผ ํ ๋นํด์ฃผ๋ plugin์ด ์ค์น๊ฐ ๋์ด์์ด์ผ ip์ฃผ์๊ฐ ํ ๋น๋๋ค. ๋ง์ฝ aws, google๋ฑ์ ํตํด์ ๋ง๋ ๋ค๋ฉด ํด๋น plugin์ด ์ค์น๊ฐ ๋์ด์์ด ip์ฃผ์๊ฐ ํ ๋น ๋๋ค.
์ค์ ์ ์ผ๋ก ์ธ๋ถ์ ์์คํ ์ ๋ ธ์ถ์ํฌ๋ ๋ด๋ถip๋ฅผ ๋ ธ์ถ์ํค์ง ์๊ณ ์ธ๋ถip๋ง์ ๋ ธ์ถ ์์ผ ์ฌ์ฉ๋ ์ ์๋ค.
cluster ๋ด์ dns๊ฐ ์กด์ฌํ์ฌ pod์์ service๋ฅผ ์ฐ๊ฒฐํ ๋ service์ด๋ฆ์ผ๋ก ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ์๋๋ฐ pod์ pod๊ฐ์ ์ฐ๊ฒฐ๋ headless์ต์
์ ์ด์ฉํ๋ฉด dns์ pod์ด๋ฆ.service์ด๋ฆ
์ ์ด๋ฆ์ผ๋ก ํ๋๊ฐ ์์ฑ๋์ด ip๊ฐ ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์ pod๊ฐ์ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค.
์ธ๋ถ ip์ฃผ์๋ฅผ ์๊ณ ์์ด endpoint๋ฅผ ์ด์ฉํ์ฌ ์ ๊ทผ์ ํ๋๋ผ๋ ์ด ์ธ๋ถ ip๋ ๋ณ๊ฒฝ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ domain์ด๋ฆ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํ๋ฐ ์ด๋ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
k8s v1.11 ์ด์ ์๋ kube-dns ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก DNS ์๋น์ค๋ฅผ ์ ๊ณต, ์ดํ์๋ CoreDNS๋ฅผ ๋์ ํ๋ค.(๋ณด์๊ณผ ์์ ์ฑ ๋ฌธ์ )
์์ type์ด k8s์ service์ ์ฐ๊ฒฐํ์ฌ node์ ์ ์ํ๊ธฐ ์ํจ์ด์๋๋ฐ ์ด๋ service๊ฐ ๋ง๋ค์ด์ง๊ณ ๋ ํ์ ๊ทธ ip๋ฅผ ์ด์ฉํด์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด์์ง๋ง service์ pod๊ฐ ๋์์ ์ฌ๋ฌ๊ฐ ๋ฐฐํฌ๋๊ณ ํ pod์์ ๋ค๋ฅธ pod๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ ํ ๋ pod์ ip๋ ๋์ ํ ๋น์ด๋ฉฐ ์ฌ์์ฑ์ ๋ณ๊ฒฝ์ด๋๊ธฐ ๋๋ฌธ์ ์ ๊ทผ์ด ํ๋ค ์ ์๋๋ฐ ์ด๋ด๋ ์ ๊ณตํ๋ object๋ฅผ ์ด์ฉํด ํด๊ฒฐํ ์ ์๋ค.
service๋ฅผ clusterIP๋ฐฉ์์ผ๋ก ์์ฑ์ ํ๊ฒ ๋๋ฉด DNS๊ฐ ์์ ์ฌ์ง๊ณผ ๊ฐ์ด ์์ฑ์ด ๋๋๋ฐ ๋ณด๋ฉด service์ด๋ฆ.namespace์ด๋ฆ.์ข
๋ฅ(service/pod...).dns์ด๋ฆ
์ ๊ท์น์ผ๋ก domain์ด๋ฆ์ด ์์ฑ๋๋๋ฐ ์ด๋ฅผ FQDN(Fully Qualified Domain Name)
์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ namespace์์ service๋ ์ด๋ฆ๋ง์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง pod๋ ์ ์ฒด ์ด๋ฆ์ผ๋ก ์กฐํ๋ฅผ ํด์ผํ๊ณ pod์ domain name์ด ๋์ ์ผ๋ก ์์ฑ๋ ip์ฃผ์๊ฐ ๋ถ์ด ์ง์ ์ด ๋๊ธฐ ๋๋ฌธ์ pod์ด๋ฆ์ผ๋ก domain์ ์ง์๊ฐ ๋ถ๊ฐ๋ฅํด pod์๋ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
service์ clusterIP๋ฅผ None
์ผ๋ก ํ์ฌ clusterIp๋ฅผ ๋ง๋ค์ง ์๊ณ pod์ hostname
์ domain์, subdomain
์ service์ด๋ฆ์ ๋ฃ์ด ์์ฑํด์ฃผ๋ฉด headless๋ก ์์ฑ์ด ๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ํน์ ์ด๋ฆ์ผ๋ก dns์ domain๋ค์ด ์์ฑ์ด ๋๊ณ ์ด ์ด๋ฆ์ ๊ฐ์ง๊ณ ์ ๊ทผ์ ํ ์ ์๋ค.
์ฐ๋ฆฌ๊ฐ service์์ pod๋ฅผ ์ฐ๊ฒฐํ ๋ label
์ ์ด์ฉํ์ฌ ์ฐ๊ฒฐํ์๋๋ฐ ์ด๋ ๋ด๋ถ์ ์ผ๋ก endpoint๋ฅผ ์ด์ฉํ์ฌ ์ฐ๊ฒฐ๋ ๋ฐฉ์์ด๋ค. k8s๋ ์๋น์ค์ ์ด๋ฆ์ผ๋ก endpoint๋ฅผ ์์ฑํ๊ณ ๋ด๋ถ์ pod์ ์ ์์ ๋ณด๋ฅผ ์
๋ ฅํ์ฌ service-pod ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ์ง์ endpoint๋ฅผ ์ค์ ํด์ ํน์ pod๋ ์ธ๋ถ ์ฃผ์์ ์ ๊ทผ์ ํ ์ ์๋ค.
service๋ฅผ ์์ฑํ ๋ ExternalName์์ฑ์ domain์ด๋ฆ์ ์ง์ ํด์ฃผ๋ฉด dns cache๊ฐ ๋ด๋ถ/์ธ๋ถ DNS์์ ์ฃผ์๋ฅผ ์ฐพ์ ์ฐ๊ฒฐํด์ฃผ๊ธฐ ๋๋ฌธ์ ip์ฃผ์๊ฐ ๋ฐ๋์ด๋ ์ ์์ด ๊ฐ๋ฅํ๋ค.