[Kubernetes] 1. Container Deployment์ Kubernetes
์ ์๊ฒ ์์ด ์ฟ ๋ฒ๋คํฐ์ค๋ Docker Swarm์ ์ง๋ ์ด์ ๋ถํฐ ์ฌ์ฉํ๊ณ ์์๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ํด์ด์์ต๋๋ค. ์ต๊ทผ์ ์ด์ง์ ํ ํ์ฌ์์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ด์ฉํ์ฌ ์์คํ ์ ๊ตฌ์ฑํ๊ณ ์๋น์ค๋ฅผ ์ด์ํ๊ฒ ๋์ด ์ฃผ ์ค์ผ์คํธ๋ ์ด์ ํด๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๊ณ , ์ด ๋๋ถํฐ Docker Swarm ๋ณด๋ค๋ Kubernetes๋ก ์์คํ ์ ๊ตฌ์ฑํ๋ ์ผ์ด ์์ฃผ ์๊ฒจ๋ฌ์ต๋๋ค.
์ด ๊ธ์ Docker๋ฅผ ์์ฃผ ์ฌ์ฉํ์ง๋ง Kubernetes์ ๋ํด์๋ ์ ๋ชจ๋ฅด๊ณ , ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์ ๊ณ ๋ คํด๋ณด๊ณ ์ถ์ ๋ถ๋ค์๊ฒ ๋๋ฆฌ๋ ๊ธ์ ์์์ ๋๋ค.
Container Deployment์ผ๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ์ค๊ธฐ๊น์ง..
Kubernetes๋ Go ์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Google์์ ๊ฐ๋ฐํ์ฌ 2014๋ ์ ๊ณต๊ฐ๋ Container Orchestration tool์ ๋๋ค. ๋จผ์ ์ปจํ ์ด๋์ ๋ํด ๊ฐ๋จํ ์ด์ผ๊ธฐ ํ์๋ฉด, ์ปจํ ์ด๋๋ OS์ ์์์ ๊ณต์ ํ ํํ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ธฐ ์ํด ๊ทธ ํ๊ฒฝ์ ๋ง๋ค์ด๋ธ ํํ๋ฅผ ๋งํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ ์ด๋ฌํ ํ๊ฒฝ์ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ์จ ๊ฒ์ผ๊น์?
์ ์ฌ์ง์ ์ด๊ธฐ ์ฐ๋ฆฌ๊ฐ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ด์ธํธ์ ๋ฐฐํฌํ๊ณ ์ ํ ๋์ ๋ชจ์ต์ ๊ฑฐ์ณ ๊ฐ์ ๋จธ์ -> ์ปจํ ์ด๋๋ก๊น์ง ๋ณํํ๊ธฐ์ ๊ณผ์ ์ ๋๋ค.
- Traditional Deployment
์ด์ ์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ๋ก ๊ตฌ์ฑ๋์ด ์์๊ณ , ๋ชจ๋ ์์ ์ด ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ฐ๋ฐ๋์ด, ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ์์ ์คํํ๋ฉด ๋๋ ๊ตฌ์กฐ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํด๋ผ์ด์ธํธ์ ์๊ตฌ ์ฌํญ์ด ์ ์ ๋ง์์ง๊ณ , ๋ฆฌ์์ค๊ฐ ๋ฐฉ๋ํด์ง๋ฉด์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ ๋ฌผ๋ฆฌ ์๋ฒ์ ๋์ํด์ผ๋ง ํ๋๋ฐ, ๊ทธ๋ฌ๋ฉด์ ์๋ก๊ฐ์ ๋ฆฌ์์ค ์ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. - Virtualized Deployment
ํ ๋ฌผ๋ฆฌ ์๋ฒ์์ ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋ ๊ฒฝ์ฐ, ์์คํ ์ ์์์ ์๋ก๊ฐ ๊ฐ์ง๋ ค๋ ์ ์ ๋ฌธ์ ๋๋ฌธ์ ์๊ฒจ๋ ๊ฒ์ด ๋ฐ๋ก ๊ฐ์ํ ํ๊ฒฝ์ ๋๋ค. ํ๋์จ์ด ์๋ฒ ํ ๋์์ CPU์ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ์์คํ ์์์ ๋ถ๋ฆฌํ์ฌ ์ฌ์ฉํ๊ณ , ํด๋น ๊ณต๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ๋ฆฌ ์์ผ ์์คํ ์์์ ๋ถ๋ฐฐ๋ฅผ ๊ณ ๋ฅด๊ฒ ์งํํ๊ณ , ์ ์ ๋ฌธ์ ๋ฅผ ๋ง์ผ๋ ค๋ ๊ฒ์ด์ฃ .
๋ ์ข์ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ์ ๋ค์ ๊ตฌ์ฑํ ๋๋ง๋ค ์ด์์ฒด์ ๋ฑ์ ์์คํ ์ํํธ์จ์ด๋ฅผ ์๋์ผ๋ก ์ค์นํ ํ์ ์์ด ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ ํํ๋ก ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์๋ค๋ ์ ์ด ์๊ณ , ์๋ฒ ์ด์์ ์ํด ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ๋ฅผ ํ ๋ ๋ ๋ฌ์ผํ๋ ๋น์ฉ์ ํ์คํ๊ฒ ์ ๊ฐ์์ผ์ฃผ๋ ์์๊ฐ ๋ฉ๋๋ค. - Container Deployment
๊ฐ์ํ ๋ฐฐํฌ ๋ฐฉ์์ ํตํ์ฌ ์๋ก ๋ค๋ฅธ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ฆฌ์์ค ๋ถ์์ ๋ง๊ณ , ์๋ฒ์ ๋น์ฉ์ ๋ง์ด ์ค์ด๋ ๋ฐ๋ ํฐ ๋์์ด ๋์์ง๋ง ๊ฐ์ํ๋ผ๋ ๊ธฐ์ ์ ํ๊ณ๊ฐ ์์์ต๋๋ค. ๊ฐ์ํ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ๋ก ํ๊ฒฝ์ ๋๋์ด ์ฐ๋ ๋ฐฉ์์ด ํ๋์จ์ด์ ๋ฆฌ์์ค๋ฅผ ๋ ๋ฆฝ์ํค๋ ๋ฐ ๊น์ง ์์์ ์๋ชจํ๊ธฐ ๋๋ฌธ์ ์์คํ ์ ์ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฌ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฆฌ๋ ์ค ์ง์์ Xen์ด๋ KVM, QEMU๋ฅผ ํฌํจํ์ฌ ์๋์ฐ ์ง์์ Hyper-V ๋ชจ๋ ๊ฐ์ํ ์๋ฃจ์ ์ ๋๋ค. ๊ทธ๋ค ๋ชจ๋ ์์คํ ์ ์์์ ๊ณ ๋ฅด๊ฒ ๋ถ๋ฐฐํ์ง๋ง CPU ๋ฑ์ ์ฃผ์ ์์๋ค์ ๋๋์ง๋ง ๊ทธ๋ค์ ๋ฆฌ์์ค๋ฅผ ํ ๋น ๋ฐ๊ธฐ ์ํด ๋ง์ ์์์ ์๋ชจํฉ๋๋ค.
๊ทธ๋์ ๋ํ๋ ๊ฒ์ด ๋ฐ๋ก ์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐฉ์์ ๋๋ค. ์ปจํ ์ด๋๋ ๊ฐ์ํ ๋ฐฐํฌ ๋ฐฉ์๊ณผ ์ ์ฌํ์ง๋ง ๋ค๋ฅธ ์ ์ ๊ฐ์ํ ๊ธฐ์ ์ ํตํด ์๋ก์ด ๊ฐ์ํฌ ํ๋์จ์ด ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ๋ณด๋จ, ๋ก๋๋ ์ด์์ฒด์ ์์์ ๊ณต์ ํ์ฌ ์๋ก์ด ์ด์์ฒด์ ํ๊ฒฝ์ ๋ง๋ค์ด๋ด๋ ๊ธฐ์ ์ ๋๋ค.
๊ฐ๋จํ์ง๋ง ์ฌ์ธต์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ปจํ ์ด๋์ ์๋ฒ ์ด์ ๋ฐฉ์์ ๋ง๋ค๊ธฐ๊น์ง์ ๊ณผ์ ์ ์ดํด๋ดค์ต๋๋ค. ์ธ๋ฏ ๋ณด๊ธฐ์๋ ๊ฐ์ํ ๋ฐฐํฌ ๋ฐฉ์์์ ์ฑ๋ฅ ์ฐจ์ด ๊ทน๋ณต์ ์ํด์๋ง ์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐฉ์์ด ๋์ ๋ ๊ฒ ๋ฟ์ธ ๋ฏํ๋ฐ, ๊ทธ ์ธ์๋ ๋ค๋ฅธ ์ฅ์ ์ด ์์ ๊ฒ ๊ฐ๋ค์. ์ด๋ ํ ์ข์ ์ ์ด ์์๊น์?
- ์ฌ์ด ์ด๋ฏธ์ง ์์ฑ
๊ฐ์ํ ์๋ฃจ์ ์์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๋จ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ๊ณ ๊ฐ ๋์ด ์๋๋๋ค. ๋ด๊ฐ ์ด๋ค ์ด์์ฒด์ ์ ํ๊ฒฝ์์ ์ด๋ค ์ด์์ฒด์ ์ ์ค์ ์ ๊ฐ์ง๊ณ ํด์ผํ๋์ง ๋ฑ์ ์ ๋ณด๊ฐ ๋ชจ๋ ๋ด๊ฒจ์ ธ ์์ด์ผ ํ๋ฉฐ ์ด๋ ์ํํธ์จ์ด ์์ง๋์ด๊ฐ ๊ฐ์ง ์ญ๋๋ณด๋ค ๋ ๋ง์ ์ญ๋์ ์๊ตฌํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐฉ์์์๋ ์ด๋ฏธ ์ค์น๋ ์ด์์ฒด์ ์ ์์์ ๊ณต์ ํ์ฌ ์๋ก์ด ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ์ ๊ทธ ์ค์ ์ ๋ชจ๋ ๋ฉ์ธ ์ด์์ฒด์ ๋ฅผ ๋ฐ๋ฅด๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์์คํ ์ ์์์ ์ด๋๊น์ง ์ฌ์ฉํ๋ ๊ฒ์ธ์ง๋ฅผ ์กฐ์ ํ๊ฒ ๋๋ ๊ฒ์ด์ฃ .
์ด๋ ๊ฒ ํ๋ฉด ์ํํธ์จ์ด ์์ง๋์ด๊ฐ ๊ฐ์ง ์ํํธ์จ์ด ๊ฐ๋ฐ ๊ธฐ์ ๊ณผ ์ ํด์ง ํ๊ฒฝ ์ค์ ๋ง ๋ง์ถฐ์ฃผ๋ฉด ์ฝ๊ฒ ์ด์ ์๋ฒ ํ ๋๋ฅผ ๋ง๋ค ์ ์๊ฒ ๋ฉ๋๋ค. - ๊ฐ๋ฐ, ํ
์คํธ, ์ด์ ํ๊ฒฝ ์ด๋์๋ ๋๊ฐ์ ํ๊ฒฝ์์ ๋์ํ๋ ์ผ๊ด์ฑ
์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐฉ์์ ์ด๋ค ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ ๋ฉ์ธ ์ด์์ฒด์ ์ ํ๊ฒฝ๋ง ๋ณํ์ง ์๋๋ค๋ฉด, ํด๋ผ์ฐ๋, ๋ฉํฑ, ๋ฐ์คํฌํฑ ์ด๋์๋ ์ง ๋์ผํ๊ฒ ๊ตฌ๋๋๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๊ฐ์ํ ์๋ฃจ์ ์ ๊ฒฝ์ฐ, ์ํํธ์จ์ด ์์ง๋์ด๊ฐ ์ด๋ฅผ ํ ์คํธํด๋ณด๊ธฐ ์ํด ์๋ฃจ์ ๋งค๋์ (Hyper-V ๋ฑ)์ ์ค์นํ๊ณ , ์ด ์ค์ ์ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ปจํ ์ด๋๋ ๋ฉ์ธ ์ด์์ฒด์ ๋ง ๊ฐ๋ค๋ฉด ๊ฐ๋ฐ์์ ์ปดํจํฐ๋ , ์ด์์์ ์๋ฒ์ด๋ ์ด๋ ๊ณณ์์๋ ์ง ๊ฐ์ ํ๊ฒฝ์ ๋์์ง๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ ์ ํต์ ์ธ ๋ฐฐํฌ์ ๊ฐ์ํ๊ฒฝ์์์ ๋ฐฐํฌ์ฒ๋ผ ์๋ฒ์ ์ค์ ์ด ๋ฌ๋ผ์ ธ์ ์๊ธฐ๋ ์ด์๋ฅผ ๋ํญ ์ค์ผ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. - ๋์จํ ์ด์์ด ๊ฐ๋ฅํ ๋ง์ดํฌ๋ก์๋น์ค
๋ง์ดํฌ๋ก์๋น์ค๋ ๊ฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง๋ณ๋ก ๊ฐ๋ฐ/์ด์ํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ๊ฐ์ ์๋น์ค๋ฅผ ๋น์ฆ๋์ค ๋ก์ง๋ณ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ๋ฐฐํฌ ๋จ์๊ฐ ๋ ๋ง์์ง๊ฒ ๋๋๋ฐ์. ์ปจํ ์ด๋ ๋ฐฉ์์ ๊ฐ์ํ์ ๋นํด ๋ฐฐํฌ ์๋๊ฐ ๋น ๋ฅด๊ณ , ๊ตฌ์ฑ์ด ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ๋ง์ดํฌ๋ก์๋น์ค์ ์์ด ์ ํฉํ ์๋ฃจ์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
Container Orchestration Tool์ด ํ์ํ ์ด์
์ฐ๋ฆฌ๊ฐ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์์์ ๋ดค๋ ๊ฒ์ฒ๋ผ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ์ด์ํ๊ธฐ ์ํจ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ฐ์ ์ธ ํํ์ด์ง์ ๊ฒฝ์ฐ ํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ค๋ฉด, ์ด์์ฒด์ ์์ ์ ๊ณตํ๋ ํ์ผ ์์คํ ๊ณผ ์น ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ง๋ง ํ๋์ ์๋น์ค๋ ํ์ผ ์์คํ ๋ณด๋ค๋ ๋ ๊ด๋ฆฌ๊ฐ ์ฝ๊ณ , ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ํ ์ ์๋ ์ํํธ์จ์ด(๋ฏธ๋ค์จ์ด)๊ฐ ํ์ํ๊ณ , ์ด๋ค ๋ํ ์ญ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋ ์ด๋ฏธ์ง ํ๋๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ๋ง์ผ๋ก๋ ํ๋์ ์๋น์ค๊ฐ ๋ง๋ค์ด์ง์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ณตํฉ ๊ตฌ์ฑ์ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํด์ด ํ์ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ปจํ ์ด๋ ๋งค๋์ ๋ง์ด ์กด์ฌํ ๊ฒฝ์ฐ, ์์ฃผ ์ฌ์ฉํ๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋ ๋งค๋์ ๊ฐ ๋ณด๊ดํด๋๋ค๊ฐ ํ์ํ๋ฉด ๊บผ๋ด ์ฐ๋ ๋ฐฉ์์ผ๋ก ๋จ์ผ ์๋น์ค๋ฅผ ๋ง๋ค์ด๋ผ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ๋ง์์ง๊ณ , ์ด์ ๋ฐ๋ผ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฑ์ ์ํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์? ์ปจํ ์ด๋ ๋งค๋์ ๋ฅผ ํตํด ๋ด๋ถ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๊ณ , ๊ฐ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๊ตฌ์ถํ๋ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์์ ์ ํด์ค์ผ ํ๋๋ฐ, ์ด๋ค์ ๊ตฌ์ฑํ๊ณ , ๋ค์์ ์ฌ๊ตฌ์ฑํ๋ ค๋ฉด ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ๋ ํฌ๊ฒ ์ฃ ?
Orchestration tool์ ์ด๋ฌํ ์ผ๋ จ์ ๊ณผ์ ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ๋์์ค๋๋ค. ์์ ๊ทธ๋ฆผ์ Orchestration tool์ Kubernetes๋ก ์ฌ์ฉํ์ ๋์ ๋ชจ์ต์ ๋๋ค. ํ ์๋น์ค ๋จ์๋ฅผ Deployment๋ก ์ก๊ณ , ์ธ์คํด์ค์ ๋จ์๋ฅผ Worker ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ์ปจํ ์ด๋ ๋จ์๋ฅผ Pod๋ผ๊ณ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Kubernetes 2๋ฒ์งธ ์ด์ผ๊ธฐ์์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ ์๋น์ค์ Deployment ๊ตฌ์ฑ์ ์ด๋ฏธ์งํํ๊ณ , ์๋น์ค๋ฅผ ์คํ์์ ํด๋น ํ์ผ์ ์ฝ์ด ์ปจํ ์ด๋ ์์ง์์ ์๋์ผ๋ก ์์ฑํ ์ ์๋๋ก ๊ตฌ์ฑํ์ฌ ๋ณต์กํ๊ณ ๋ง์ ๋ฆฌ์์ค๋ก ๋ถํ ๋ ์๋น์ค ํ๋๋ฅผ ์คํํ ๋๋ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ค๋๋ค.
Kubernetes
์ฟ ๋ฒ๋คํฐ์ค๋ ์ด๋ฌํ ์ปจํ ์ด๋์ ์ด์์ ์ํํ ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง Container Orchestration tool ์ ๋๋ค. ์ปจํ ์ด๋์ ์ญ์ฌ๋ ์ด์ ๋ถํฐ ๊ณ์ ๋์์ง๋ง ํ์ฑํ๊ฐ ๋ ๊ฒ์ ์์ฃผ ์ต๊ทผ์ด๋ฉฐ, ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ ๋ํ ์ฟ ๋ฒ๋คํฐ์ค ์ด์ธ์๋ Docker Swarm ๋ฑ ๋ค์ํ๊ฒ ์กด์ฌํด์์ต๋๋ค.
Kubernetes๋ ๋ค๋ฅธ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ์ ๋นํด ๊ธฐ๋ฅ์ด ๊ต์ฅํ ๋ง์ต๋๋ค. ํนํ ์ ๊ฒฝํ์ ์์ด์๋ ๋ง์ดํฌ๋ก์๋น์ค์ ์ ํฉํ ๋๊ตฌ๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ ์ ๋๋ก ๊ทธ ๊ธฐ๋ฅ์ด ๊ต์ฅํ ๋ง์ผ๋ฉฐ ์ต๊ทผ์๋ AWS, Google Cloud Platform, Azure ๋ฑ ๋ค์ํ ํด๋ผ์ฐ๋ ํ๋ซํผ์์๋ ์ง์ํ์ฌ ์ด์์ฑ์ด ๊ต์ฅํ ๋์ต๋๋ค.
Kubernetes์์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ํ๊ธฐ ์ํ ๋ชจ๋ ์์๋ค์ด ํฌํจ๋์ด ์์ต๋๋ค. ์๋น์ค ์ด์ฉ์ ์ํด ๋๋ฉ์ธ ๋ค์์ ์ค์ ํ ๋๋ ์ผ๋ฐ ์ปจํ ์ด๋์์ ์ด์ํ๋ค๋ฉด ๋ณ๋์ nginx ์น ์๋ฒ์์ ์ ๊ณตํ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์, ๊ฐ์ ํธ์คํธ๋ฅผ ์ค์ ํด์ผ ํ์ง๋ง Kubernetes์์๋ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์น ์๋ฒ๋ ํ๋ก์๋ฅผ ๋ณ๋๋ก ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค์์๋ ๋น์ฆ๋์ค ๋ก์ง๋ณ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ๋๋ฌธ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํ๋ค๋ฉด, ๊ฐ๊ฐ์ ์ปจํ ์ด๋๊ฐ ์ด๋ค ์๋น์ค์ธ์ง ์์์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก Service Discovery์ ๋๋ค. Spring Cloud์์๋ ์ด๋ฌํ Service Discovery๋ก Hystrix๋ฅผ ์ ๊ณตํฉ๋๋ค.
Kubernetes์์๋ Service Discovery ๋ํ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. Spring Cloud๊ฐ Java ํ๊ฒฝ์ ์ข ์์ ์ด๋ผ๋ฉด, Kubernetes๋ ์ด๋ค ์ธ์ด, ํ๋ซํผ์ด๋ ์ข ์๋ฐ์ง ์๋๋ค๋ ๊ฒ์ด ๋งค๋ ฅ์ธ ๊ฒ์ด์ฃ .
์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํจ์ ์์ด ํนํ DB๋ฅผ ์ฌ์ฉํ ๋ Persistence Layer ๋ถ๋ถ์ ์ ๊ฒฝ์จ์ผ ํด์ค์ผ ํฉ๋๋ค. ๋จ์ผ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ ๋๋ Volume์ ๋ณ๋๋ก ๋ง๋ค์ด ์๊ตฌ ์ ์ฅ์๋ฅผ ๋ณ๊ฐ๋ก ๋ง๋ค์์ง์.
Kubernetes ๋ํ ๋ก์ปฌ ์ ์ฅ์ ํน์ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์์ ์ ๊ณตํ๋ ์ ์ฅ์์ฒ๋ผ ์ํ๋ Persistence Layer๋ฅผ ๊ตฌ์ถํ๊ณ , ์ด๋ฅผ ์ฝ๊ฒ ๋ง์ดํธ ํ ์ ์์ต๋๋ค. ์ปจํ ์ด๋๊ฐ ์๋ฉธ๋๋๋ผ๋ ๋ณ๋์ ๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ค๋ฉด ์๊ตฌ ์ ์ฅํ ์ ์๋ค๋ ์ ์ด ๋งค๋ ฅ์ด๋ฉฐ ํนํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ DB ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ ํ ๊ฒฝ์ฐ, ๋งค๋ฒ DB๋ฅผ Unmountํ๊ณ , ๋ค์ ์ฌ๋ง์ดํธํด์ผ ํ๋ ๋ถํธํจ์ ๋์ด์ค๋๋ค.
๋ง์น๋ฉฐ...
์ฌ๊ธฐ๊น์ง ์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐฉ์์ผ๋ก ์๋น์ค๋ฅผ ์ด์ํ๊ณ ๋ฐฐํฌํ๋ ๊ฒ๋ถํฐ ์์ํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ํด ๊ฐ๋จํ ์ดํด๋ดค์ต๋๋ค. ์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐฉ์์ ์ค๋ช ํ๋ฉด์ ์ฐ๋ฆฌ๊ฐ ์ Docker๋ฅผ ์ฌ์ฉํด์ผ๋ง ํ๋์ง, ๊ทธ๋ฆฌ๊ณ Docker๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ ์ด ์์ ์ Kubernetes๊ฐ ์ ํ๋๊ฐ ๋๊ณ ์๋์ง๋ฅผ ์ด์ผ๊ธฐ ํด๋ณด๊ธฐ ์ํด ์ด ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค.
Kubernetes๋ฅผ ํ์ฌ์์ ์ฌ์ฉํ๊ฒ ๋๋ฉด์ MSA์ ๋ํด ์ ์ ๊ณต๋ถ๋ฅผ ํ๊ณ ์ฌ์ฉํ๋ ๊ฒฝํ์ด ์์๋ ๊ฒ์ด ๊ต์ฅํ ๋์์ด ๋ง์ด ๋์์ต๋๋ค. Kubernetes์ ๋๋ถ๋ถ์ ์ปดํฌ๋ํธ๋ค์ ๋ง์ดํฌ๋ก์๋น์ค์ ๊ด๋ จ์ด ๊น์๊ณ , ์ฐ๋ฆฌ๊ฐ ํ์ ์ธํ๋ผ ํ๊ฒฝ์์ ๋ง์ด ๋ถํธํ๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ถ์ ์ฝ๊ฒ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํ ๋ถ๋ถ์ด ๋ง์ด ๋์ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ Kubernetes๋ ์ฌ์ ํ ๊ทธ ๊ธฐ๋ฅ์ด ๋ฐฉ๋ํ๊ณ ๋ณต์กํฉ๋๋ค. ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ค ์ฌ์ฉํด๋ณด๊ณ ์ํํด๋ณด๋ ค๋ฉด ๋ง์ ์๋น์ค๋ฅผ ๋ฐฐํฌํด๋ด์ผ ํ๊ณ , ํนํ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ๋ํ ์ดํด๊ฐ ํ์คํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ ํ์ํ์ง, ์ฐ๋ฆฌ ์๋น์ค์ ์ ํฉํ์ง๋ฅผ ๊ฒํ ํด๋ณด๋ ๊ฒ๋ ํ๋์ ์ญ๋์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ค์ ํฌ์คํธ์์๋ Kubernetes์ ์ฃผ์ ์ปดํฌ๋ํธ๋ค์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'Infrastructure > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes] 4. Minikube๋ก ์์ํ๋ kubernetes (0) | 2020.11.21 |
---|---|
[Kubernetes] 3. Controller๋ก ๋ ๋์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ (0) | 2020.11.18 |
[Kubernetes] 2. Kubernetes ๊ธฐ๋ณธ ๊ตฌ์ฑ๊ณผ ๊ฐ์ฒด(object) (0) | 2020.11.14 |