2025/09/29
nยฐ
category :
โผ
2025/09/29
nยฐ
category :
2025/09/28
nยฐ69
category : DevOps
ํด๋ผ์ฐ๋ ์ปดํจํ
์ ๋ํด ๊ณต๋ถํ๊ธฐ ์ํด Docker
ํ์ต์ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์ธํ๋ฐ์ ๋์ปค ๋ง์คํฐ์ฆ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ฑํ์ต๋๋ค.
ํจ๊ณผ์ ์ธ ํ์ต์ ์ํด
๊ฐ์ ๋ด์ฉ์ ์๊ธฐ๋ก ์์ฝ
๊ฐ์ ์๋ฃ์ ํจ๊ป ์๊ธฐ์์ ์ ์ ๋ด์ฉ์ markdown
์ผ๋ก ์ฎ๊ธฐ๊ณ
๋ถ์กฑํ ๋ฐฐ๊ฒฝ์ง์๊ณผ ๊ถ๊ธ์ฆ์ ์กฐ์ฌ
ํ๋ ๋ฐฉ์์ผ๋ก ํ์ตํ์ต๋๋ค.
์ด๋ฒ ๊ธ์์ ๊ฐ์ํ์ ๊ธฐ๋ณธ ๊ฐ๋ , ๋์ปค, ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์๋ฅผ ์ดํ๋๋ค.
๊ฐ์ํ: ํ๋์จ์ด์ ์ข ์๋ ๋ฆฌ์์ค๋ก IT ์๋น์ค๋ฅผ ๋ง๋ ๋ค.
๋ฌผ๋ฆฌ์ ๋จธ์ ์ ๊ธฐ๋ฅ โ ์ฌ๋ฌ ์ฌ์ฉ์ / ํ๊ฒฝ์ ๋ฐฐํฌ
=> ๋ฌผ๋ฆฌ์ ๋จธ์ ์ต๋ํ ํ์ฉํ๋ค.
*ref-keywords: virtualization
ex: Bluestack / NOX / ๊ฒ์๋ณด์ด ์๋ฎฌ๋ ์ดํฐ
ํ์ดํผ๋ฐ์ด์ ์ ๊ฐ์ ๊ฐ์ํ ์ง์ ๊ธฐ์ ์ ์ผ๊ด ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ์ปดํจํฐ์ ์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์๊ฐ ๋์์ ์ก์ธ์ค ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ์
์ผ๊ด ์ฒ๋ฆฌ๋ ๊ธ์ฌ์ ๊ฐ์ ๋ฃจํด ํ์คํฌ๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์์ฒ ๋ฒ ์คํํ๋ ์ฌ์ ๋ถ๋ฌธ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ปดํจํ ๋ฐฉ์
์์ญ ๋ ์ ์ ๊ฐ๋ฐ๋์ด ์์์.
1990๋
๋ ๋๋ถ๋ถ์ ๊ธฐ์
์ด ๋ฌผ๋ฆฌ ์๋ฒ์ ๋จ์ผ ๋ฒค๋ IT ์คํ
์ ์ฌ์ฉํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฒค๋์ ํ๋์จ์ด์์ ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ ์ ์์
๊ฐ์ํ Virtualization
๋ฅผ ํตํด ๊ธฐ์
์ ์๋ฒ๋ฅผ ํํฐ์
๋ํ๊ณ ์ฌ๋ฌ ์ ํ ๋ฐ ๋ฒ์ ์ ์ด์ ์ฒด์ ์์ ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํ
์๋ฒ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด ๊ตฌ๋งค, ์ ์ , ๋๊ฐ, ์ ์ง๊ด๋ฆฌ์ ๊ด๋ จ๋ ๋น์ฉ ๊ฐ์
์ํํธ์จ์ด๊ฐ ๋ฌผ๋ฆฌ ๋ฆฌ์์ค๋ฅผ ํ์๋ก ํ๋ ๊ฐ์ ํ๊ฒฝ์ผ๋ก๋ถํฐ <u>
๋ฆฌ์์ค๋ฅผ ๋ถ๋ฆฌ</u>
ํธ์คํธ ์ปดํจํฐ 1๋์์ ์ด์์ฒด์ ๋ค์๋ฅผ ๋์์ ์คํํ๋ ๋ ผ๋ฆฌ์ ํ๋ซํผ
Platform = ์ด์์ฒด์ ๊ฐ ์คํ๋ ์ ์๋ ๊ธฐ๋ฐ ํ๊ฒฝ
ํ์ดํผ๋ฐ์ด์ ๋ ๋ ธํธ๋ถ ๋ฑ์ ์ด์ ์ฒด์ ์ ๋ฐฐํฌํ๊ฑฐ๋ ์๋ฒ ๋ฑ์ ํ๋์จ์ด์ ์ง์ ์ค์น
ํ์ดํผ๋ฐ์ด์ ๊ฐ ๋ฌผ๋ฆฌ ๋ฆฌ์์ค๋ฅผ ๋ถํ ํ์ฌ ๊ฐ์ ํ๊ฒฝ์์ ์ฌ์ฉ
์ ์: ํ์ดํผ๋ฐ์ด์ ๊ฐ ์ด์์ฒด์ ์์ด ํ๋์จ์ด ์์ ์ง์ ์ค์น๋๋ ํํ
ํด๋น ํ๋์จ์ด/๋ฒ ์ด๋ฉํ์ ์ง์ ์ค์น
๊ฒ์คํธ ์ด์์ฒด์ ๋ ๋ ๋ฒ์งธ ์์ค์ผ๋ก ์คํ
์ ํ: Xen
, KVM
, ESXi
๋ฑ
Xen
: ์คํ์์ค ๊ธฐ๋ฐ์ Type 1 ํ์ดํผ๋ฐ์ด์
๋ก, ์๋ง์กด AWS ๋ฑ ๋๊ท๋ชจ ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ์ฌ์ฉ
KVM
: ๋ฆฌ๋
์ค ์ปค๋์ ํฌํจ๋ ๊ฐ์ํ ๋ชจ๋๋ก, ๋ฆฌ๋
์ค ์์ฒด๋ฅผ Type 1 ํ์ดํผ๋ฐ์ด์ ์ฒ๋ผ ๋์ํ๊ฒ ํจ.
ESXi
: VMware์์ ์ ๊ณตํ๋ ๋ํ์ ์ธ ์์ฉ Type 1 ํ์ดํผ๋ฐ์ด์ ๋ก, ๊ธฐ์
์๋ฒ ๊ฐ์ํ ํ์ค์ผ๋ก ๋๋ฆฌ ํ์ฉ๋จ.
๋ณดํต ๊ธฐ์ ์์ ์ฌ์ฉํ๋ค๊ณ ํฉ๋๋ค.
โ๋ฒ ์ด ๋ฉํ Bare-metal: ํ๋์จ์ด ์์์ ๋ฐ๋ก ์คํ
์ผ๋ฐ ํ๋ก๊ทธ๋จ์ฒ๋ผ ํธ์คํธ ์ด์์ฒด์ ์์ ์คํ
๊ฒ์คํธ ์ด์์ฒด์ ๋ ์ธ๋ฒ์งธ ์์ค์ผ๋ก ์คํ
?: "3๋ฒ์งธ ์์ค"?
์ ํ: Virtualbox, Vmware, Parrallels ๋ฑ
N๋ฒ์งธ ์์ค(Layer) ๊ฐ๋ ์ด ๊ถ๊ธํ์ฌ ์ถ๊ฐ๋ก ์กฐ์ฌํ์ต๋๋ค.
ํ๋์จ์ด (CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ)
ํธ์คํธ ์ด์์ฒด์ (์: Windows, macOS, Linux)
ํ์ดํผ๋ฐ์ด์ ํ๋ก๊ทธ๋จ (VirtualBox, VMware Workstation, Parallels ๋ฑ)
๊ฒ์คํธ ์ด์์ฒด์ (Guest OS) (๊ฐ์ ๋จธ์ ์์ ์ค์น๋ OS)
์ฌ๊ธฐ์ ๊ฒ์คํธ OS๋ํ๋์จ์ด โ ํธ์คํธ OS โ ํ์ดํผ๋ฐ์ด์ โ ๊ฒ์คํธ OS
์์๋ก ์คํ๋๊ธฐ ๋๋ฌธ์, ํํ โ์ธ ๋ฒ์งธ ์์ค(3rd layer)โ์ด๋ผ๊ณ ํํํ๋ค๊ณ ํฉ๋๋ค.
๊ฐ๋
์ ์ค์์ฑ์ ๋ํด ๊ฐ์กฐํด์ฃผ์
จ์ต๋๋ค. ๋์ปค๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉด์ ์ปจํ
์ด๋=๋์ปค
๋ผ๊ณ ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก๋ Containerd
, ์ปจํ
์ด๋ ๋ฐํ์์ด ๊ถ๊ธํ์ฌ ์กฐ๊ธ ๋ ์์๋ณด๊ณ ์ถ์์ต๋๋ค.
์ปจํ ์ด๋๋ ๊ฐ์ํ๊ฒฝ์ ์ฌ์ฉํด ๊ฐ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ๊ฒฉ๋ฆฌ(isolate)ํ๋ ๊ธฐ์
์ปจํ ์ด๋๋ ๊ฐ์๋จธ์ ์ฒ๋ผ ํ๋์จ์ด๋ฅผ ์ ๋ถ ๊ตฌํํ์ง ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅธ ์คํ ๊ฐ๋ฅ
์ต๊ทผ์ M3 ๋งฅ์์ UTM์ ํ์ฉํ์ฌ Windows OS๋ฅผ ์คํํ๋๋ฐ ์๋นํ ๋ฌด๊ฑฐ์ ์ต๋๋ค.
์ปจํ ์ด๋๋ ๋์ปค, K8S์ ํ๊ฒฝ์์ ๋ ์์ ๋จ์๋ก ๊ฒฉ๋ฆฌ๋์ด ์คํ๋์ด ๋น ๋ฅธ ๊ฒ์ด ์๋๊น ์์ํ์ต๋๋ค.
์ด ๋ถ๋ถ์ ์ฌ์ค ๋ง์ด ๋ฏ์ ๋ด์ฉ์ด์์ต๋๋ค.
๊ทธ๋์ ์ฃผ๋ก ๋ฒค์น๋งํฌ์์ Hypervisor
/ Docker
/ K8S
์ ์ฑ๋ฅ ๋น๊ต ๋ฐ ์์ ํจ์จ์ฑ ์์ฃผ๋ก ์ดํดํ์ต๋๋ค.
PageRank๋ ์นํ์ด์ง๋ค์ ์ค์๋๋ฅผ ์์น๋ก ํ๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ
์ค์ ๋ก PageRank ์ ์๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด, ์๋ฐฑ๋ง~์์ญ์ต ๊ฐ์ ๋ ธ๋์ ๋งํฌ๋ก ๊ตฌ์ฑ๋ ๋๊ท๋ชจ ๊ทธ๋ํ์์ ์์ ๊ฐ์ ์ฐ์ฐ์ ๋ฐ๋ณต ์ํํด์ผ ํจ
์ด ๊ณผ์ ์ ํ๋ ฌ ๊ณฑ์ , ๋ฒกํฐ ์ฐ์ฐ ๋ฑ ๋๋์ ์์น ๊ณ์ฐ๊ณผ ๋ฐ๋ณต์ ์ธ ๊ฐฑ์ ์ด ํ์ํ๋ฏ๋ก, ์ปดํจํ ์์์ ๋ง์ด ์๋ชจ
์ปจํ ์ด๋ ํ๊ฒฝ์ VM ํ๊ฒฝ์ ๋นํด CPU ์์์ ๋ ํจ์จ์ ์ผ๋ก ํ์ฉํ๋ฉฐ, ๋๊ธฐ(Wait) ์ํ๊ฐ ๊ฑฐ์ ์์ด ๋ฆฌ์์ค ๋ญ๋น๊ฐ ์ ๊ณ , ์์ ์๋ฃ ์๊ฐ๋ ์งง์
VM ํ๊ฒฝ์ ์ธ์คํด์ค๊ฐ ๋ง์์ง์๋ก CPU ๋๊ธฐ(Wait) ์๊ฐ์ด ๊ธ๊ฒฉํ ๋์ด๋๊ณ , ์ ์ฒด ์์ ์๊ฐ์ด ๊ธธ์ด์ง. ์ด๋ ๊ฐ์ํ ์ค๋ฒํค๋์ ๋ฆฌ์์ค ๊ฒฝํฉ ๋๋ฌธ์
๋ฒ ์ด๋ฉํ(Native), ๊ฐ์๋จธ์ (KVM), ๊ทธ๋ฆฌ๊ณ ๋ค์ํ ์ปจํ ์ด๋ ํ๊ฒฝ(Docker, LXC, RKT)์์ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ I/O, ๋คํธ์ํฌ ์ฑ๋ฅ์ ๋น๊ตํ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ
VM(KVM)์ ๋ชจ๋ ํญ๋ชฉ์์ ์ค๋ฒํค๋๋ก ์ธํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค
Container
๋ ๊ธฐ๋ณธ์ ์ผ๋ก Linux kernel
๊ธฐ๋ฅ์ ํตํด ๊ตฌํ๋๋ค๊ณ ํฉ๋๋ค.
๊ฐ ํ๋ก์ธ์ค๊ฐ ํ์ผ ์์คํ ๋ง์ดํธ, ๋คํธ์ํฌ, ์ ์ (uid), ํธ์คํธ ๋ค์(uts) ๋ฑ์ ๋ํด ์์คํ ์ ๋ ๋ฆฝ ๋ทฐ๋ฅผ ์ ๊ณต
What you can see - ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ๋ฅผ ํตํด "๋ทฐ"๋ฅผ ์ ์ดํ๋ค๋ ์๋ฏธ๋ก ์ดํดํ์ต๋๋ค.
๋ค์์คํ์ด์ค๋ฅผ ํตํด ํ๋ก์ธ์ค๋ง๋ค ๊ฒฉ๋ฆฌ
ํ๋ค๋ ๊ฐ๋
์ด ์ค์ํ ๊ฒ๊ฐ์ต๋๋ค.
ํ๋ก์ธ์ค ๊ทธ๋ฃน์ด ์ฌ์ฉํ ์ ์๋ ์์คํ ์์(๋ฉ๋ชจ๋ฆฌ, CPU, I/O, ๋คํธ์ํฌ ๋ฑ)์ "์"์ ์ ํํ๊ฑฐ๋ ๋ชจ๋ํฐ๋งํ๋ ์ญํ
cgroup์ ์์์ 'ํ ๋น/์ ํ/๊ณ๋'์ ๋ด๋นํ๊ณ , ๋ค์์คํ์ด์ค๋ '๊ฒฉ๋ฆฌ'๋ฅผ ๋ด๋น
/cpu_mem_cg๋ systemd์ cgroupfs์ ๊ฐ์ "cgroup ๊ณ์ธต(hierarchy)"์ ์ต์์ ๊ด๋ฆฌ ์ฃผ์ฒด๋ฅผ ๋ํ๋
ํ์ง๋ง ๋ฆฌ๋ ์ค ๋ค์์คํ์ด์ค, cgroup์ ์ด์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋์ด๋๊ฐ ์์๊ธฐ์ ๋จ์ํํ ํด(Docker)์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
์ปจํ ์ด๋ ๊ธฐ์ ์ ์ฌ์ค์ ํ์ค
๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉ ๊ฐ๋ฅ(๋ฆฌ๋ ์ค, ์๋์ฐ, MacOS)
์ฑApp์ ๊ตญํ ๋์ง ์๊ณ ์์กด์ฑ ๋ฐ ํ์ผ ์์คํ ๊น์ง ํจํค์งํ์ฌ ๋น๋, ๋ฐฐํฌ, ์คํ์ ๋จ์ํ
๋ฆฌ๋ ์ค์ ๋ค์ ์คํ์ด์ค์ cgroups์ ๊ฐ์ ์ปค๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๊ฐ์ํ
stateDiagram
[*] --> client : ์ฌ์ฉ์ ๋ช
๋ น ์
๋ ฅ
state "Docker Client" as client {
[*] --> CLI : docker ๋ช
๋ น์ด
CLI --> HTTP_REST : REST API ํธ์ถ
}
state "Docker Server" as server {
[*] --> Daemon : Docker Daemon ์์
Daemon --> API : REST API ์๋ํฌ์ธํธ
API --> Containerd : ์ปจํ
์ด๋ ๊ด๋ฆฌ ์์ฒญ
Containerd --> Runc : ์ปจํ
์ด๋ ์คํ
}
client --> server : HTTP REST ํต์
server --> client : ์๋ต ๋ฐํ
note right of client
Docker CLI๊ฐ ์ฌ์ฉ์ ๋ช
๋ น์
HTTP REST API๋ก ๋ณํํ์ฌ
Docker Daemon๊ณผ ํต์
end note
note right of server
Docker Daemon์ด REST API๋ฅผ ํตํด
ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ์
containerd์ runc๋ฅผ ํตํด
์ค์ ์ปจํ
์ด๋ ์์
์ํ
end note
๋์ปค์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์ฃผ๋ก REST API๋ก ํต์ ํ๋ค๊ณ ํฉ๋๋ค.
๋์ปค ์ ์ด CLI๋ก ์ดํดํ์ต๋๋ค.
์ฌ์ฉ์๊ฐ ๋์ปค์ ์ํธ ์์ฉํ๊ธฐ ์ํ ๋ช ๋ น์ค ๋๊ตฌ
์ฌ์ฉ์๋ ๋์ปค CLI๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ , ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ , ๊ด๋ฆฌํ ์ ์์
CLI๋ ์ฌ์ฉ์๊ฐ ๋์ปค ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋์ปค ๋ฐ๋ชฌ(Docker Daemon)์ ๋ช ๋ น์ ์ ๋ฌ
๋์ปค์ ํต์ฌ ์๋น์ค์ด๋ฉฐ, ์ปจํ
์ด๋์ ์์ฑ, ์คํ, ๊ด๋ฆฌ
๋ฑ์ ์์
์ ์ํ
๋ฐ๋ชฌ์ ์ปจํ
์ด๋ ์คํ์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌ
ํ๊ณ ๋์ปค API๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์์ฒญ์ ์๋ต
๋์ปค ๋ฐ๋ชฌ์์ ์ฌ์ฉํ๋ ํต์ฌ ์ปจํ ์ด๋ ๋ฐํ์
๋์ปค๋ ๋ฒ์ 1.11 ์ดํ๋ก ์ปจํ ์ด๋ ๋ฐํ์์ ๋ถ๋ฆฌํ์ฌ ์ปจํ ์ด๋๋๋ฅผ ์ฌ์ฉ
์ปจํ ์ด๋๋๋ ์ปจํ ์ด๋์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ, ์ด๋ฏธ์ง ๊ด๋ฆฌ, ๋คํธ์ํน, ์คํ ๋ฆฌ์ง ๋ฑ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ๋ด๋น
์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ์ค๊ฐ๊ด๋ฆฌ์์ ์ญํ
์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋๊ตฌ
๋์ปค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐํ์์ผ๋ก Runc
๋ฅผ ์ฌ์ฉ
Runc
๋ Open Container Initiative (OCI)
์์ ์ ์ํ ์ปจํ
์ด๋ ์คํ์ ์ํ** ํ์ค ์คํ์ธ OCI ์ปจํ
์ด๋ ๋ฐํ์ ์คํ**์ ๊ตฌํํ ๋๊ตฌ
๋ฐ๋ผ์ Runc๋ ์ปจํ
์ด๋์ ์๋ช
์ฃผ๊ธฐ ๊ด๋ฆฌ
์ ๊ด๋ จ๋ ํต์ฌ์ ์ธ ์์
์ ๋ด๋น
Containerd๋ ์๋ ์ ๋ช ํ ์ปจํ ์ด๋ ํ๋ซํผ์ธ Docker์ ๊ตฌ์ฑ ์์๋ก ๊ฐ๋ฐ
Docker๋ 2013๋ ์ ์ฒ์ ์ถ์๋์์ผ๋ฉฐ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ๋ฐฐํฌํ๊ธฐ ์ํ ๋๊ตฌ๋ก ๋น ๋ฅด๊ฒ ๋๋ฆฌ ์ฑํ๋จ
๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ, ์ปจํ ์ด๋ ์์ ๋ฐ ์ค์ง์ ๊ฐ์ ์ปจํ ์ด๋ ๊ด๋ฆฌ์ ๊ด๋ จ๋ ํ์ ์์ค ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด Docker์ ์ผ๋ถ๋ก ๊ฐ๋ฐ
2017๋
Docker์์ ๋
๋ฆฝํ ํ๋ก์ ํธ Graduated Project
๋ก containerd๊ฐ ์ถ์ถ๋์ด CNCF(Cloud Native Computing Foundation) ํ๋ก์ ํธ๊ฐ ๋จ
๊ทธ ์ดํ๋ก containerd๋ ์ฑ๋ฅ, ์์ ์ฑ ๋ฐ ๋ณด์์ ์ค์ ์ ๋๊ณ ํฌ๊ฒ ๋ฐ์ ํ๊ณ ๊ฐ์
Containerd์๋ Docker, Google ๋ฐ Red Hat๊ณผ ๊ฐ์ ํ์ฌ์ ๊ฐ๋ฐ์๋ฅผ ํฌํจํ์ฌ ๋๊ท๋ชจ์ ํ๋์ ์ธ ๊ธฐ์ฌ์ ์ปค๋ฎค๋ํฐ๊ฐ ์์
๊ฐ์์์ CNCF๋ฅผ ์๋ ค์ฃผ์ ์ ์ข์์ต๋๋ค.
Containerd๋ CNCF(Cloud Native Computing Foundation) ํ๋ก์ ํธ๊ฐ ๋์ด ๊ฐ์์ฑ์ ๋์ด๊ณ ๋ ํฐ ๊ธฐ์ฌ์ ์ปค๋ฎค๋ํฐ๋ฅผ ์ ์นํ๋ ๋ฐ ๋์
Docker์์ ์ถ์ถ๋ ์ดํ containerd๋ ์ฑ๋ฅ, ์์ ์ฑ ๋ฐ ๋ณด์์ ์ค์ ์ ๋๊ณ ํฌ๊ฒ ๋ฐ์
2018๋ ์ ์ถ์๋ containerd 1.0์ ํ๋ก์ ํธ์ ์์ ์ฑ๊ณผ ์ฑ์๋์ ์ค์ํ ์ด์ ํ๋ฅผ ์ธ์
2019๋ Kubernetes์ ๊ธฐ๋ณธ ์ปจํ ์ด๋ ๋ฐํ์์ผ๋ก containerd ์ฑํ
2020๋ ์ "์กธ์ " ํ๋ก์ ํธ๋ก CNCF Landscape์ containerd ํฌํจ
"๋ ์ง์คํธ๋ฆฌ" ๊ฐ๋
์ด ํฌ๊ฒ ์๋ฟ์ง ์์์ผ๋, "์ ์ฅ์" ๊ฐ๋
์ผ๋ก ๋ณด๋ ์ดํด๊ฐ ์์ํ์ต๋๋ค.
ํนํ ๊ฐ์์์ ์ด๋ฏธ์ง, ์ปจํ
์ด๋, ๋ ์ง์คํธ๋ฆฌ ๊ฐ๊ฐ์ ์ญํ ์ ๊ตฌ๋ถํ์ฌ ์์งํ๋ฉด ์ข์ต๋๋ค.
์ปจํ ์ด๋: ์ด๋ฏธ์ง๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ๋ ๋ฆฝ๋ ๊ณต๊ฐ์์ ์คํํ ๊ฐ์ ํ๊ฒฝ(ENV)
์ด๋ฏธ์ง: ํ์ํ ํ๋ก๊ทธ๋จ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์์ค๋ฅผ ์ค์นํ ๋ค ๋ง๋ ํ๋์ ํ์ผ
์ด๋ฏธ์ง๋ก ๋ง์ ์ฌ๋ฆฌ๋ค๋ผ๋ ํํ์ ์์ฃผ ์ฐ๋ฉฐ, ์์กด์ฑ, ํ๊ฒฝ ํ์ผ ๋ฑ์ ํ๋์ .tar
ํ์ผ๋ก ์์ถํ ๊ฒ์ ๋์ปค Image
๋ผ๊ณ ์ดํดํ์ต๋๋ค.
๋ ์ง์คํธ๋ฆฌ: ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด Image๋ฅผ ์ ๊ณตํด์ฃผ๊ณ ์์.
a. On-Premises : Hosted Docker Registry
ํ์๋ง/๋ด๋ถ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ์ฌ ์ฌ๋ฆฐ ๋ ์ง์คํธ๋ฆฌ์ ๋๋ค.
๋ฐ๋์ ์ ์ ํ ๋คํธ์ํฌ์ ํจ๊ป ๋ ์ง์คํธ๋ฆฌ๊ฐ ๊ฐ์ถ์ด์ ธ์ผ ๋์ปค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Harbor
CI/CD ๊ด๋ จ ๋ด์ฉ์์ ๋ ์ดํด๋ณผ ์์ ์
๋๋ค.
b. Public Cloud:
Docker Trusted Registry, Azure Container, AWS, Google ๋ฑ ๊ณต๊ณต ํด๋ผ์ฐ๋์ ํด๋นํฉ๋๋ค.
๋๊ตฌ๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด ํธ์ํ ์ ์์ผ๋ฉฐ ํธ์๋ ์ด๋ฏธ์ง๋ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๊ณต์ ๊ฐ๋ฅ
์๋น์ค๊ฐ ์ปค์ง๋ฉด ์ปค์ง ์๋ก ๊ด๋ฆฌํด์ผ ํ๋ ์ปจํ ์ด๋์ ์์ด ๊ธ๊ฒฉํ ์ฆ๊ฐ
๋์ปค๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ๋ฅผ ํ๋ค ํ๋๋ผ๋ ์ฝ์ง ์์ ํํ
์์:
32๋์ ์๋ฒ์ ํธ์คํธ์ ๋์ปค๊ฐ ์ค์น๋์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๊ฐ ๋์ปค์ 200๊ฐ์ ์ปจํ ์ด๋๊ฐ ์๋ค๋ฉด, ๋ชจ๋ ์ปจํ ์ด๋๋ 6400๊ฐ๊ฐ ๋ฉ๋๋ค.
์ด ์ค ๋ช๋ช์ ์ปจํ ์ด๋์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด ๊ด๋ฆฌ ๋น์ฉ์ด ์์นํ ๊ฒ์ ๋๋ค. 32๊ฐ์ ๋ค๋ฅธ ๋์ปค๋ฅผ ๊ด๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์ปจํ ์ด๋๊ฐ ๋ถ์ฐ๋์ด ๋ณต์ก์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ก ์ธํด ์ปจํ ์ด๋ ๊ด๋ฆฌ์ ์ค์์ฑ์ด ๋๋๋์์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ์ด๋ฌํ ์ปจํ
์ด๋ ๊ด๋ฆฌ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์
๋์์ต๋๋ค.๋์ปค ๋ ์ด์ด๋ฅผ ๊ฑด๋ ๋ฐ๊ณ , ๋ชจ๋ ์ปจํ
์ด๋๋ฅผ K8S
ํ๋ฌ๊ทธ์ธ์ ํตํด ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
2014๋ ๊ตฌ๊ธ์ด ์คํ ์์ค ๊ณต๊ฐ
๊ตฌ๊ธ์ด ์ปจํ ์ด๋ ์ด์ ๋ ธํ์ฐ๊ฐ ๋ด๊ธด ์คํ์์ค
๊ณ ๋ ๊ทธ๋ฆฌ์ค์ด๋ก ํญํด์ฌ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง
๋ค์์ ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ์ด์ํ๊ธฐ ์ํ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ
๋ง์ ์์คํ ์ ํตํฉ, ์ปจํ ์ด๋๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ API ์ ๊ณต
๋ง์ง๋ง์ผ๋ก ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ปจํ
์ด๋: ์ฉ๊ธฐ = ๋ฆฌ๋
์ค ์ปค๋(name_space+cgroup
)๋ก ๊ตฌ์ฑ. CPU/Network/Memory/Disk
๋ฑ ๋ฆฌ์์ค๋ฅผ ๋ด๋ Container(์ฉ๊ธฐ)๋ก ์ดํด.
๋์ปค: ํญ๋ง ๋ ธ๋์
๊ฐ๋ณ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ๊ด๋ฆฌ์
์ฟ ๋ฒ๋คํฐ์ค: ํญํด์ฌ
๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ๊ด์ฅํ๋ ๊ด๋ฆฌ์
๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!