๋ชฉํ
- ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๊ฐ ๋ฌด์์ธ์ง ๋ฐฐ์ด๋ค.
- Minikube๊ฐ ๋ฌด์์ธ์ง ๋ฐฐ์ด๋ค.
- ์จ๋ผ์ธ ํฐ๋ฏธ๋์ ์ฌ์ฉํด์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ์์ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ
์ฟ ๋ฒ๋คํฐ์ค๋ ์ปดํจํฐ๋ค์ ์ฐ๊ฒฐํ์ฌ ๋จ์ผ ํ์์ผ๋ก ๋์ํ๋๋ก ์ปดํจํ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋์ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํ๋๋ก ์กฐ์จํ๋ค. ์ฌ์ฉ์๋ ์ฟ ๋ฒ๋คํฐ์ค์ ์ถ์ํ ๊ฐ๋ ์ ํตํด ๊ฐ๋ณ ๋จธ์ ์ ์ฝ๋งค์ด์ง ์๊ณ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ ์ ์๋ค. ์ด๋ ๊ฒ ์๋ก์ด ๋ฐฐํฌ ๋ชจ๋ธ์ ํ์ฉํ๋ ค๋ฉด, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ณ ํธ์คํธ์ ๋ ๋ฆฝ์ ์ธ ๋ฐฉ์์ผ๋ก ํจํค์งํ ํ์๊ฐ ์๋ค. ์ฆ, ์ปจํ ์ด๋ํ๊ฐ ํ์ํ๋ค. ์์ ๋ฐฐ์น ๋ชจ๋ธ์ธ ์ค์นํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํน์ ๋จธ์ ์ ํธ์คํธ์ ๋ฐ์ ํ๊ฒ ํตํฉ๋๋ ํจํค์ง์ธ ๊ฒ์ ๋นํด, ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฐ์ฑ(flexible)๊ณผ ๊ฐ์ฉ์ฑ(available)์ด ํจ์ฌ ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋๋ฅผ ํด๋ฌ์คํฐ์ ๋ถ์ฐ์ํค๊ณ ์ค์ผ์ค๋งํ๋ ์ผ์ ๋์ฑ ํจ์จ์ ์ผ๋ก ์๋ํํ๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ์คํ์์ค ํ๋ซํผ์ด๋ฉฐ ์ด์ ์์ค์ ์์ ์ฑ(production-ready)์ ์ ๊ณตํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ๋ ๊ฐ์ง ํํ์ ์์์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ์ปจํธ๋กค ํ๋ ์ธ์ ํด๋ฌ์คํฐ๋ฅผ ์กฐ์จํ๋ค.
- ๋ ธ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ ์์ ์(worker)์ด๋ค.
์์ฝ:
- ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ
- Minikube
์ฟ ๋ฒ๋คํฐ์ค๋ ์ปดํจํฐ ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋์ ๋ฐฐ์น(์ค์ผ์ค๋ง) ๋ฐ ์คํ์ ์ค์ผ์คํธ๋ ์ด์ ํ๋ ์ด์ ์์ค์ ์คํ์์ค ํ๋ซํผ์ด๋ค.
ํด๋ฌ์คํฐ ๋ค์ด์ด๊ทธ๋จ
์ปจํธ๋กค ํ๋ ์ธ์ ํด๋ฌ์คํฐ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ค. ์ปจํธ๋กค ํ๋ ์ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ผ์ค๋งํ๊ฑฐ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ ํญ์์ฑ์ ์ ์งํ๊ฑฐ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ผ์ผ๋งํ๊ณ , ์๋ก์ด ๋ณ๊ฒฝ์ฌํญ์ ์์๋๋ก ๋ฐ์(rolling out)ํ๋ ์ผ๊ณผ ๊ฐ์ ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ํ๋์ ์กฐ์จํ๋ค.
๋ ธ๋๋ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ด ์์ปค ๋จธ์ ์ผ๋ก ๋์ํ๋ VM ๋๋ ๋ฌผ๋ฆฌ์ ์ธ ์ปดํจํฐ๋ค. ๊ฐ ๋ ธ๋๋ ๋ ธ๋๋ฅผ ๊ด๋ฆฌํ๊ณ ์ฟ ๋ฒ๋คํฐ์ค ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ํต์ ํ๋ Kubelet์ด๋ผ๋ ์์ด์ ํธ๋ฅผ ๊ฐ๋๋ค. ๋ ธ๋๋ ์ปจํ ์ด๋ ์ด์์ ๋ด๋นํ๋ containerd ๋๋ ๋์ปค์ ๊ฐ์ ํด๋ ๊ฐ๋๋ค. ์ด์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ์ต์ ์ธ ๋์ ๋ ธ๋๋ฅผ ๊ฐ์ ธ์ผ ํ๋๋ฐ, ์ด๋ ํ ๋ ธ๋๊ฐ ๋ค์ด๋๋ฉด etcd ๋ฉค๋ฒ์ ์ปจํธ๋กค ํ๋ ์ธ ์ธ์คํด์ค๊ฐ ์ฌ๋ผ์ ธ ์ค๋ณต์ฑ(redundancy)์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฌํ ์ํ์ ์ค์ผ ์ ์๋ค.
์ปจํธ๋กค ํ๋ ์ธ์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ์คํ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ ธ๋์ ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฐฐํฌํ๊ธฐ ์ํด์๋, ์ปจํธ๋กค ํ๋ ์ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋์ ๊ตฌ๋์ ์ง์ํ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ปจํธ๋กค ํ๋ ์ธ์ ์ปจํ ์ด๋๋ฅผ ํด๋ฌ์คํฐ์ ์ด๋ ๋ ธ๋์ ๊ตฌ๋์ํฌ์ง ์ค์ผ์คํ๋ค. ๋ ธ๋๋ ์ปจํธ๋กค ํ๋ ์ธ์ด ์ ๊ณตํ๋ ์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ํตํด์ ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ํต์ ํ๋ค. ์ต์ข ์ฌ์ฉ์๋ ์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ์ฌ์ฉํด์ ํด๋ฌ์คํฐ์ ์ง์ ์ํธ์์ฉ(interact)ํ ์ ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ๋ฌผ๋ฆฌ ๋ฐ ๊ฐ์ ๋จธ์ ๋ชจ๋์ ์ค์น๋ ์ ์๋ค. ์ฟ ๋ฒ๋คํฐ์ค ๊ฐ๋ฐ์ ์์ํ๋ ค๋ฉด Minikube๋ฅผ ์ฌ์ฉํ ์ ์๋ค. Minikube๋ ๊ฐ๋ฒผ์ด ์ฟ ๋ฒ๋คํฐ์ค ๊ตฌํ์ฒด์ด๋ฉฐ, ๋ก์ปฌ ๋จธ์ ์ VM์ ๋ง๋ค๊ณ ํ๋์ ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ๊ฐ๋จํ ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๋ค. Minikube๋ ๋ฆฌ๋ ์ค, ๋งฅ, ๊ทธ๋ฆฌ๊ณ ์๋์ฐ ์์คํ ์์ ๊ตฌ๋์ด ๊ฐ๋ฅํ๋ค. Minikube CLI๋ ํด๋ฌ์คํฐ์ ๋ํด ์์, ์ค์ง, ์ํ ์กฐํ ๋ฐ ์ญ์ ๋ฑ์ ๊ธฐ๋ณธ์ ์ธ ๋ถํธ์คํธ๋ํ(bootstrapping) ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ํ์ง๋ง, ๋ณธ ํํ ๋ฆฌ์ผ์์๋ Minikube๊ฐ ๋ฏธ๋ฆฌ ์ค์น๋ ์ฑ๋ก ์ ๊ณต๋๋ ์จ๋ผ์ธ ํฐ๋ฏธ๋์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๋ฌด์์ธ์ง ์์๋ดค์ผ๋, ์ด์ ์จ๋ผ์ธ ํํ ๋ฆฌ์ผ๋ก ์ด๋ํด์ ์ฐ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ํด๋ฌ์คํฐ๋ฅผ ์์ํด๋ณด์!