1~2์žฅ

์ƒ์„ฑ์ผ
Sep 17, 2021 04:43 PM
๋ณ„๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์€ ์—†์Œ
Docker ์˜ ์—ญ์‚ฌ
  • ๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ๊ฐœ๊ด€

์ถœ๋ฐœ

  • chroot
    • ๊ฒŒ์ŠคํŠธ User์—๊ฒŒ ๋…๋ฆฝ๋œ ๋ฃจํŠธ ์ œ๊ณต
  • namespace, cgroup
    • Namespace : ํ”„๋กœ์„ธ์Šค ๋…๋ฆฝ => pid๊ฐ€ ๊ฐ™์„ ์ˆ˜ ์žˆ๋‹ค.
    • Cgroup : control group, ํ•˜๋“œ์›จ์–ด ์ž์› ๋ถ„๋ฐฐ
    • Hypervisor ์ข…๋ฅ˜
      • Virture Box
      • Xen
      • KVM -> OVS
      • VMWARE.. -> NSX
      • Hyper-V
    • OS/๋ฌผ๋ฆฌ๋จธ์‹  ๊ฐ€์ƒํ™” => Hypervisor
    • ๋„คํŠธ์›Œํฌ ๊ฐ€์ƒํ™” => VXLAN, Overlay Network
      • OSI 1~ 7๋ ˆ์ด์–ด
      • 2๋ ˆ์ด์–ด์˜ ํ”„๋กœํ† ์ฝœ์„ 3๋ ˆ์ด์–ด์— ๊ตฌํ˜„
      • 1๋ ˆ์ด์–ด -> 2๋ ˆ์ด์–ด ->
      • ์ „์†ก๊ณ„์ธต์— IP๊ณ„์ธตโ€ฆ
      • Flannel. Weeave, calico โ€ฆ.=> ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์“ฐ์ด๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ Ingressโ€ฆ
    • ํŒŒ์ผ์‹œ์Šคํ…œ ๊ฐ€์ƒํ™”
    • ์™ผ์ชฝ๊บผ์—์„œ
      • App1 ์ด printf() -> ๊ธฐ๊ณ„์–ด
      • notion image
  1. LXC ๋ž€?
    1. ๋ฆฌ๋ˆ…์Šค์—์„œ, ๋‹จ์ผ ํ˜ธ์ŠคํŠธ์— ์—ฌ๋Ÿฌ ๊ฐœ ๊ณ ๋ฆฝ๋œ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์šด์˜์ฒด์ œ ๋ ˆ๋ฒจ์—์„œ์˜ ๊ฐ€์ƒํ™” ๋ฐฉ๋ฒ•.
    2. ์šด์˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์™„๋ฒฝํ•œ ๊ณ ๋ฆฝ์„ ์ œ๊ณต
    3. ๋‹ค์–‘ํ•œ ์‹คํ–‰ ๋“œ๋ผ์ด๋ฒ„ ์กด์žฌ (์ดˆ๋ฐ˜์—๋Š” ๋„์ปค๋„ LXC ๊ธฐ๋ฐ˜)
    4. ๊ตฌ์„ฑ์š”์†Œ
      1. liblxc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
        • API์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ”์ธ๋”ฉ :
          • python3 (lxc ๋‚ด, 1.0.x์™€ 2.0.x์—์„œ ์žฅ๊ธฐ ์ง€์› (LTS, long term support))
          • lua (lxc ๋‚ด, 1.0.x์™€ 2.0.x์—์„œ ์žฅ๊ธฐ ์ง€์›)
          • Go
          • ruby
          • python3
          • Haskell
        • ์ปจํ…Œ์ด๋„ˆ ์ œ์–ด๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ๋„๊ตฌ ์„ธํŠธ
        • ๋ฐฐํฌํŒ์šฉ ์ปจํ…Œ์ด๋„ˆ ํ…œํ”Œ๋ฆฟ
    5. https://www.44bits.io/ko/keyword/linux-container#%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EB%9F%B0%ED%83%80%EC%9E%84
  1. ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„
    1. ๋„์ปค vs LXC
      1. ๋„์ปค์—๋Š” ์บก์ฒ˜ ๊ธฐ๋Šฅ ์กด์žฌ(์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€)
      2. LXC -> libcontainer๋กœ ๋ณ€๊ฒฝ
        1. notion image
    2. ์ข…๋ฅ˜
      1. ๋„์ปค(containerd)
      2. Runc
        1. ๊ฒฝ๋Ÿ‰ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„
      3. CRI-O
        1. ํฌ๋ฆฌ-์˜ค
        2. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์šฉ ๊ฒฝ๋Ÿ‰ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„
      4. Podman
        1. Docker engine ์ •๋„ ์—ญํ• .
      5. Rancherโ€ฆ RKS => K3S
      6. Minicube => ๋…ธ๋“œ 1๋Œ€๋กœ ๋ชจ๋“ ์—ญํ• ..
    3. OCI์ŠคํŽ™
      1. ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ๋„๊ตฌ ํ‘œ์ค€
  1. ๋„์ปค๋ž€?
    1. Dockerd (๋„์ปค ๋ฐ๋ชฌ), docker(๋„์ปค ํด๋ผ์ด์–ธํŠธ), ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ
    2. ํ•œ๊ณ„
      1. Docker Daemon์˜ ์กด์žฌ
        1. ํ˜ธ์ŠคํŠธ์˜ ๋‹ค๋ฅธ ์ด์œ ๋กœ OS ์ž์› ํ• ๋‹น์ด ์–ด๋ ค์šธ ๋•Œ, ๋„์ปค ์œ„์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‘ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ.
        2. ๋Œ€์•ˆ : Podman ๋“ฑ
          1. Podman : Daemonless, ๋ฐ๋ชฌ ์—†์ด ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ ๊ฐ€๋Šฅ
    3. Dockerd์˜ ์—ญํ• ?
Docker Daemon์€ HTTP ๊ธฐ๋ฐ˜ REST API๋ฅผ ์ œ๊ณตํ•˜์—ฌ Docker Client๊ฐ€ Container๋ฅผ ์ œ์–ดํ•˜๊ณ  ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒํ•œ๋‹ค. Docker Client๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์š”์ฒญ์ค‘์—์„œ ๋Œ€๋ถ€๋ถ„์€ dockerd๊ฐ€ ๊ตฌ๋™์‹œํ‚จ containerd์—๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ์œ„์ž„ํ•˜๊ณ , ์ผ๋ถ€ ์š”์ฒญ๋งŒ ์ง์ ‘ ์ฒ˜๋ฆฌํ•œ๋‹ค. dockerd๋Š” containerd ๊ตฌ๋™, Docker Image Build (Dockerfile), Container Network ์„ค์ • (Bridge, iptables), Container Log ๊ธฐ๋ก, docker-proxy ๊ตฌ๋™ ๋“ฑ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
Docker Daemon์˜ REST API๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ "/var/run/docker.sock" ํŒŒ์ผ์˜ Unix Domain Socket์„ ํ†ตํ•ด์„œ ์ œ๊ณต๋˜๋ฉฐ Docker Daemon์˜ Opiton์„ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด์„œ TCP Socket์„ ์ด์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • UDS => TCP/UDP๋ฅผ ํŒŒ์ผ๋กœ Local์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š”โ€ฆ.
  1. Docker Swarm?
    1. ์œ„์—์„œ ๋งํ•œ TCP Socket์„ ์ด์šฉํ•˜๋„๋ก ํ•˜์—ฌ, Rest API ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ Docker ์‹คํ–‰ ํ˜ธ์ŠคํŠธ๋“ค์„ ๊ด€๋ฆฌ, ์ปจํ…Œ์ด๋„ˆ๋“ค์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ Orchestration ์ œ๊ณต
    2. ๋ ˆํ”Œ๋ฆฌ์นด, Rolling ๋ฐฐํฌ ๋“ฑ ๊ธฐ๋Šฅ ์ง€์›
    3. ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ (ingress) ์ œ๊ณต
  1. Docker Compose?
    1. Docker ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ์ž๋™ํ™” ํ™˜๊ฒฝ
    2. Docker ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์„ค์ •, Execution ํฌ์ธํŠธ ๋“ฑ ์ œ๊ณต
  1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค?
    1. ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด
    2. ์ž์„ธํ•œ๊ฑด ๋ฐฐ์›Œ๋‚˜๊ฐ€์ž!
    3. notion image
      ย