๐ข Kubernetes (K8s) ์ดํดํ๊ธฐ
๐ก ์ฟ ๋ฒ๋คํฐ์ค๋?
์ปจํ ์ด๋ํ๋ ์ํฌ๋ก๋์ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ์์ค ํ๋ซํผ
์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ๋จผ์ Docker(์ปจํ ์ด๋)์ ๊ฐ๋ ์ ์์์ผ ํฉ๋๋ค.
๐ณ Docker์ ์ดํด
Docker๋?
์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ ๋จ์๋ก ํจํค์ง(์ด๋ฏธ์งํ)ํด์ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์ํ ํ๋ซํผ์ ๋๋ค.
์ฃผ์ ํน์ง
-
OS ๋ ๋ฆฝ์ฑ ๐ฆ
- ๊ธฐ์กด: ๊ฐ OS๋ณ ๋ณ๋ ํจํค์ง ํ์ (RedHat, Ubuntu, Windows ๋ฑ)
- Docker: OS ์ข ์์ฑ ํด๊ฒฐ, ์ปจํ ์ด๋ ๋จ์ ์คํ ๊ฐ๋ฅ
-
์์คํ ์๊ตฌ์ฌํญ ๐ง
- Web/App Applications
- Database (MySQL, Oracle)
- ์บ์ ์๋ฒ (Redis) ๋ฑ ๋ค์ํ ์๋น์ค๋ฅผ ์ปจํ ์ด๋ํ ๊ฐ๋ฅ
Docker ์ํคํ ์ฒ
โ๏ธ ์ฟ ๋ฒ๋คํฐ์ค์ ๋งค์ปค๋์ฆ
ํด๋ฌ์คํฐ ๊ตฌ์กฐ
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ง์คํฐ ๋ ธ๋๋ ํด๋ฌ์คํฐ ์ ์ด๋ฅผ ๋ด๋นํ๋ฉฐ, API ์๋ฒ, ์ปจํธ๋กค๋ฌ ๋งค๋์ , ์ค์ผ์ค๋ฌ, etcd๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์์ปค ๋ ธ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๋ ธ๋๋ก, Kubelet, Kube-Proxy, ์ปจํ ์ด๋ ๋ฐํ์์ ํฌํจํฉ๋๋ค.
- ๋ง์คํฐ ๋
ธ๋: ํด๋ฌ์คํฐ์ ์ ์ด ํ๋ฉด์ ๋ด๋นํฉ๋๋ค.
- API ์๋ฒ: ํด๋ฌ์คํฐ์ ๋ชจ๋ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ ๋งค๋์ : ํด๋ฌ์คํฐ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ์ค์ผ์ค๋ฌ: ์์ปค ๋ ธ๋์ POD๋ฅผ ํ ๋นํฉ๋๋ค.
- etcd: ํด๋ฌ์คํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํค-๊ฐ ์ ์ฅ์์ ๋๋ค.
- ์์ปค ๋
ธ๋: ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋๋ ๋
ธ๋์
๋๋ค.
- Kubelet: ๊ฐ ๋ ธ๋์์ POD์ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- Kube-Proxy: ๋คํธ์ํฌ ํ๋ก์์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ปจํ ์ด๋ ๋ฐํ์: ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ์ํํธ์จ์ด์ ๋๋ค.
๐ก POD: ์ฟ ๋ฒ๋คํฐ์ค์์ ๊ฐ์ฅ ์์ ๋ฐฐํฌ ๋จ์๋ก, 1:N ๊ฐ๋ ์ ์ปจํ ์ด๋๋ ๊ฐ๋ฅํ๋ค.
์คํ ์ค์ผ์ผ๋ง
์คํ ์ค์ผ์ผ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์กฐ์ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- Horizontal Pod Autoscaler (HPA): CPU ์ฌ์ฉ๋ ๋ฑ ๋ฉํธ๋ฆญ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋์ ์๋ฅผ ์๋์ผ๋ก ์กฐ์ ํฉ๋๋ค.
- Vertical Pod Autoscaler (VPA): ํ๋์ ํ ๋น๋ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ์กฐ์ ํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
๋กค๋ง ์ ๋ฐ์ดํธ์ ๋กค๋ฐฑ (์ดํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ์ ๋ต)
๋กค๋ง ์ ๋ฐ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ๋ฒ์ ์ ์ ์ง์ ์ผ๋ก ๋ฐฐํฌํ์ฌ ๋ค์ดํ์ ์์ด ์ ๋ฐ์ดํธ๋ฅผ ์งํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธฐ์กด ํ๋๋ฅผ ํ๋์ฉ ์๋ก์ด ๋ฒ์ ์ผ๋ก ๊ต์ฒดํ์ฌ ์๋น์ค ์ค๋จ์ ์ต์ํํฉ๋๋ค.
๋กค๋ฐฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆฌ๋ ์์ ์ ๋๋ค. ๋กค๋ง ์ ๋ฐ์ดํธ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ๋กค๋ฐฑํ์ฌ ์์ ์ ์ธ ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
ํ๋ก๋์ ์์ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- Canary Deployment: ์๋ก์ด ๋ฒ์ ์ ์ผ๋ถ ์ฌ์ฉ์์๊ฒ๋ง ๋ฐฐํฌํ์ฌ ๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ๊ณ ํด๊ฒฐํฉ๋๋ค.
- Blue-Green Deployment: ๋ ๊ฐ์ ํ๊ฒฝ(Blue์ Green)์ ์ฌ์ฉํ์ฌ ์๋ก์ด ๋ฒ์ ์ ๋ฐฐํฌํ๊ณ ํ ์คํธํ ํ, ํธ๋ํฝ์ ์๋ก์ด ๋ฒ์ ์ผ๋ก ์ ํํฉ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ์ด๋ฌํ ๋งค์ปค๋์ฆ์ ํตํด ๋๊ท๋ชจ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ ์ ์๊ณ , ์ด๋ฏธ ํด๋น ์ํคํ ์ฒ๋ฅผ ๋ง์ ๋๋ฉ์ธ์์ ์ฑํํ๊ณ ์๋ค.
๐ ์ฟ ๋ฒ๋คํฐ์ค์ ํ์์ฑ
- ์๋ง์ Docker ์ปจํ ์ด๋๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
- ๋๊ท๋ชจ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๊ฐ๋ฅ
- ์ ๊ณ์์๋ ์ฃผ๋ก โK8sโ๋ก ๋ถ๋ฆผ
๐ก K8s: Kubernetes์ ์ฝ์ (K + 8๊ธ์ + s)