Podman VS Docker

ํ™ฉ์—ฐ์ค€ยท2025๋…„ 5์›” 14์ผ

Kubernetes์—์„œ Docker๊ฐ€ ์‚ฌ๋ผ์ง„ ์ด์œ ์™€ Podman์˜ ๋ถ€์ƒ

์ตœ๊ทผ Kubernetes ํ™˜๊ฒฝ์—์„œ Docker ๋Œ€์‹  Podman์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ์žˆ๋‹ค. ์ด๋Š” ๋‹จ์ˆœํ•œ ํŠธ๋ Œ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ, Kubernetes์˜ ๊ตฌ์กฐ์  ๋ณ€ํ™”์™€ ์šด์˜ ํšจ์œจ์„ฑ์— ๋Œ€ํ•œ ๊นŠ์€ ๊ณ ๋ฏผ์ด ๋ฐ˜์˜๋œ ๊ฒฐ๊ณผ๋‹ค. (Docker์˜ ๋ถ€๋ถ„ ์œ ๋ฃŒํ™”๋„ ..! ๐Ÿ’ธ)

์ด ๊ธ€์—์„œ๋Š” Docker๊ฐ€ Kubernetes์—์„œ ์ œ์™ธ๋œ ์ด์œ , Podman์˜ ๊ตฌ์กฐ์  ์žฅ์ , ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋„๊ตฌ์˜ ์ฒ ํ•™์  ์ฐจ์ด์™€ ์‹ค๋ฌด์  ํ™œ์šฉ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

๐Ÿ“– ์šฉ์–ด ์ •๋ฆฌ


๐Ÿณ Docker์™€ Kubernetes์˜ ๊ฒฐ๋ณ„

โ“ ์™œ Kubernetes์—์„œ Docker๊ฐ€ ์ œ์™ธ๋์„๊นŒ?

Kubernetes๋Š” 1.20๋ถ€ํ„ฐ Docker ์ง€์› ์ข…๋ฃŒ ์˜ˆ์ •์„ ๋ฐœํ‘œํ–ˆ๊ณ , 1.24๋ถ€ํ„ฐ๋Š” ๊ณต์‹์ ์œผ๋กœ Docker ๋Ÿฐํƒ€์ž„์„ ์ œ๊ฑฐํ–ˆ๋‹ค. ์ด ๊ฒฐ์ •์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ถฉ๊ฒฉ์ด์—ˆ์ง€๋งŒ, ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ๋งค์šฐ ํƒ€๋‹นํ•œ ๋ณ€ํ™”์˜€๋‹ค.

์ด์œ : Kubernetes๋Š” CRI ๊ธฐ๋ฐ˜, Docker๋Š” CRI๋ฅผ ์ง์ ‘ ์ง€์›ํ•˜์ง€ ์•Š์Œ

  • Kubernetes๋Š” ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„๊ณผ์˜ ํ†ต์‹ ์„ CRI(Container Runtime Interface) ๋ผ๋Š” ํ‘œ์ค€์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • Docker๋Š” CRI๋ฅผ ์ง์ ‘ ์ง€์›ํ•˜์ง€ ์•Š๊ณ , dockershim์ด๋ผ๋Š” ์ค‘๊ฐ„ ๊ณ„์ธต์„ ํ†ตํ•ด ์—ฐ๋™๋๋‹ค.
  • ์ด ์ค‘๊ฐ„ ๊ณ„์ธต์€ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๊ณ  ๋น„ํ‘œ์ค€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— Kubernetes ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” dockershim์„ ์ œ๊ฑฐํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒƒ.

์š”์•ฝ : Docker ์ž์ฒด๊ฐ€ ์‹ซ์–ด์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋น„ํ‘œ์ค€ ์ค‘๊ฐ„ ๊ณ„์ธต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด์„œ Docker ๋Ÿฐํƒ€์ž„์„ ์ œ์™ธํ•œ ๊ฒƒ์ด๋‹ค.


๊ทธ๋Ÿผ ๋Œ€์ฒด ๋Ÿฐํƒ€์ž„์€?

๋Ÿฐํƒ€์ž„ํŠน์ง•
containerdDocker์—์„œ ๋ถ„๋ฆฌ๋œ ํ•ต์‹ฌ ๋Ÿฐํƒ€์ž„. ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋จ
CRI-OOpenShift, Red Hat ๊ธฐ๋ฐ˜์—์„œ ์ฑ„ํƒํ•œ ๊ฒฝ๋Ÿ‰ ๋Ÿฐํƒ€์ž„
PodmanDaemonless, Rootless, CLI ๊ธฐ๋ฐ˜. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ฐ•๋ ฅ

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ containerd ๋˜๋Š” CRI-O๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ๊ณผ ์šด์˜์˜ ์ค‘๊ฐ„ ๋‹จ๊ณ„์—์„œ Podman์ด ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ๋‹ค.


Docker vs Podman: ๊ตฌ์กฐ์  ์ฐจ์ด

๐Ÿ”ฅ ํ•ต์‹ฌ ์ •๋ฆฌ

Docker๋Š” ๋ฐ๋ชฌ(dockerd)์—๊ฒŒ REST API๋กœ ๋ช…๋ น์„ ์œ„์ž„ํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ ,
Podman์€ CLI์—์„œ ์ง์ ‘ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

ํ•ญ๋ชฉDockerPodman
๊ตฌ์กฐClient โ†” dockerd (daemon)๋‹จ์ผ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค (daemonless)
์‹คํ–‰ ๋ฐฉ์‹REST API๋กœ ๋ฐ๋ชฌ์—๊ฒŒ ์œ„์ž„๋ช…๋ น์–ด๊ฐ€ ๋ฐ”๋กœ runc ํ˜ธ์ถœ
๋ฐ๋ชฌ ํ•„์š” ์—ฌ๋ถ€โœ… ํ•„์ˆ˜โŒ ํ•„์š” ์—†์Œ
rootless ์ง€์›โŒ ๊ธฐ๋ณธ root ๋ฐ๋ชฌ ์‚ฌ์šฉโœ… ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅ
์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ์‹๋ฐ๋ชฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒํƒœ ์ €์žฅํŒŒ์ผ ๊ธฐ๋ฐ˜ ์ƒํƒœ ์ €์žฅ (/var/lib/...)
๋ณด์•ˆ ์ธก๋ฉด๋ฐ๋ชฌ์ด root ๊ถŒํ•œ์„ ์š”๊ตฌ๋ณด์•ˆ ์šฐ์ˆ˜ (์‚ฌ์šฉ์ž ๊ถŒํ•œ ๊ฒฉ๋ฆฌ)
์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ๋ฐฉ์‹docker run โ†’ ๋ฐ๋ชฌ์ด ์‹คํ–‰podman run โ†’ ์ง์ ‘ ์‹คํ–‰

๋ฐ๋ชฌ์˜ ์—ญํ• ๊ณผ Podman์˜ ์„ค๊ณ„ ์ฒ ํ•™

๐Ÿณ Docker์˜ ๋ฐ๋ชฌ(dockerd)์€ ๋ฌด์Šจ ์ผ์„ ํ• ๊นŒ?

  • ๋ชจ๋“  CLI ๋ช…๋ น์€ ์‹ค์ œ๋กœ REST API ์š”์ฒญ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด dockerd์— ์ „๋‹ฌ๋œ๋‹ค.
  • dockerd๋Š” ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ, ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ/์ค‘์ง€, ์ƒํƒœ ์ถ”์ , ๋„คํŠธ์›Œํฌ ์„ค์ • ๋“ฑ์„ ์ด๊ด„ํ•œ๋‹ค.
  • ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ๋Š” ๋ฐ๋ชฌ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์œ ์ง€๋˜๋ฏ€๋กœ, dockerd๊ฐ€ ์ฃฝ์œผ๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์œ„ํ—˜ํ•ด์ง„๋‹ค.

Podman์€ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ๊ฐ€?

  • Podman์€ ๋ฐ๋ชฌ ์—†์ด CLI๊ฐ€ ์ง์ ‘ runc๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • ์ƒํƒœ ์ถ”์ ์€ ํŒŒ์ผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ๋ช…๋ น ์‹คํ–‰ ์‹œ lock ํŒŒ์ผ ๋“ฑ์„ ํ™œ์šฉํ•ด ์ถฉ๋Œ์ด๋‚˜ ๋ฐ๋“œ๋ฝ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.
  • systemd์™€์˜ ํ†ตํ•ฉ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ ๋ณต์›๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฐ๋ชฌ์ด ์—†์ง€๋งŒ, ๋” ์•ˆ์ „ํ•˜๊ณ  ์œ ์—ฐํ•œ ๊ตฌ์กฐ๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.


๋ฐ๋“œ๋ฝ? ์ถฉ๋Œ? daemonless๋Š” ์œ„ํ—˜ํ•˜์ง€ ์•Š๋‚˜?

Podman์€ ๋‹ค์Œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ๋“œ๋ฝ์ด๋‚˜ ๋ฆฌ์†Œ์Šค ์ถฉ๋Œ ์—†์ด ๋™์ž‘ํ•œ๋‹ค:

  1. ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ ์ƒํƒœ ๊ด€๋ฆฌ (containers/storage)
  2. lock ํŒŒ์ผ์„ ํ†ตํ•œ ์ถฉ๋Œ ๋ฐฉ์ง€
  3. atomic ๋ช…๋ น ์‹คํ–‰: ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์— ๋™์‹œ์— ๋ช…๋ น์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ๋Œ€๊ธฐ ๋˜๋Š” ์‹คํŒจ ์ฒ˜๋ฆฌ
  4. systemd ํ†ตํ•ฉ ๊ฐ€๋Šฅ: podman generate systemd, podman play kube๋กœ ๋ณต๊ตฌ ๊ฐ€๋Šฅ

๐Ÿ” Podman์€ daemon์ด ์—†์–ด๋„ ์•ˆ์ •์„ฑ๊ณผ ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋‹ค.


Kubernetes์™€ Podman์˜ ์‹ค์ œ ๊ด€๊ณ„

โ“ Kubernetes์—์„œ Podman์„ ๋Ÿฐํƒ€์ž„์œผ๋กœ ์ง์ ‘ ์“ฐ๋Š”๊ฐ€?
โŒ ์•„๋‹ˆ์š”, Kubernetes๋Š” containerd ๋˜๋Š” CRI-O๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Podman์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ Kubernetes์™€ ๋งค์šฐ ์ž˜ ํ†ตํ•ฉ๋œ๋‹ค:

  • podman build โ†’ OCI ํ˜ธํ™˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ โ†’ ECR ๋“ฑ์— ํ‘ธ์‹œ โ†’ Kubernetes์—์„œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ
  • podman generate kube โ†’ Kubernetes YAML ์ž๋™ ์ƒ์„ฑ
  • podman play kube โ†’ ๋กœ์ปฌ์—์„œ K8s ๋ฐฐํฌ ํ…Œ์ŠคํŠธ

Github Action์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, .github/workflows/ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— yamlํŒŒ์ผ์— docker์„ ๋Œ€์‹ ํ•˜์—ฌ podman์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ  ํ‘ธ์‹œํ•˜๋„๋ก ํ•˜๋ฉด ๋œ๋‹ค.


๐Ÿ–ฅ๏ธ ์‹ค๋ฌด์—์„œ์˜ Podman ํ™œ์šฉ ์‚ฌ๋ก€

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ Docker๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒด
  • CI ํ™˜๊ฒฝ์—์„œ rootless๋กœ ์ด๋ฏธ์ง€ ๋นŒ๋“œ
  • ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ์—์„œ ๋ฐ๋ชฌ ์—†๋Š” ๊ตฌ์กฐ๋กœ ์šด์˜
  • Kubernetes ๋ฐฐํฌ ์ „์— ๋กœ์ปฌ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”

๋งˆ๋ฌด๋ฆฌ

Kubernetes์—์„œ Docker๋Š” ์‚ฌ๋ผ์กŒ์ง€๋งŒ, ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ๋Œ€๋Š” ๋๋‚˜์ง€ ์•Š์•˜๋‹ค.
Podman์€ Docker์˜ ๋’ค๋ฅผ ์ด์„ ์ฐจ์„ธ๋Œ€ ๊ฐœ๋ฐœ/์šด์˜ ๋„๊ตฌ๋กœ์„œ ์ ์  ๋” ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›๊ณ  ์žˆ์œผ๋ฉฐ, ํŠนํžˆ ๋ณด์•ˆ์„ฑ, ์œ ์—ฐ์„ฑ, ํ‘œ์ค€ ํ˜ธํ™˜์„ฑ ์ธก๋ฉด์—์„œ ๊ฐ•๋ ฅํ•œ ๋Œ€์•ˆ์ด ๋˜๊ณ  ์žˆ๋‹ค.

โ€ผ๏ธ์ด์ œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฏธ๋ž˜๋Š”, ๋ฐ๋ชฌ์ด ์—†๋Š” ์„ธ์ƒ์—์„œ ๋”์šฑ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋‹ค.


๐Ÿ”— ์ฐธ๊ณ 

์šฉ์–ด ์ •๋ฆฌ


๐Ÿณ Docker Engine

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ ํ”Œ๋žซํผ์˜ ์ง„์ž…์ 

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด(docker run, docker build ๋“ฑ)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ „์ฒด ์‹œ์Šคํ…œ
  • CLI์™€ ๋ฐ๋ชฌ(dockerd), ์ด๋ฏธ์ง€/์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ๋“ค์„ ํฌํ•จํ•˜๋Š” ํฌ๊ด„์  ์šฉ์–ด
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋ฉด ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์€ ๋‚ด๋ถ€์ ์œผ๋กœ containerd์™€ runC๊ฐ€ ์ˆ˜ํ–‰

๐Ÿ“Œ ์ฆ‰, Docker Engine์€ ์ปจํ…Œ์ด๋„ˆ ํ”Œ๋žซํผ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์—ญํ• ์ด๋‹ค.


๐Ÿ˜ˆ dockerd

Docker์˜ ๋ฐ๋ชฌ ํ”„๋กœ์„ธ์Šค

  • Docker Engine์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ๋กœ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ํ•ญ์ƒ ์‹คํ–‰๋จ
  • docker CLI๊ฐ€ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋ฉด, dockerd๊ฐ€ ์ด๋ฅผ ๋ฐ›์•„ ์‹คํ–‰
  • ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์€ containerd์—๊ฒŒ ์œ„์ž„

๐Ÿ“Œ dockerd๋Š” Docker ์‹œ์Šคํ…œ์˜ ์ง€ํœ˜์ž๋กœ, ์‹คํ–‰ ํ๋ฆ„์„ ์กฐ์œจํ•œ๋‹ค.


โš™๏ธ containerd

์ปจํ…Œ์ด๋„ˆ์˜ ์‹คํ–‰์„ ์ฑ…์ž„์ง€๋Š” ๊ณ ์„ฑ๋Šฅ ๋Ÿฐํƒ€์ž„ ๊ด€๋ฆฌ์ž

  • Docker์—์„œ ๋ถ„๋ฆฌ๋œ ๋…๋ฆฝ ๋Ÿฐํƒ€์ž„ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ, ์ €์žฅ, ์••์ถ• ํ•ด์ œ
  • ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ
  • runC๋ฅผ ํ˜ธ์ถœํ•ด ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•จ
  • Kubernetes์—์„œ๋„ ํ‘œ์ค€ ๋Ÿฐํƒ€์ž„(back-end) ์œผ๋กœ ์ฑ„ํƒ๋จ

๐Ÿ“Œ containerd๋Š” ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์„ ์œ„ํ•œ ํ•ต์‹ฌ ์‹คํ–‰ ๊ด€๋ฆฌ์ž์ด๋‹ค.


๐Ÿš€ runC

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ํ”„๋กœ๊ทธ๋žจ

  • OCI(Open Container Initiative) ํ‘œ์ค€ ๋Ÿฐํƒ€์ž„
  • cgroup, namespace๋ฅผ ์„ค์ •ํ•ด ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๋„๋ก ํ•จ

๐Ÿ“Œ runC๋Š” ๋ฐฐ์šฐ๊ฐ€ ๋ฌด๋Œ€์— ์˜ค๋ฅด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ปจํ…Œ์ด๋„ˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์ฒด๋‹ค.


๐Ÿงฑ CRI-O

Kubernetes ์ „์šฉ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„

  • Kubernetes์˜ ํ‘œ์ค€ ๋Ÿฐํƒ€์ž„ ์ธํ„ฐํŽ˜์ด์Šค(CRI)๋ฅผ ๊ตฌํ˜„
  • Docker ์—†์ด K8s์—์„œ ์ง์ ‘ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๋Ÿฐํƒ€์ž„
  • ๋‚ด๋ถ€์ ์œผ๋กœ runC๋ฅผ ์‚ฌ์šฉ

๐Ÿ“Œ CRI-O๋Š” Kubernetes ์ „์šฉ์˜ ๊ฐ€๋ณ๊ณ  ํšจ์œจ์ ์ธ ๋Ÿฐํƒ€์ž„ ๋Œ€์ฒด์ œ


๐Ÿง  namespace (๋ฆฌ๋ˆ…์Šค ์ปค๋„)

์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๊ฒฉ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ์ˆ 

  • ํ”„๋กœ์„ธ์Šค, ๋„คํŠธ์›Œํฌ, ์‚ฌ์šฉ์ž, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋“ฑ ๋ณด์ด๋Š” ์„ธ๊ณ„๋ฅผ ๋ถ„๋ฆฌ
  • ์ข…๋ฅ˜:
    • pid: ํ”„๋กœ์„ธ์Šค ๋ฒˆํ˜ธ ๋ถ„๋ฆฌ
    • net: ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ฒฉ๋ฆฌ
    • mnt: ํŒŒ์ผ์‹œ์Šคํ…œ ๋งˆ์šดํŠธ ๊ฒฉ๋ฆฌ
    • uts: ํ˜ธ์ŠคํŠธ๋ช… ๊ฒฉ๋ฆฌ
    • ipc: ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ฒฉ๋ฆฌ
    • user: ์‚ฌ์šฉ์ž/๊ถŒํ•œ ๊ฒฉ๋ฆฌ

๐Ÿ“Œ namespace๋Š” ์ปจํ…Œ์ด๋„ˆ๋ผ๋ฆฌ ์„œ๋กœ ๋‹ค๋ฅธ ์šฐ์ฃผ์— ์‚ด๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ 


โš–๏ธ cgroup (control group)

์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œํ•œยท๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ์ˆ 

  • ์ปจํ…Œ์ด๋„ˆ๋งˆ๋‹ค CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ I/O ๋“ฑ์„ ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ œํ•œ
  • ์ž์› ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•˜๊ฑฐ๋‚˜, ์ดˆ๊ณผ ์‹œ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ๋„ ๊ฐ€๋Šฅ

cgroup์€ ๊ฐ ์ปจํ…Œ์ด๋„ˆ์— ์–ผ๋งˆ๋งŒํผ์˜ ํŒŒ์›Œ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š”์ง€ ์ •ํ•ด์ฃผ๋Š” ์•ˆ์ „๋ฒจํŠธ


0๊ฐœ์˜ ๋Œ“๊ธ€