๋ชฉํ
- ์ฟ ๋ฒ๋คํฐ์ค์ ์๋น์ค์ ๋ํด ๋ฐฐ์ด๋ค.
- ๋ ์ด๋ธ๊ณผ ๋ ์ด๋ธ์ ๋ํฐ ์ค๋ธ์ ํธ๊ฐ ์ด๋ป๊ฒ ์๋น์ค์ ์ฐ๊ด๋๋์ง ์ดํดํ๋ค.
- ์๋น์ค๋ฅผ ์ด์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ์ธ๋ถ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค๋ค์ ๋ํ ๊ฐ์
์ฟ ๋ฒ๋คํฐ์ค ํ๋๋ค ์ ์ธ์ ๊ฐ๋ ์ฃฝ๊ฒ๋๋ค. ํ๋๋ค์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ๋๋ค. ์์ปค ๋ ธ๋๊ฐ ์ฃฝ์ผ๋ฉด, ๋ ธ๋ ์์์ ๋์ํ๋ ํ๋๋ค ๋ํ ์ข ๋ฃ๋๋ค. ๋ ํ๋ฆฌ์นด์ (ReplicaSet)์ ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ง์์ ์ผ๋ก ๋์ํ ์ ์๋๋ก ์๋ก์ด ํ๋๋ค์ ์์ฑ์ ํตํด ๋์ ์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํด ๋ ์ํ๋ก ๋๋๋ ค ์ค ์๋ ์๋ค. ๋ ๋ค๋ฅธ ์์๋ก์, 3๊ฐ์ ๋ณต์ ๋ณธ์ ๊ฐ๋ ์ด๋ฏธ์ง ์ฒ๋ฆฌ์ฉ ๋ฐฑ์๋๋ฅผ ๊ณ ๋ คํด ๋ณด์. ๊ทธ ๋ณต์ ๋ณธ๋ค์ ๊ต์ฒด ๊ฐ๋ฅํ ์ํ์ด๋ค. ๊ทธ๋์ ํ๋ก ํธ์๋ ์์คํ ์ ํ๋์ ํ๋๊ฐ ์๋ฉธ๋์ด ์ฌ์์ฑ์ด ๋๋๋ผ๋, ๋ฐฑ์๋ ๋ณต์ ๋ณธ๋ค์ ์ํ ์ํฅ์ ๋ฐ์์๋ ์๋๋ค. ์ฆ, ๋์ผ ๋ ธ๋ ์์ ํ๋๋ค์ด๋ผ ํ ์ง๋ผ๋, ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ด ๊ฐ ํ๋๋ ์ ์ผํ IP ์ฃผ์๋ฅผ ๊ฐ์ง๋ฉฐ, ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ด ์ง์์ ์ผ๋ก ๊ธฐ๋ฅํ ์ ์๋๋ก ํ๋๋ค ์์์ ๋ฐ์ํ๋ ๋ณํ์ ๋ํด ์๋์ผ๋ก ์กฐ์ ํด ์ค ๋ฐฉ๋ฒ์ด ์์ด์ผ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค์์ ์๋น์ค๋ ํ๋์ ๋
ผ๋ฆฌ์ ์ธ ํ๋ ์
๊ณผ ๊ทธ ํ๋๋ค์ ์ ๊ทผํ ์ ์๋ ์ ์ฑ
์ ์ ์ํ๋ ์ถ์์ ๊ฐ๋
์ด๋ค. ์๋น์ค๋ ์ข
์์ ์ธ ํ๋๋ค ์ฌ์ด๋ฅผ ๋์จํ๊ฒ ๊ฒฐํฉ๋๋๋ก ํด์ค๋ค. ์๋น์ค๋ ๋ชจ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ๋ค๊ณผ ๊ฐ์ด YAML (๋ณด๋ค ์ ํธํ๋) ๋๋ JSON์ ์ด์ฉํ์ฌ ์ ์๋๋ค. ์๋น์ค๊ฐ ๋์์ผ๋ก ํ๋ ํ๋ ์
์ ๋ณดํต LabelSelector์ ์ํด ๊ฒฐ์ ๋๋ค (์ฌ๋ฌ๋ถ์ด ์ ์คํ์ selector
๊ฐ ํฌํจ๋์ง ์์ ์๋น์ค๋ฅผ ํ์๋ก ํ๊ฒ ๋ ์๋ ์๋์ง์ ๋ํด ์๋์์ ํ์ธํด ๋ณด์).
๋น๋ก ๊ฐ ํ๋๋ค์ด ๊ณ ์ ์ IP๋ฅผ ๊ฐ๊ณ ์๊ธฐ๋ ํ์ง๋ง, ๊ทธ IP๋ค์ ์๋น์ค์ ๋์์์ด ํด๋ฌ์คํฐ ์ธ๋ถ๋ก ๋
ธ์ถ๋์ด์ง ์ ์๋ค. ์๋น์ค๋ค์ ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
๋ค์๊ฒ ํธ๋ํฝ์ด ์ค๋ฆด ์ ์๋๋ก ํ์ฉํด์ค๋ค. ์๋น์ค๋ค์ ServiceSpec์์ type
์ ์ง์ ํจ์ผ๋ก์จ ๋ค์ํ ๋ฐฉ์๋ค๋ก ๋
ธ์ถ์ํฌ ์ ์๋ค:
- ClusterIP (๊ธฐ๋ณธ๊ฐ) - ํด๋ฌ์คํฐ ๋ด์์ ๋ด๋ถ IP ์ ๋ํด ์๋น์ค๋ฅผ ๋ ธ์ถํด์ค๋ค. ์ด ๋ฐฉ์์ ์ค์ง ํด๋ฌ์คํฐ ๋ด์์๋ง ์๋น์ค๊ฐ ์ ๊ทผ๋ ์ ์๋๋ก ํด์ค๋ค.
- NodePort - NAT๊ฐ ์ด์ฉ๋๋ ํด๋ฌ์คํฐ ๋ด์์ ๊ฐ๊ฐ ์ ํ๋ ๋
ธ๋๋ค์ ๋์ผํ ํฌํธ์ ์๋น์ค๋ฅผ ๋
ธ์ถ์์ผ์ค๋ค.
<NodeIP>:<NodePort>
๋ฅผ ์ด์ฉํ์ฌ ํด๋ฌ์คํฐ ์ธ๋ถ๋ก๋ถํฐ ์๋น์ค๊ฐ ์ ๊ทผํ ์ ์๋๋ก ํด์ค๋ค. ClusterIP์ ์์ ์งํฉ์ด๋ค. - LoadBalancer - (์ง์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ) ๊ธฐ์กด ํด๋ผ์ฐ๋์์ ์ธ๋ถ์ฉ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ์์ฑํ๊ณ ์๋น์ค์ ๊ณ ์ ๋ ๊ณต์ธ IP๋ฅผ ํ ๋นํด์ค๋ค. NodePort์ ์์ ์งํฉ์ด๋ค.
- ExternalName -
CNAME
๋ ์ฝ๋ ๋ฐ ๊ฐ์ ๋ฐํํจ์ผ๋ก์จ ์๋น์ค๋ฅผexternalName
ํ๋์ ๋ด์ฉ(์๋ฅผ ๋ค๋ฉด,foo.bar.example.com
)์ ๋งคํํ๋ค. ์ด๋ ํ ์ข ๋ฅ์ ํ๋ก์๋ ์ค์ ๋์ง ์๋๋ค. ์ด ๋ฐฉ์์kube-dns
v1.7 ์ด์ ๋๋ CoreDNS ๋ฒ์ 0.0.8 ์ด์์ ํ์๋ก ํ๋ค.
๋ค๋ฅธ ์๋น์ค ํ์ ๋ค์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ ์์ค IP ์ด์ฉํ๊ธฐ ํํ ๋ฆฌ์ผ์์ ํ์ธ ๊ฐ๋ฅํ๋ค. ๋ํ ์๋น์ค๋ค๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ธฐ๋ ์ฐธ๊ณ ํด ๋ณด์.
๋ถ๊ฐ์ ์ผ๋ก, spec์ selector
๋ฅผ ์ ์ํ์ง ์๊ณ ๋ง์๋ฃ์ ์๋น์ค๋ค์ ๋ช ๊ฐ์ง ์ ์ฆ์ผ์ด์ค๋ค์ด ์์์ ์ฃผ์ํ์. selector
์์ด ์์ฑ๋ ์๋น์ค๋ ์์ํ๋ ์๋ํฌ์ธํธ ์ค๋ธ์ ํธ๋ค ๋ํ ์์ฑํ์ง ์๋๋ค. ์ด๋ก์จ ์ฌ์ฉ์๋ค๋ก ํ์ฌ๊ธ ํ๋์ ์๋น์ค๋ฅผ ํน์ ํ ์๋ํฌ์ธํธ์ ๋งคํ ์ํฌ์ ์๋๋ก ํด์ค๋ค. selector๋ฅผ ์๋ตํ๊ฒ ๋๋ ๋ ๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ ์ฌ๋ฌ๋ถ์ด type: ExternalName
์ ์ด์ฉํ๊ฒ ๋ค๊ณ ํ๊ณ ํ๊ฒ ์๋ํ๋ ๊ฒฝ์ฐ์ด๋ค.
์์ฝ
- ํ๋๋ค์ ์ธ๋ถ ํธ๋ํฝ์ ๋ ธ์ถํ๊ธฐ
- ์ฌ๋ฌ ํ๋์ ๊ฑธ์ณ์ ํธ๋ํฝ ๋ก๋๋ฐธ๋ฐ์ฑ ํ๊ธฐ
- ๋ ์ด๋ธ ์ฌ์ฉํ๊ธฐ
์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค๋ ๋ ผ๋ฆฌ์ ํ๋ ์ ์ ์ ์ํ๊ณ ์ธ๋ถ ํธ๋ํฝ ๋ ธ์ถ, ๋ก๋๋ฐธ๋ฐ์ฑ ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ๋๋ค์ ๋ํ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์ถ์ ๊ณ์ธต์ด๋ค.
์๋น์ค์ ๋ ์ด๋ธ
์๋น์ค๋ ํ๋ ์ ์ ๊ฑธ์ณ์ ํธ๋ํฝ์ ๋ผ์ฐํธํ๋ค. ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ์ฟ ๋ฒ๋คํฐ์ค์์ ํ๋๋ค์ด ์ฃฝ๊ฒ๋ ํ๊ณ , ๋ณต์ ๊ฐ ๋๊ฒ๋ ํด์ฃผ๋ ์ถ์์ ๊ฐ๋ ์ด๋ค. ์ข ์์ ์ธ ํ๋๋ค ์ฌ์ด์์์ ๋์ค์ปค๋ฒ๋ฆฌ์ ๋ผ์ฐํ ์ (ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ๋กํธ์๋์ ๋ฐฑ์๋ ์ปดํฌ๋ํธ์ ๊ฐ์) ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค๋ค์ ์ํด ์ฒ๋ฆฌ๋๋ค.
์๋น์ค๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์ฒด๋ค์ ๋ํด ๋ ผ๋ฆฌ ์ฐ์ฐ์ ํ์ฉํด์ฃผ๋ ๊ธฐ๋ณธ ๊ทธ๋ฃนํ ๋จ์์ธ, ๋ ์ด๋ธ๊ณผ ์ ๋ ํฐ๋ฅผ ์ด์ฉํ์ฌ ํ๋ ์ ๊ณผ ๋งค์น์ํจ๋ค. ๋ ์ด๋ธ์ ์ค๋ธ์ ํธ๋ค์ ๋ถ์ฌ์ง ํค/๋ฐธ๋ฅ ์์ผ๋ก ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ค:
- ๊ฐ๋ฐ, ํ ์คํธ, ๊ทธ๋ฆฌ๊ณ ์์ฉํ๊ฒฝ์ ๋ํ ๊ฐ์ฒด๋ค์ ์ง์
- ์๋ฒ ๋๋๋ ๋ฒ์ ํ๊ทธ๋ค
- ํ๊ทธ๋ค์ ์ด์ฉํ๋ ๊ฐ์ฒด๋ค์ ๋ํ ๋ถ๋ฅ
๋ ์ด๋ธ์ ์ค๋ธ์ ํธ์ ์์ฑ ์์ ๋๋ ์ดํ ์์ ์ ๋ถ์ฌ์ง ์ ์๋ค. ์ธ์ ๋ ์ง ์์ ์ด ๊ฐ๋ฅํ๋ค. ์ด์ ์๋น์ค๋ฅผ ์ด์ฉํ์ฌ ์ฐ๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถ๋ ์์ผ๋ณด๊ณ ๋ ์ด๋ธ๋ ์ ์ฉํด ๋ณด์.