Docker
์ปจํ
์ด๋๋ ๋ฌด์์ธ๊ฐ
๋ชจ๋ํ ๋๊ณ ๊ฒฉ๋ฆฌ๋ ์ปดํจํ ๊ณต๊ฐ, ์ปดํจํ ํ๊ฒฝ์ ์๋ฏธํ๋ฉฐ, ๋ฎ์ ์์คํ ํ๊ฒฝ ์์กด์ฑ์ ๊ฐ์ง๋ค.
์ปจํ
์ด๋ ํน์ง
๊ฒฉ๋ฆฌ(isolation)
ํ๋ก์ธ์ค ์์ฒด๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ์คํ ์์ ์ฑ์ด ๋ณด์ฅ๋๋ค.
์ํธ ๊ฐ์ญ์ ์์จ ์ ์๋ค.
๋
๋ฆฝ(independent)
๊ฒ์คํธOS(Guest OS)๊ฐ Container์ ํฌํจ๋์ง ์๊ธฐ ๋๋ฌธ์, ๊ตฌ๋ ๋ฐฉ๋ฒ์ด ๊ฐ๋จํ๋ค.
๊ฒ์คํธOS๋ก ๋ฐ์ํ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ ์ค์ผ ์ ์๋ค.
์ค์ผ์ผ๋ง(scaling)
์์์ ๋ง์ถฐ ์ค์ผ์ผ๋ง์ ๊ฐ๋จํ ํ ์ ์๋ค.
๋น์ฆ๋์ค๊ฐ ์๊ตฌํ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋จํ ์ ์ฉํ ์ ์๋ค.
๋ฐ๋๋ก ์ด์ ๋ฐ์ ์ ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑ๋ ์ ์ํ ๊ฐ๋ฅํ๋ค
์ปจํ
์ด๋ vs Virtual Machine
Virtual Machine
๊ธฐ์กด ๊ฐ์ํ์์๋ ๊ฐ๊ฐ์ ๊ฐ์ํ์ ๊ฒ์คํธ OS ๊ฐ ๋ค์ด๊ฐ๊ณ ์ด๋ฅผ ์ค๊ฐ ๊ด๋ฆฌํ๋ ํ์ดํผ๋ฐ์ด์ (Hypervisor)๊ฐ ์กด์ฌํ๋ค. ์ด๋ ๊ฐ ๊ฐ์๋จธ์ ์ ์๋ฒฝํ ๊ฒฉ๋ฆฌ๋ฅผ ๋ณด์ฅํ์ง๋ง, ๊ฐ์๋จธ์ ์ ์ฉ๋ ์ฆ๊ฐ, ๊ฒ์คํธOS์ ์์ํ์ํ๋ค. ์ด๋ฅผ โํ๋์จ์ด ์์ค์ ๊ฐ์ํโ ๋ผ๊ณ ํ๋ค. ์คํ์ค์ธ ๊ฐ์๋จธ์ ๋ค์ด ๋ชจ๋ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํตํด ๋์คํฌ ์ฝ๊ธฐ/์ฐ๊ธฐ ์์ ์ ํ๊ธฐ ๋๋ฌธ์ ๋ณ๋ชฉํ์์ด ๋ฐ์
Container ๋ฐฉ์
ํ์ดํผ๋ฐ์ด์ , ๊ฒ์คํธOS๋ฅผ ์์ ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋๋ฐ ํ์ํ ๊ฒ๋ค๋ง ๊ฐ์ํ ํ๊ธฐ ๋๋ฌธ์ ์ฉ๋์ด ์ ๋ค. ์ด๋ฅผ โ์ด์์ฒด์ ์์ค์ ๊ฐ์ํโ ๋ผ๊ณ ํ๋ค.
๊ฒฝ๋ํ๋ ์ปจํ
์ด๋๊ฐ ์ป๋ ์ด์
๋ ๋ง์ ์์ฉํ๋ก๊ทธ๋จ ์คํ์ด ๊ฐ๋ฅํ๋ค.
๊ธฐ์กด์ VM ๋ฐฉ์์ ๊ฒ์คํธ OS๊น์ง ๊ฐ์๋จธ์ ์ ํฌํจ์์ผฐ๊ธฐ ๋๋ฌธ์, ๋์์ ์ฌ๋ฌ๊ฐ์ ๊ฐ์๋จธ์ ์ ์คํํ๋๋ฐ ํ๊ณ๊ฐ ์กด์ฌํ์๋ค. ํ์ง๋ง Container๋ฐฉ์์ ๊ฒ์คํธ OS์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ ์ธํ๋ฏ๋ก์จ ์คํ์ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ณ , ์ด๋ ๋์์ ์ฌ๋ฌ๊ฐ์ ์๋น์ค๋ฅผ ๋์์ด ๊ฐ๋ฅํ๊ฒ ํ์๋ค.
๊ตฌ๋๋ฐฉ์์ด ๊ฐ๋จํ๋ค.
Container๋ ์คํ์ ํ์ํ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ค์ด ํจํค์งํ ๋์ด ์์ด์, ์คํํ๋ ๊ฒ์ผ๋ก ๊ตฌ๋ํ ์ ์์ง๋ง VM ๋ฐฉ์์ ์๋ก์ด VM์ ์คํํ๊ณ ํด๋น VM์์ ์คํ์์์ ํ ๋นํ ๋ค์ ๊ฒ์คํธOS๋ฅผ ๋ถํ ํ ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํด์ผ ํ๋ค.
๋์ปค๋ ๋ฌด์์ธ๊ฐ
Container ๊ธฐ๋ฐ์ ๊ฐ์ํ ์ํํธ์จ์ด ์ค ํ๋์ด๋ค.
๋ฆฌ๋ ์ค์ ์์ฉ ํ๋ก๊ทธ๋จ๋ค์ ์ํํธ์จ์ด ์ปจํ ์ด๋ ์์ ๋ฐฐ์น์ํค๋ ์ผ์ ์๋ํ ํ๋ ์คํ ์์ค ํ๋ก์ ํธโ์ด๋ค.
๊ธฐ์กด LXC(LinuX Container) ๊ธฐ์ ์ ์ด์์ฑ์ ํฅ์์ํค๊ณ ๋ฐ์ดํฐ์ ์ฝ๋์ ๋ถ์ฐ๋ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ก๋ค.
Image ๊ธฐ๋ฐ์ Container
์ด๋ฏธ์ง : Container ์คํ์ ํ์ํ ํ์ผ, ์ค์ ๊ฐ๋ค์ ๋ฏธ๋ฆฌ ์ ์
๊ฐ์ ์ด๋ฏธ์ง์์ ๋ค์์ Container ์์ฑ ๊ฐ๋ฅํ๋ค
๊ฐ์ ์ด๋ฏธ์ง์์ ๋ค์์ ์ปจํ ์ด๋๊ฐ ์คํ ๊ฐ๋ฅํ๋ฉฐ, ์ปจํ ์ด๋์ ์ํ๊ฐ ๋ฐ๋๊ฑฐ๋ ์ญ์ ๋๋๋ผ๋ ์ด๋ฏธ์ง๋ ๊ทธ๋๋ก ๋จ์์๊ฒ ๋๋ค.
์ถ๊ฐ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋ ๊ฐ์ ์ปจํ ์ด๋์ ์ ์ฅ๋๊ณ , ์ด๋ฏธ์ง์ ์๋ณธ์ ๋ณด์กด๋๋ค.
์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋๊ตฌ๋ฅผ ํตํด์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ์ฌ ์คํํ๋ค.
์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
์?
Container์ ๊ด๋ฆฌ ๋๊ตฌ์ ํ์์ฑ
Container ๊ฒฝ๋ํ๋ก ๊ด๋ฆฌ, ์ด์์ ์ด๋ ค์ ์ฆ๊ฐ๋์๋ค.
์์ฑ, ์๋ฉธ, ์์๊ณผ ์ค๋จ ์์ ์ ์ด, ์ค์ผ์ค๋ง, ๋ก๋ ๋ฐธ๋ฐ์ฑ, ํด๋ฌ์คํฐ๋ง ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ํ์ํ์๋ค.
Container Orchestration ์ ๊ณต๊ธฐ๋ฅ
Service discovery
์๋น์ค ํ์ ๊ธฐ๋ฅ์ผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ปจํ ์ด๋์ ์์ฑ๊ณผ ๋ฐฐ์น ์ด๋ ์ฌ๋ถ๋ฅผ ์ ์ ์๊ธฐ์ IP, Port ์ ๋ณด ์ ๋ฐ์ดํธ ๋ฐ ๊ด๋ฆฌ๋ฅผ ํตํด ์๋น์ค๋ฅผ ์ง์ํ๋ค.
Scaling
Load Balancing : ์์ฑ๋ ์ปจํ ์ด๋์ ์ปดํจํ ์์ ์ฌ์ฉ๋์ ์ค์ ๋ฐ ์๋ ๋ฐฐ๋ถ์ด ๊ฐ๋ฅํ๋ค
Scheduling : ๋์ด๋ ์ปจํ ์ด๋๋ฅผ ์ ํฉํ ์๋ฒ์ ๋๋์ด ๋ฐฐํฌํ๊ณ , ์๋ฒ๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ ์คํ ์ค์ด๋ ์ปจํ ์ด๋๋ฅผ ๋ค๋ฅธ ์๋ฒ์์ ๊ตฌ๋ ์ํฌ ์ ์๋ค.
Clustering
์ฌ๋ฌ ๊ฐ์ ์๋ฒ๋ฅผ ๋ฌถ์ด ํ๋์ ์๋ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ๊ฑฐ๋, ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ฌ๋ ์๋ฒ๋ฅผ ์ฐ๊ฒฐ ์์ผ์ค๋ค.
Logging/Monitoring
์ฌ๋ฌ ๊ฐ์ ์๋ฒ๋ฅผ ๋์์ ๊ด๋ฆฌํ ๊ฒฝ์ฐ ํ ๊ณณ์์ ์๋ฒ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ง ํ๊ณ ๋ก๊ทธ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋์ปค ์ค์ผ์คํธ๋ ์ด์
๋น๊ต
Docker Swam
Docker์์ ์ถ์ํ์๋ค.
Docker ์ปจํ ์ด๋ ์ฉ Docker ๊ณ ์ ์ค์ผ์คํธ๋ ์ด์ ์ด๋ค.
Docker native api ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ค์น ๋๋ ์ค์ ์ด ๋งค์ฐ ๊ฐ๋จํ๋ค.
์ฝ๊ฐ ๋ถ์์ ํ๊ณ , ์์ง๋ ํ๋ฐํ๊ฒ ๋ฆด๋ฆฌ์ฆ ์ค์ด๋ค.
K8S
๊ตฌ๊ธ์์ ๋ง๋ ์ค์ผ์คํธ๋ ์ด์ ์ด๋ค.
์ค์ ์ด ์กฐ๊ธ ๋ณต์กํ๋, yaml ํ์ผ์ ํ์ฉํ์ฌ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์๋น์ค๋ฅผ ์ ์ํ ์ ์๋ค.
๋งค์ฐ ์์ ์ ์ด๊ณ ์ค์ผ์ค๋ง์ ํตํ ๋ฐฐํฌ ๊ด๋ฆฌ์ ์ ํฉํ๋ค.
Memos
์๊ท๋ชจ์ผ ๊ฒฝ์ฐ ์ค์น์ ์ค์ ์ด ๊ฐํธํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ง ์๋ก ์ฐ์ ์ฐ์ฐ์ด ๋ณต์กํ๋ค.
JSON ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ค์ํ ์ค์ ํ์ผ์ ์ ์ํ ์ ์๋ค.
๋งค์ฐ ์์ ์ ์ด์ด์ ํฐ ๊ท๋ชจ์ ํด๋ฌ์คํฐ์๋ ์ ํฉํ๋ค.
์ฐธ๊ณ
Last updated