44BIT๋์ [์ด๋ณด๋ฅผ ์ํ ์ฟ ๋ฒ๋คํฐ์ค ์๋ด์] ์ฟ ๋ฒ๋คํฐ์ค ์ํคํ ์ฒ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๋ฌด์์ธ์ง, ๊ทธ๋ฅ ์ปจํ ์ด๋๋ฅผ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ๋ ๊ฒ๊ณผ ๋ฌด์์ด ๋ค๋ฅธ์ง๋ ๊ณต์ ๋ฌธ์ ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ฌด์์ธ๊ฐ?์ ์ ์ค๋ช ๋์ด ์๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ณต๋ถํ๊ธฐ ์ ์ ์ด๋ค ๋๋์ธ์ง ์ดํดํ ๋ฐ๋ก๋, ์ฟ ๋ฒ๋คํฐ์ค๋ ๊ธฐ์กด ๋ถ์ฐ ์์คํ ์ ์ข ๋ ํ๋ ฅ์ ์ผ๋ก ์คํํ ์ ์๋๋ก ๋์์ฃผ๊ณ (์ ์ฐ์ฑ), ์ ๊ณต๋๋ ํ๋ ์์ํฌ, ๋ฐฐํฌ ํจํด ๋ฑ์์ ์๋น์ค์ ๊ท๋ชจ์ ๋ง๊ฒ ์คํํ ์ ์๋๋ก ๊ฐ๋ฐ์์ ์ ํ์ง๊ฐ ๋ ๋ค์ํ ๊ฒ ๊ฐ๋ค(์ ํ๊ถ).
์ฆ, ์ฟ ๋ฒ๋คํฐ์ค๋ ์ฌ์ฉ์์ ์ ํ๊ถ๊ณผ ์ ์ฐ์ฑ์ ์ง์ผ์ฃผ๋ฉด์ ํ์ฅ๊ณผ ์ด์์ด ์ฉ์ดํ ์ปจํ ์ด๋ ๊ด๋ฆฌ ์คํ์์ค ํ๋ซํผ์ด๋ค.
๋
ธ๋(node)
: ์ฟ ๋ฒ๋คํฐ์ค์์ ์ต์ ๋จ์์ ์ปดํจํ
ํ๋์จ์ดํด๋ฌ์คํฐ(cluster)
: ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ณต์ ์ ๊ท ํ ๋ฐฐ๋ถ์ ์ํด ์ฌ๋ฌ ๋
ธ๋๋ฅผ ๋ฌถ์ ๊ทธ๋ฃน์ปจํ
์ด๋(container)
: ํ๋ ์ด์์ ํ๋ก์ธ์ค ๋ชจ์. ์คํ์ ํ์ํ ํ์ผ๋ ๋ชจ๋ ๋ค์ด์์ด ๋จธ์ ๊ฐ ์ด์์ด ๊ฐ๋ฅ.ํฌ๋(pod)
: ํ๋ ์ด์์ ์ปจํ
์ด๋ ๋ชจ์. ๋ฆฌ์์ค ๊ณต์ ์ ์ฅ์ ์ ๊ทน๋ํํ๊ธฐ ์ํด ํจํค์ง๋ก ๋ฌถ์ฌ ์์.ํฌ๋์ ํด๋ฌ์คํฐ์ ๊ด๊ณ ๋๋ฌธ์ ์ฟ ๋ฒ๋คํฐ์ค๋ ์ง์ ์ปจํ ์ด๋๋ฅผ ์คํํ์ง ์๋๋ค. ๊ทธ ๋์ ํฌ๋๋ฅผ ์คํํ๋ฉด์ ํฌ๋ ์์ ๊ฐ ์ปจํ ์ด๋๊ฐ ๋์ผํ ๋ฆฌ์์ค ๋ฐ ๋ก์ปฌ ๋คํธ์ํฌ๋ฅผ ๊ณต์ ํ๊ฒ ํ๋ค. ์ด๋ ๊ฒ ์ปจํ ์ด๋๋ฅผ ํฌ๋๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ฟ ๋ฒ๋คํฐ์ค์ ์ ๋ช ํ ๊ธฐ๋ฅ, ๋ฐ๋ก ๋ณต์ (Replication)์ ํ ๋๊ฐ ๋๋ค.
์ปจํ ์ด๋๋ฅผ ๋ชจ์ ํฌ๋๋ฅผ ๋ง๋ค๋ฉด, ์ด๋ค ํฌ๋ ํ๋๊ฐ ๊ณผ๋ถํ ์ํ๊ฐ ๋์์ ๋ ์ฟ ๋ฒ๋คํฐ์ค๋ ์๋์ผ๋ก ์ด๋ฅผ ๋ณต์ ํ ๋ค์ ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ ์ ์๋ ๊ฒ์ด๋ค.
์ถ์ฒ : ์ฟ ๋ฒ๋คํฐ์ค ํฌ๋๋?
์ฟ ๋ฒ๋คํฐ์ค ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํ๊ธฐ ์ , ๋จผ์ Desired State ๊ฐ๋ ์ ์ดํดํ๋ฉด ์ข๋ค. ์๋ฒ ๊ด๋ฆฌ์์ ์ค์ํ ๊ฐ๋ ์ด์ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ทผ๊ฐ์ ์์ฐ๋ฅด๋ ์์คํ ์ด๋ค. ํ์ฌ ์ํ์ Desired State(์ํ๋ ์ํ)๋ฅผ ๊ณ์ ์ฒดํฌํ๊ณ (์ปจํ ์ด๋ ํ๋๊ฐ ๋ ์์ด์ผ ๋๋๋ฐ ์ ๋ ์๋์ง ๋ฑ), ๋ง์ฝ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์กฐ์น๋ฅผ ํ๊ณ . ์ด ๋จ์ํ ์์ ์ ์ ๋ฐ๋ณตํ๋ฉด ์๋ฒ ๊ด๋ฆฌ์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ค.
์ฟ ๋ฒ๋คํฐ์ค์ ๊ตฌ์กฐ๋ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. ๊ฐ์ ์ ์ผ ๋๋ถ๋ถ์ ๋์ค๋๋ฐ, ๋ฏธ๋ฆฌ ์บก์ณ๋ฅผ ํด๋ดค๋ค. ํฌ๊ฒ ๋ณด๋ฉด Master์ Node๋ผ๋ ๊ตฌ์กฐ ์์์ ์๋ฒ ๊ด๋ฆฌ ํ๋ฆ์ด ์งํ๋๋ ๊ฒ์ด๋ค. ์ ๊ทธ๋ฆผ์ฒ๋ผ ์ฒ์ ๋ณด๋ ์ฉ์ด๊ฐ ๊ฐ๋ํ ๊ฒฐ๋ก ์ ์ ์ ๋ค์ ์๊ณ , ๊ฐ๊ฐ์ ๊ฐ๋ ์ ๊ฐ์ ์์๋๋ก ์ตํ๋ณด์.
์๋ฒ ๊ด๋ฆฌ์์ state(์ํ)์ ์ข ๋ฅ๋ ๋ค์ํ ์ ์๋ค. ์ฟ ๋ฒ๋คํฐ์ค์์๋ ํด๋ฌ์คํฐ ์ํ์ ๊ฐ ํน์ ํ ๋ถ๋ถ์ ๊ด๋ฆฌํ๋ ๋ง์ ์ปจํธ๋กค๋ฌ ๋ฅผ ์ฌ์ฉํ๋ค. ์ฟ ๋ฒ๋คํฐ์ค ๋์์ธ ์๋ฆฌ์ ํต์ฌ์ด๊ธฐ๋ ํ๋ฐ, ์ํ๋ฅผ ์ ์ดํ ๋ ๋ฃจํ๊ฐ ํ๋๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋๋ฆฌ์(monolithic) ์งํฉ๋ณด๋ค ๊ฐ๋จํ๊ฒ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๋๊ฒ ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ปจํธ๋กค๋ฌ ๊ฐ๋ ๋๋ถ์ ์์์ ๋ฐฐ์ด Desired State ๋ฃจํ๊ฐ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๊ต์ฅํ ๋ง์์ง ์ ์๋ค.
CPU ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ํฌ๋(์ปจํ ์ด๋์์ ์งํฉ์ด์ ์ฟ ๋ฒ๋คํฐ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ๋จ์)์ ๋ฆฌ์์ค ์๊ตฌ ์ฌํญ๊ณผ ํจ๊ป ํด๋ฌ์คํฐ์ ์ํ๋ฅผ ๊ณ ๋ คํ๋ค. ๊ทธ๋ฐ ๋ค์ ํฌ๋๋ฅผ ์ ์ ํ ์ปดํจํ ๋ ธ๋์ ์์ฝํ๋ค. ์ฝ๊ฒ ๋งํด์ ์ฌ์ ์๋ ์๋ฒ๋ฅผ ์ฐพ์ ์ปจํ ์ด๋๋ฅผ ์ด๋์ ๋์ธ์ง ๊ฒฐ์ ํ๋ ๊ฒ.
์ํ๋ฅผ ์ ์ฅํ๊ณ ์กฐํํ๋ DB์ธ ์ฃ์ง๋(etcd)๊ฐ ์๋ค. etcd๋ ๋ชจ๋ ์ํ์ ๋ฐ์ดํฐ๋ฅผ ํ์คํ๊ฒ ์ ์ฅํด์ผํ๋ค. ๋ฐ๋ผ์ ๋ฐฑ์ ์ ํ์์ด๋ฉฐ, ์๋ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
๋ง์คํฐ์ ์กฐ์จ์ ์ญํ ์ ํ๋ API Server ์ด๋ค. ๋ฐ์ดํฐ์ ์ํ๋ฅผ ์กฐํํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ์์ฒญ์ ๋ชจ๋ API ์๋ฒ๋ฅผ ํตํด(๊ฑฐ์ณ์) ์ด๋ค์ง๋ค. ์๋์ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
๋ ธ๋์๋ ํฌ๊ฒ ๋ ๊ฐ์ง ์ปดํฌ๋ํธ๊ฐ ๋ ์๋๋ฐ, ํ๋ก์(Proxy)์ ํ๋ธ๋ฆฟ(Kubelet) ์ด๋ค. ์ด ๋ ์ปดํฌ๋ํธ๋ ๋ง์คํฐ์ ํต์ ์ ํ ๋ API Server๋ฅผ ํตํด์๋ง ์์ฒญ์ ์๋ต๋ฅผ ์ป์ ์ ์๋ค.
๋คํธ์ํฌ ํ๋ก์ ์ญํ (๋ถํ ๋ถ์ฐ)์ ํ๊ธด ํ์ง๋ง ์ค์ ๋ก ์์ฒญ/์๋ต์ ๋ฐ๋ ํ๋ก์๊ฐ ๋ ์๋ ๊ฐ๋ ์ ์๋๊ณ , ๋ด์ธ๋ถ ํต์ ์ค์ ๋ง ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค.
iptables ๋๋ IPVS๋ฅผ ์ฌ์ฉํ๋ค.
๊ฐ ๋ ธ๋์์ ์คํ๋๋ฉฐ, pod๋ฅผ ์คํํ๊ฑฐ๋ ์ค์งํ๊ณ ์ํ๋ฅผ ์ฒดํฌํ๋ค. ๋์ปค ๋ฑ ์๋๋ผ ๋ค์ํ CRI(Container Runtime Interface), ์ฆ ์ปจํ ์ด๋๋ฅผ pod๋ก ๊ฐ์ธ ํ์คํ๊ฒ ๊ด๋ฆฌํ๋ ์๋ฌด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด๋ค.
๋ ์ ๋ณด๊ณ ์์ต๋๋ค..!!