Docker
Kubernetes
์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ Docker๋ Go ์ธ์ด๋ก ์์ฑ๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ผ๋กํ๋ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ์ด๋ค. ์๋์ ๊ฐ์ ํ๋ซํผ๋ค์์ ์๋ ๊ฐ๋ฅํ๋ค.
- Linux
- Ubuntu
- CentOS
- Debian
- Cloud
- Azure
- AWS
- Windows10
- MacOS ๋ฑ๋ฑ
- ํ๋์ ๋ฌผ๋ฆฌ ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฏธ๋ค์จ์ด ๋ฒ์ ์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์
- Virtual Box, VMWare, Parallels์ ๊ฐ์ ์ํํธ์จ์ด
- ํธ์คํธ OS์จ์ด ๊ฐ์ํ ์ํํธ์จ์ด๋ฅผ ์ค์นํด์ ๊ฐ์ํ๊ฒฝ ๊ตฌ์ถ
- Hyper-v, XenServer, ESXI Server ๋ฑ์ด ์๋ค.
- Host OS ์์ด ํ๋์จ์ด์ ์ง์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ค์น
- ํ๋์จ์ด๊ฐ ์ ์ด
- ์ค๋ฒํค๋๊ฐ ๋น๊ต์ ์ ๋ค
- ๊ฐ์ ๋จธ์ ๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ฝ์์ด ํ์
- Docker, containerd, CRI-O ๋ฑ์ด ์ปจํ ์ด๋ ๋ฐํ์์ผ๋ก ์์
- Guest OS๊ฐ ์๊ณ Host OS์ ์ปค๋์ ๊ณต์ ํ์ฌ ์ค๋ฒํค๋๊ฐ ์ ๊ณ ๊ฐ๋ฒผ์ ๋น ๋ฅด๋ค
- ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋๋ค.
๊ฐ์ํ ๊ธฐ์ ๊ณผ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๋น์ทํ๋ฉด์๋ ๋ค๋ฅด๊ณ ์ด๋ ํ๋๊ฐ ๋ ์ข๋ค๋ ๊ฒ์ ์๊ณ ๊ฐ๊ฐ์ ๋ชฉ์ ์ ๋ง๊ฒ ์๋ก ๋ค๋ฅธ ์์ญ์์ ์ฌ์ฉ๋๊ณ ์๋ค.
์ปดํจํฐ์ ์ฑ๋ฅ์ ๋์ฑ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ํ ๊ธฐ์ ์ด ๋ง์ด ๋ฑ์ฅํ์๋ค. ์๋ฒ ๊ด๋ฆฌ์ ์ ์ฅ์์ CPU ์ฌ์ฉ๋ฅ ์ด 10%๋ ๋ฐ์ ๋์ง ์๋ ํ์ฉ๋๊ฐ ๋ฎ์ ์๋ฒ๋ค์ ๋ฆฌ์์ค ๋ญ๋น์ผ ์๋ฐ์ ์๋ค. ๊ทธ๋์ ์์ ์ฑ์ ๋์ด๋ฉฐ ๋ฆฌ์์ค๋ ์ต๋ํ ํ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ํ๋๊ฒ ์๋ฒ ๊ฐ์ํ์ด๋ค. ๋ํ์ ์ธ ๊ฐ์ํ ํ๋ซํผ์ผ๋ก๋ VM์ด ์๋ค. VM์ OS ๊ฐ์ํ์ธ๋ฐ ๊ทธ๋ฌ๋ฉด ์ปจํ ์ด๋๋ฅผ ํตํด์ ๊ฐ์ํํ๋ docker์ ์ปจํ ์ด๋๋ ๋ฌด์์ธ์ง ์์๋ณด์.
์ปจํ ์ด๋๋ ๊ฐ์ํ ๊ธฐ์ ์ค ํ๋๋ก ๋ํ์ ์ผ๋ก LXC(Linux Container)๊ฐ ์๋ค. ๊ธฐ์กด OS๋ฅผ ๊ฐ์ํ ์ํค๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ์ปจํ ์ด๋๋ OS๋ ๋ฒจ์ ๊ฐ์ํ๋ก ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌ์์ผ ๋์ํ๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ์ฆ ์ปจํ ์ด๋๋ HOST OS ์์์ ๋ฆฌ์์ค๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ๋ถํ์ฌ ๋ง์น ๋ณ๋์ ์๋ฒ์ธ ๊ฒ ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒํ๋ ๊ธฐ์ ์ด๋ค. ํ ์๋ฒ์ ์ฌ๋ฌ OS๋ฅผ ๊ฐ์ํํ์ฌ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ปจํ ์ด๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌ์์ผ ๋์ํ๋ ๋ฐฉ๋ฒ์ ์ด๋ ํ ์ฐจ์ด์ ์ด ์์๊น?
์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฏธ๋ค์จ์ด์ ๋ฒ์ ์ ๋ํ ์ถฉ๋์ ํํผ
- ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ด ์ข๋ค.
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๊ทธ๋๋ก ์์กด์ฑ ์์ด ๋ค๋ฅธ ํ๊ฒฝ์์ ์คํ ๊ฐ๋ฅ
- ์ปจํ ์ด๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์คํํด์ ์ด์คํ ๊ฐ๋ฅ
- ๋ค์ํ ์ด์ ํ๊ฒฝ์ ์ง์ํ ์ ์๋ค.
- Windows ํ๊ฒฝ์์ linux๋ฅผ ์คํํ๊ฑฐ๋ ๊ทธ ๋ฐ๋๋ ๊ฐ๋ฅ
์ปจํ ์ด๋ ์คํ์ ํ์ํ ํ์ผ๊ณผ ์ค์ ๊ฐ ๋ฑ์ ํฌํจํ๊ณ ์๋ ๊ฒ์ผ๋ก ์ํ๊ฐ์ ๊ฐ์ง์ง ์๊ณ ๋ณํ์ง ์๋๋ค.(Immutable)
์ปจํ ์ด๋๋ ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ํ๋ผ๊ณ ๋ณผ ์ ์๊ณ ์ถ๊ฐ๋๊ฑฐ๋ ๋ณํ๋ ๊ฐ์ ์ปจํ ์ด๋์ ์ ์ฅ๋๋ค. ๊ฐ์ ์ด๋ฏธ์ง์์ ์ฌ๋ฌ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ ์ ์๊ณ ์ปจํ ์ด๋์ ์ํ๊ฐ ๋ฐ๋๊ฑฐ๋ ์ปจํ ์ด๋๊ฐ ์ญ์ ๋๋๋ผ๋ ์ด๋ฏธ์ง๋ ๋ณํ์ง ์๊ณ ๊ทธ๋๋ก ๋จ์์๋ค. ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ์์กด์ฑ ํ์ผ์ ์ปดํ์ผํ๊ณ ์ด๊ฒ์ ๊ฒ ์ค์นํ ํ์๊ฐ ์๋ค. ์ด์ ์๋ก์ด ์๋ฒ๊ฐ ์ถ๊ฐ๋๋ฉด ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ ์ด๋ฏธ์ง๋ฅด ๋ค์ด ๋ฐ๊ณ ์ปจํ ์ด๋๋ฅผ ์์ฑ๋ง ํ๋ฉด ๋๋ค. ํ๋์ ์๋ฒ์ ์ฌ๋ฌ ๋์ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๊ณ , ์์ญ, ์๋ฐฑ, ์์ฒ๋ ์๋ฒ๋ ๋ฌธ์ ์๋ค. ์ด๋ ๊ฒ ๋ง๋ docker image๋ฅผ docker hub์ docker registry๋ฅผ ์ง์ ๋ง๋ค์ด ๊ด๋ฆฌํ ์ ์๋ค.
- ์ฌ๋ฌ ๋์ ์๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ์๋น์ค๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ์๋น์ค
- ์ค์ผ์ค๋ง
- ์ ๋นํ ์๋ฒ์ ๋ฐฐํฌ
- ํด๋ฌ์คํฐ๋ง
- ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ํ๋์ ์๋ฒ์ฒ๋ผ ์ฌ์ฉ
- ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
- key value์ ์ ์ฅํ ํ์์์ด ๋ฐ๋ก ๊ฐ์ ธ์ฌ ์ ์์
- ๋ก๊น , ๋ชจ๋ํฐ๋ง์ผ๋ก ์ค์์์ ๊ด๋ฆฌ ๊ฐ๋ฅ => Docker swarm
- docker์์ ๋ง๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ
- ์ ๋ฐ์ดํธ๊ฐ ์ ์๋๊ณ ์์ => Kubernetes -> ๋๊ท๋ชจ ์๋ฒ ์ค์ผ์คํธ๋ ์ด์ ์ ์ ํฉํ๊ณ ๋ค์ํ ์ํ๊ณ์ ์ด์ฉ ๊ฐ๋ฅ
Platform for automating deployment, scaling, and operations of application containers across clusters of hosts from wikipedia Kubernetes๋ ์ปจํ ์ด๋๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐฐํฌ ๋ฐ ํ์ฅํ๊ณ ๊ด๋ฆฌ๋ฅผ ์๋ํํด์ฃผ๋ ์คํ์์ค ํ๋ซํผ์ด๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ค๋ฅธ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ณด๋ค ๋น๊ต์ ๋ฆ๊ฒ ๋ฑ์ฅํ๋ค. ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ด ํ๋ ์ผ์ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ์ ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌํ๊ณ ์ด์ํ๋ฉด์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๊ฐ์ ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ์๋น์ค ๊ฐ ์ฐ๊ฒฐ์ ์ฝ๊ฒ ํด์ฃผ๋ ๊ฒ์ด๋ค.
- eco system
- ๊ฑฐ๋ํ ์ปค๋ฎค๋ํฐ์ ์ํ๊ณ๊ฐ ์์ด ์ ์ ๋๋ ๊ฒ์ ์ฐพ์๋ณด๋ฉด ๋๋ค.
- ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ถ๋ถ์ด ํ๋ฒ๋คํฐ์ค์ ์ ํธํ๋๋ค.
- ๋ค์ํ ๋ฐฐํฌ ๋ฐฉ์
- deployment :์๋ก์ด ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ์ ๋ต์ผ๋ก ๋ฌด์ค๋จ ๋ฐฐํฌํ ์ ์๋ค.
- StatefulSets :์คํ ์์๋ฅผ ๋ณด์ฅํ๊ณ ํธ์คํธ ์ด๋ฆ๊ณผ ๋ณผ๋ฅจ์ ์ผ์ ํ๊ฒ ์ฌ์ฉํ ์ ์์ด ์์๋ ๋ฐ์ดํฐ๊ฐ ์ค์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
- Daemon Set :๋ก๊ทธ๋ ๋ชจ๋ํฐ๋ง ๋ฑ ๋ชจ๋ ๋ ธ๋์ ์ค์น๊ฐ ํ์ํ ๋ ์ฌ์ฉํ๋ค.ใด
- Job, CronJob :๋ฐฐ์น์ฑ ์์ ์ ์ฌ์ฉํ๋ค.
- ํด๋ผ์ฐ๋ ์ง์
- ๋ถํ์ ๋ฐ๋ผ ์๋์ผ๋ก ์๋ฒ๋ฅผ ๋๋ฆฌ๋ autoscaling ๊ธฐ๋ฅ์ด ์๋ค.
- Ip๋ฅผ ํ ๋น ๋ฐ์ Load Balancer๋ก ์ฌ์ฉ
- ๋ค์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋์ ๋ก๋ ๋ฐธ๋ฐ์๋ก ์๋น์ค
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด๋ถ๋ง์ ์ค์นํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ๋ณด๋ฉด ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ ์ ์๊ณ , ์ธ๋ถ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ALB, Nginx, Apache๋ฅผ ํ๋ก์ ์๋ฒ๋ก ํ์ฉ
- ์๋ฒ ip ๋ณ๊ฒฝ ์ ์ค์ ์๋ํ
- ํ๋ก์ ์๋ฒ๋ ๋๋ฉ์ธ๊ณผ path ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฑ๋ก๋ ์๋ฒ๋ก ์์ฒญ์ ์ ๋ฌํ๋๋ฐ ์๋ฒ๊ฐ ๋ฐ๋๊ฑฐ๋ Ip ๋ณ๊ฒฝ ์ ๋งค๋ฒ ์ฌ์ค์ ํด์ผํ๋ค.
- ํ๋์ ํด๋ฌ์คํฐ์ ์ฌ๋ฌ ๊ฐ์ ingress ์ค์ ๊ฐ๋ฅ(์ผ๋ฐ์ ์, ๊ด๋ฆฌ์ ์ ์ ๋ถ๋ฆฌ)