Pro Yearly is on sale from $80 to $50! »

システムコンテナ向けエンジン LXC/LXD のご紹介 / JapanContainerDays v18.12 meetup

2591343b244565d6199f61c4acd148f9?s=47 tenforward
December 03, 2018

システムコンテナ向けエンジン LXC/LXD のご紹介 / JapanContainerDays v18.12 meetup

JapanContainerDays v18.12 Meetup の資料です。
参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

2591343b244565d6199f61c4acd148f9?s=128

tenforward

December 03, 2018
Tweet

Transcript

  1. γεςϜίϯςφ޲͚Τϯδϯ LXC/LXD ͷ͝঺հ JapanContainerDays v18.12 Meetup Ճ౻ହจʢ@ten_forwardʣ 2018-12-03

  2. ࣗݾ঺հ Ճ౻ହจ • https://www.ten-forward.ws/ • @ten_forwardʢTwitterʣ • https://github.com/tenforward/ • https://tenforward.hatenablog.com/

    ʢٕज़ϒϩάʣ 1/12
  3. ࣗݾ঺հʢ͓࢓ࣄʣ ϑΝʔεταʔόɹ։ൃ෦ɹॴଐ 2/12

  4. ࣗݾ঺հʢίϯςφํ໘ʣ • 10 ೥΄Ͳલ͔Βίϯςφؔ࿈ͷ։ൃ΍ػೳௐࠪΛߦ͏ • ΦʔέετϨʔγϣϯΑΓΧʔωϧدΓʹڵຯ͕͋Δɺίϯςφͷྲྀߦʹ৐Γ஗Ε ͨίϯςφΤϯδχΞ • LXC ͰֶͿίϯςφೖ໳ɹʔܰྔԾ૝Խ؀ڥΛ࣮ݱ͢Δٕज़ʢgihyo.jpʣ

    • ίϯςφܕԾ૝Խͷ৘ใަ׵ձओ࠻ ʢhttps://sites.google.com/site/containerstudy/ʣ 3/12
  5. linuxcontainers.org • ʮγεςϜίϯςφʯʹϑΥʔΧεΛ౰ͯɺؔ࿈͢ΔϓϩμΫτͷ։ൃΛߦ͏ϓϩ δΣΫτ • ։ൃͷத৺ͱͳΔΤϯδχΞ͸ Canonical/Ubuntu ํ໘ͷΤϯδχΞ • ϓϩμΫτ

    • LXC • LXD • LXCFS cgroup Λ࢖͍ proc ҎԼͷϑΝΠϧʹίϯςφ޲͚Ϧιʔε৘ใΛఏڙ • Ubuntu ͷ LTS ϦϦʔεʹ߹ΘͤͯϝδϟʔόʔδϣϯΞοϓʢݱࡏ͍ͣΕ΋ 3.xʣ 4/12
  6. LXC • ΋ͱ΋ͱ͸ Linux Χʔωϧʹ࣮૷͕ਐΉ֤छίϯςφؔ࿈ػೳΛ։ൃऀ͕ࢼͨ͢ Ίʹ࡞ΒΕͨ • ୯Ұϗετ্ͷίϯςφΛѻ͏ͨΊͷϥΠϒϥϦʢliblxcʣͱπʔϧ܈ • ֤छݴޠ͔Β࢖͏ͨΊͷόΠϯσΟϯάʢgolangɺpythonɺrubyɺluaʣ

    • 0.9 Ҏલ͸ Docker ͸ཪͰ LXC ͷίϚϯυΛݺͼग़͍ͯͨ͠ʢ౰࣌ͷ LXC ͸ ϥΠϒϥϦԽ͞Ε͍ͯͳ͔ͬͨʣ   # ps axf : (snip) 1363 pts/2 Ssl+ 0:15 /usr/local/bin/docker -d 3661 pts/4 Ss 0:00 \_ lxc-start -n 2bca4c0732612be32fcb978c48c260c37a9b494cf37a6844f0ddefb2d4441ca1 -f /var/lib/doc 3665 pts/4 S+ 0:00 \_ /bin/bash   5/12
  7. LXD • ωοτϫʔΫ্ͷίϯςφϗετͱ LXC ίϯςφΛ؅ཧ͢Δ • UNIX ιέοτ or ωοτϫʔΫܦ༝Ͱ

    REST API ΛఏڙʢίϚϯυϥΠϯΫϥ ΠΞϯτ͕ଘࡏ͢Δʣ • Go όΠϯσΟϯάܦ༝Ͱ liblxc Λ࢖༻ʢLXC ͷॻ͖௚͠Ͱ͸ͳ͍ʣ • ຊ֨తͳ IaaS ؀ڥ޲͚ʹ͸ OpenStack ޲͚ͷυϥΠό͕ଘࡏ OpenStack Ͱͷར༻͸͜ͷ͋ͱͷηογϣϯʮOpenStack ʹΑΔ LXD ίϯς φ׆༻ೖ໳ʯΛͲ͏ͧʂ 6/12
  8. LXD ͷػೳ • ΠϝʔδϕʔεʢUbuntu ΍֤छσΟετϦϏϡʔγϣϯͷΠϝʔδ͕४උ͞Ε ͍ͯΔʣ • جຊ͸ඇಛݖίϯςφʢಛݖίϯςφ΋Մೳʣ • ϓϩϑΝΠϧʢίϯςφͷߏ੒΍ɺ͋ΒΏΔઃఆΛϓϩϑΝΠϧͱͯ͠อ࣋͠ɺί

    ϯςφʹద༻Մೳʣ • ʢྫʣEC2 ෩ͷΠϯελϯελΠϓͰίϯςφ࡞੒Մೳ ʢlxc launch ubuntu:18.04 ct01 -t t2.microʣ • ωετʢίϯςφ in ίϯςφʣՄೳ • ؆қతͳΫϥελϦϯάػೳʢશ LXD ϊʔυͰ DB Λಉظʣ • CRIU Λ࢖ͬͨϥΠϒϚΠάϨʔγϣϯ ʢCRIU ͸ 12/5 ޕޙʹηογϣϯ͕͋Γ·͢Ͷʂ ʣ • cloud-init αϙʔτ • ༷ʑͳετϨʔδʢϑΝΠϧγεςϜʣʹରԠ͠ɺͦΕͧΕͷػೳʹԠͨ͡ૢ࡞͕ Մೳ 7/12
  9. LXC/LXD Λ࢖͏ཧ༝ • γεςϜίϯςφ ˠੈͷதΞϓϦέʔγϣϯίϯςφͰຬͨ͞ΕΔཁ݅͹͔ΓͰ͸ͳ͍Ͱ͢ΑͶ? ܰ ྔͳԾ૝ϗετ؀ڥͱͯ͠ • ΦϑΟγϟϧͳ೔ຊޠυΩϡϝϯτ͕ଗ͍ͬͯΔ ˠ

    linuxcontainers.org Ͱ΄΅׬ᘳʹ຋༁͞Ε͍ͯΔͷ͸೔ຊޠ͚ͩ!! • Linux Χʔωϧʹଟ਺࣮૷͞Ε͍ͯΔίϯςφؔ࿈ػೳΛ࢖ͬͯΈ͍ͨ! ˠ LXC ͸ΧʔωϧͷػೳΛϑϧʹ࣮૷ͯ͠࡞ΒΕ͍ͯΔ 8/12
  10. LXD Λࢼ͢ʹ͸ Πϯετʔϧ͢ΒෆཁͰ͢!! • ެࣜϖʔδ͔ΒΦϯϥΠϯͰࢼ༻Մೳ!! • ΋ͪΖΜ Ubuntu Server ؀ڥΛ४උ͢Ε͹σϑΥϧτͰىಈ͍ͯ͠·͢

    9/12
  11. LXD Λࢼ͢ʹ͸ 1. ʢUbuntu Server ؀ڥͷ৔߹ʣlxd σʔϞϯͷॳظԽ   $

    sudo lxd init ʢ࣭໰ʹ౴͑Δʣ   ʢΦϯϥΠϯ؀ڥͷ৔߹͸ෆཁʣ 2. ίϯςφͷىಈ   $ lxc launch ubuntu:18.04   10/12
  12. ·ͱΊ • ܰྔͳԾ૝ϗετ؀ڥʢγεςϜίϯςφʣ͕ඞཁͳ৔߹ɺੋඇ LXC/LXD ͷ࢖ ༻Λߟ͑ͯΈ͍ͯͩ͘͞ʂ • LXC/LXD ؔ܎ͷ຋༁Λ͓ख఻͍͍͚ͨͩΔํืूதͰ͢ 11/12

  13. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 12/12