Slide 1

Slide 1 text

ぢアふべ〣ྺ࢙ぇ௥⿶〟⿿〾⿶〳⿶〖〞ぢアふべ〠〙⿶〛⿼《〾⿶「〛〴぀ Infra Study 2nd #2ʮぜ゘げへぼぐふくゅぇࢧ⿺぀ぐアや゘ٕज़ʯ Ճ౻ହจ 2021-06-11 1/24

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ࣗݾ঺հʢ1ʣʙࢲ〠〙⿶〛 ɹ Ճ౻ହจʢ͔ͱ͏΍͢;Έʣ • @ten_forward • https://github.com/tenforward/ • ॳ〶〛৮ぁ〔ぢアふべ〤 Virtuozzoʢ2007 ೥〉あʣ • ޷ 〟てとふわぢが゚〤 setns() 2/24

Slide 4

Slide 4 text

ࣗݾ঺հʢ2ʣʙ࢓ࣄ ॴଐ גࣜձࣾ IDC ϑϩϯςΟΞ • ゛アの゚つがみ։ൃʢ15 ೥〰〞ʣ • ぢアふべつがもと։ൃʢ1 ೥ʣ • ৘ใなずゔ゙ふくؔ܎ʢ2021-04ʙʣ 3/24

Slide 5

Slide 5 text

4/24

Slide 6

Slide 6 text

5/24

Slide 7

Slide 7 text

6/24

Slide 8

Slide 8 text

7/24

Slide 9

Slide 9 text

ࣗݾ঺հʢ3ʣʙOSS ׆ಈ ʢLXC 〣 Contributors らがでʣ ɹ ɹ झຯ〜ぢアふべ〹〘〛〳『ɻぢアふべ〣ओ〠じがぼ゚पล〣࣮ ૷〠ڵຯ⿿⿴〿〳『ɻ • LXC 〜ֶ〫ぢアふべೖ໳ ʵܰྔԾ૝Խ؀ڥぇ࣮ݱ『぀ٕ ज़ (gihyo.jp, 2014 ೥ʙ) • Plamo Linux ゐアふべそ゚がゆ • 20 ੈل⿾〾ଓ。ࠃ࢈ぶくとぷ゙もゔがてゖア • lxc-jp ゆ゜でこぜぷ • LXC/LXD ํ໘〣຋༁׆ಈ • ぢアふべܕԾ૝Խ〣৘ใަ׵ձʢ2013 ೥ʙʣ • ぢアふべٕज़〠ؔ『぀ษڧձ • ࣍ճɺ೥಺〠։࠵༧ఆ 8/24

Slide 10

Slide 10 text

ຊ೔〣಺༰ ぜ゘げへぼぐふくゅ〟〴〟《え〤 kubernetes ぇ௨「〛ぢアふべぇ࢖〘〛⿶぀ํ〷ଟ⿶〜「〼⿸ɻ 〜〷ぎゆ゙たがてゖア〣 Deployment 〹 Pod 〣ىಈ〤ҙࣝ「〛〷ɺPod 〣த〣ぢアふべ〣ىಈ〹ɺ〒〣 ぢアふべ⿿〞〣〽⿸〟ػೳぇ࢖〘〛࣮ߦ《ぁ〛⿶぀〣⿾ʁ 〳〜ҙࣝ『぀ਓ〤〟⿾〟⿾⿶〟⿶〣〜〤〟⿶〜 「〼⿸⿾ʁ 〒〈〜ɺ〈〣なひてゖア〜〤ʮぢアふべʯ⿿⿶⿾〠ଟ。〣ػೳぇ࢖༻「〛ىಈ「〛。぀〣⿾ぇ؆୯〠঺հ「 〔⿶〝ࢥ⿶〳『ɻ • શ෦ྺ࢙ぇ௥〘〛঺հ「〛⿶぀〝࣌ؒ⿿⿴〿〳【え〣〜ɺదٓࢀߟ〠〟぀へずゔゐアぷ〟〞〭〣゙ア ぜぇష〿〳『 • ࠓ೔〤આ໌〤「〟⿶〷〣〣ɺॏཁ〟ٕज़〠ؔ「〛〤આ໌〣と゘ぐへ〕々ೖぁ〛⿴〿〳『 • 〷⿸গ「ৄ「⿶ぢアふべ〣ྺ࢙〤 CloudNative Days Tokyo 2019/KOF 2019 〣ൃදࢿྉ〠⿴〿 〳『 • ࢲ〣 asciinema 〠ɺぢろアへぇ࢖〘〛ぢアふべぇ࡞぀ぶゑ⿿〔。《え⿴〿〳『〣〜ɺ〷「〉ڵຯ⿿ ⿴ぁ〥】〧〉ཡ。〕《⿶ˠ https://asciinema.org/ tenforward 9/24

Slide 11

Slide 11 text

Ծ૝ろてア〝ぢアふべ

Slide 12

Slide 12 text

Ծ૝ろてア〣⿼⿼》〘〦『、぀ྺ࢙ Ծ૝ろてア: • ゐぐアや゛がわ〣ੈք〜〤 1970 ೥୅ং൫⿾〾⿴぀ٕज़ • PC 〣ੈք〜〤 1999 ೥〠 VMware ⿿ొ৔「〛Ҏདྷ〣ൃల Ұํ〜ܰྔ〟ʮԾ૝؀ڥʯ〝「〛〣ぢアふべ〷ݹ。⿾〾ଘࡏ「〛⿶぀ • chroot: ゆ゜なと〠ର「〛೚ҙ〣ぶく゛ぜぷ゙ぇ゚がぷ〝「〛ࢦఆ『぀ • 1979 ೥ UNIX Version 7 〜ɺ1982 ೥ BSD 〭ಋೖ • 2000 ೥୅ॳظ〠 FreeBSD jail, VirtuozzoʢLinux ޲々঎༻ぢアふべぬやぷʣ ɺLinux VServer • りとふくアそۀऀ〟〞〜ܰྔ〟ʮԾ૝ろてアʯ〝「〛ར༻ʢ゙ぬがとফඅ⿿গ〟。ूੵ౓ぇ্〆〾ぁ぀〝⿶⿸ ࢹ఺ʣ • てとふわ〝「〛ぢアふべぇಈ⿾『⿶い〻぀ʮてとふわぢアふべʯ 10/24

Slide 13

Slide 13 text

ぢアふべ ぢアふべ〝〤ʁ • ゆ゜なと • ଞ〣ゆ゜なと⿾〾ִ཭《ぁ〔Ծ૝త〟ۭؒ〜ゆ゜なと⿿ ಈ。 Linux 〜〤じがぼ゚಺〣ػೳ • Namespaceʢִ཭ػೳʣ • cgroupʢ゙ぬがと੍ݶʣ • 〒〣ଞଟ਺〣ػೳ 〜ʮぢアふべʯぇ࡞〿〳『ɻʮίϯςφʯͱ͍͏୯Ұͷػ ೳ͸͋Γ·ͤΜ ˠゆ゜なと〟〣〜ී௨〠 OS ্〜ゆ゜なとぇىಈ『぀〣〝ಉ౳ 〣とゃがへ〜؀ڥ⿿ىಈ「〛。぀ ˠඞཁ〟ػೳ〝ઃఆぇ૊〴߹い【〛ʮぢアふべʯぇ࡞੒〜 ぀ 11/24

Slide 14

Slide 14 text

Linux Kernel 〭〣ぢアふべؔ࿈ٕज़〣 ࣮૷〝 LXC

Slide 15

Slide 15 text

やきぐ゚てとふわܥ〣ػೳ〣࣮૷ظ ⿾〟〿ݹ。⿾〾ぢアふべؔ࿈〣ػೳ〣࣮૷〤࢝〳〿〳『ʢpivot_root 〤ぢアふべ༻〣ػೳ〜〤〟⿶〜『 ⿿ɺࠓ〤ぢアふべ〠࢖いぁ〛⿶〳『ʣ ɻ〳』〤やきぐ゚てとふわํ໘〣ػೳ⿾〾ɻ • pivot_rootʢ2.3.41/2000 ೥ʣˠぢアふべઐ༻〣ಠཱ「〔やきぐ゚てとふわ • bind mountʢ2.4.0/2001 ೥ʣˠ೚ҙ〣ぶく゛ぜぷ゙ぇ゚がぷ〠 pivot_root 『぀〣〠ඞཁ • mount namespaceʢ2.4.19/2002 ೥ʣˠぢアふべؒ〜ろげアぷૢ࡞ぇ෼཭〜 ぀ ͜ͷ̏ͭͷػೳͰϚ΢ϯτૢ࡞Λಠཱͤͨ͞ίϯςφઐ༻ͷϑΝΠϧγεςϜ͕࡞Ε·͢ɻ 〈〣ػೳ〕々ぇ࢖〘〛やきぐ゚てとふわ〝ろげアぷぇִ཭「〔ぢアふべぇ࡞぀ぶゑ: https://asciinema.org/a/258206 ろげアぷपล〣ৄ「⿶ࢿྉ ろげアぷゆ゜むだがてゖア 12/24

Slide 16

Slide 16 text

pivot_root ぇ࢖〘〔ಠཱ「〔やきぐ゚てとふわび゙が • root ϑΝΠϧγεςϜࣗମΛऔΓସ͑Δʢൈ々぀〝⿶⿸֓೦⿿〟⿶ʣ • chroot 〠ൺ〮〛 pivot_root 〜 ぀৚݅〤ݫ「⿶ pivot_root લ pivot_root ޙ • ʮ৽「⿶ root やきぐ゚てとふわʯ⿾〾〤ൈ々ग़【〟⿶ • Docker 〹 LXC/LXD 〟〞〤 pivot_root ぇ࢖༻「〛⿶぀ 13/24

Slide 17

Slide 17 text

ぢアふべ〣࡞੒ྫʢ〔〕「ろげアぷؔ࿈〣〴ִ཭「〔ぢアふべɺઆ໌〟「ʣ # cat /proc/self/mounts ʢりとぷ〣ろげアぷ৘ใぇ֬ೝɺ〔。《え〣やきぐ゚てとふわ⿿ろげアぷ《ぁ〛⿶぀ʣ : (snip) udev /dev devtmpfs rw,nosuid,noexec,relatime,size=974296k,nr_inodes=243574,mode=755 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 : (snip) # touch /HOST_ROOT ʢりとぷ〣゚がぷ/〠 HOST_ROOT 〝⿶⿸やきぐ゚ぇஔ。ʣ # touch /var/container/CONTAINER_ROOT ʢぢアふべぐゐがで〣゚がぷ/var/container 〠 CONTAINER_ROOT 〝⿶⿸やきぐ゚ぇஔ。ɻ〈〣഑Լ〠〤ぢアふべぐゐがで⿿ల։《 ぁ〛⿶぀〝「〳『ʣ # unshare --mount --fork -- /bin/bash ʢmount namespace ぇ࡞぀ʣ # mount --make-rprivate / ʢろげアぷૢ࡞⿿ namespace ぇ〳〔⿶〜൓ө《ぁ〟⿶〽⿸〠『぀⿼〳」〟⿶ʣ # mkdir /var/newroot ʢ৽〔〠ぢアふべぇ࡞੒『぀ぶく゛ぜぷ゙〣࡞੒ʣ # mount --bind /var/container /var/newroot ʢぢアふべぐゐがでぇ/var/newroot 〠 bind mountʣ # cd /var/newroot # ls ʢ/var/newroot 〠ぢアふべぐゐがで⿿ bind mount 《ぁ〛⿶぀ʣ bin dev home media opt root sbin sys usr CONTAINER_ROOT etc lib mnt proc run srv tmp var # mount -t proc -o rw,nosuid,nodev,noexec,relatime proc proc ʢ/var/newroot/proc 〠 proc やきぐ゚てとふわぇろげアぷʣ # mkdir old ʢpivot_root 〜Ҏલ〣゚がぷぇろげアぷ『぀ぶく゛ぜぷ゙ぇ࡞੒ʣ # pivot_root . old ʢݱࡏ〣ぶく゛ぜぷ゙ (/var/newroot) ぇ゚がぷ〠ɺҎલ〣゚がぷぇ/old 〠ろげアぷ「〛 pivot_rootʣ # ls / ʢݱࡏ〣ぶく゛ぜ゙⿿゚がぷ〠〟〘〛⿶぀ʣ CONTAINER_ROOT lib proc sys : (snip) # ls /old ʢ/old 〠〤Ҏલ〣゚がぷʢ〙〳〿りとぷ〣゚がぷʣ⿿ろげアぷ《ぁ〛⿶぀ʣ HOST_ROOT initrd.img.old proc tmp # umount -l /old ʢ/old 〤ෆཁ〟〣〜ぎアろげアぷʣ # ls /old ʢ/old ҎԼ〤ۭ〠ʣ # cat /proc/self/mounts ʢろげアぷ৘ใぇݟ぀〝ぢアふべ〣゚がぷ〝 proc 〕々⿿ろげアぷ《ぁ〛⿶぀ʣ /dev/sda1 / ext4 rw,relatime,errors=remount-ro 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 14/24

Slide 18

Slide 18 text

Linux ぢアふべ׬੒ظୈҰظ 2006ʙ2008 ೥〠⿾々〛⿾〟〿〣ػೳ⿿௥Ճ《ぁɺNamespace 〤ओཁ〟〷〣⿿ଗ〘〔: • ぢアふべ〉〝〠: • ಠࣗ〣りとぷ໊⿿෇々〾ぁ぀〽⿸〠〟〘〔ˠ UTS Namespaceʢ2.6.19/2006 ೥ʣ • ゆ゜なとؒ௨৴ぇִ཭〜 ぀〽⿸〠〟〘〔ˠ IPC Namespaceʢ2.6.19/2006 ೥ʣ • ಠཱ「〔 PID ⿿෇々〾ぁ぀〽⿸〠〟〘〔ˠ PID Namespaceʢ2.6.24/2008 ೥ʣ • ಠཱ「〔ぼひぷゞがぜ I/Fɺぎへ゛とɺれがぷɺ゚がふくアそɺやく゚の゙アそ⿿࣋〛぀〽⿸〠〟〘〔ˠ Network Namespaceʢ2.6.24/2008 ೥ʣ • ぢアふべ༻〣Ծ૝ぐアのがやこがと⿿࣋〛぀〽⿸〠〟〘〔ˠ vethʢ2.6.24/2008 ೥ʣ ɺmacvlan ʢ2.6.23/2007 ೥ʣ • CPU 〣゙ぬがと੍ݶ⿿⿾々〾ぁ぀〽⿸〠〟〘〔ˠ cgroup cpu, cpuacct, cpuset ぢアぷ゜が゘が ʢ2.6.24/2008 ೥ʣ • LXC 〣஀ੜʢ2008 ೥ʣ • じがぼ゚〠ػೳ⿿ॆ࣮「〛 〔〷〣〣〒ぁぇ։ൃऀ⿿ࢼ『؀ڥ⿿〟⿶〣〜஀ੜ • 0.8 。〾⿶〳〜〤 Cɺてこ゚ɺPython ゆ゜そ゘わ〣د【ू〶ʢぐろぐば࢖⿶〚〾⿶ʣ 15/24

Slide 19

Slide 19 text

PID Namespace 〠〽぀ಠཱ「〔ゆ゜なとۭؒ • ぢアふべ಺〜〞え〟ゆ゜なとぇ࣮ߦ「〛⿶぀⿾ɺଞ〣ぢアふべ⿾〾ݟ⿺〔〾ぐん • ぢアふべ〉〝〠ಠཱ「〛 PID ぇ࣋〖〔⿶ • 〔〕「ɺりとぷ (਌ Namespace) ⿾〾ぢアふべ (ࢠ〣 Namespace) 〣ゆ゜なと〤ݟ⿺〳『 16/24

Slide 20

Slide 20 text

veth ぐアのがやこがとʢઆ໌〟「ʣ • Virtuozzo/OpenVZ ༝དྷ • ࡞੒『぀〝ର〝〟぀ぐアのがやこがと⿿ੜ੒《ぁ぀ɻ 〒〣ର〝〟぀ぐアのがやこがとؒ〜௨৴ぇߦ⿸ʹ L2 〣ぷアぼ゚ • ର〣ยํぇりとぷɺยํぇぢアふべ〣 Namespace 〠ॴଐ《【぀ʢҟ〟぀ Namespace ؒ〜〟⿶〝௨৴ ෆՄʣ 17/24

Slide 21

Slide 21 text

ぢアふべ〣స׵ظ

Slide 22

Slide 22 text

ぢアふべ〣స׵ظ 2010 ೥〉あ⿾〾〣ྲྀぁ • ぐアや゘〣ぢがへԽ〣ྲྀぁ • DevOpsɺCI/CD 〣〽⿸〟։ൃɺぶゆ゜ぐɺӡ༻〣とゃがへぎひゆ • PaaS, SaaS 〣୆಄ ˠとゃがへʴԾ૝ろてアత〟れがのも゙ふくʴなずゔぎʢろ゚ばふべアぷʣ〟ಠཱ؀ڥ⿿ॏཁ • とゃがへ໘〠ண໨「〔ぢアふべ〣࠾༻ʢैདྷ〣゙ぬがとফඅ〠ண໨「〔ར༻⿾〾〣స׵ʣ • ゆ゜なとぇىಈ『぀〕々〟〣〜଎⿶ • ⿾〟〾』「〷Ծ૝ろてア〣〽⿸〠てとふわ〝「〛ىಈ「〟。〛〷ྑ⿶〝⿶⿸ゐ゙ひぷ ˠぎゆ゙たがてゖアぢアふべ • ಠཱ「〔やきぐ゚てとふわぇ࢖〘〛れがのも゙ふくぇ֬อ「〟⿿〾ىಈ〜 ぀ • ಠཱ「〔ִ཭ۭؒ 〝⿶⿸ゐ゙ひぷぇ׆⿾「〟⿿〾ぢアふべぇ׆༻『぀ྲྀぁ⿿ੜ〳ぁ぀ 18/24

Slide 23

Slide 23 text

ぢアふべػೳ〣ॆ࣮〣 Docker 〣ొ৔ 2009ʙ2013 ೥〉あ • ぢアふべ〉〝〠: • ゐゑ゙が੍ݶ⿿⿾々〾ぁ぀〽⿸〠〟〘〔ʢ2.6.29/2009 ೥ʣ • I/O ੍ݶ⿿⿾々〾ぁ぀〽⿸〠〟〘〔ʢ2.6.33/2010 ೥ʣ • ೚ҙ〣てとふわぢが゚〣やく゚の゙アそ⿿〜 ぀〽⿸〠〟〘〔ʢ3.5/2012 ೥ɺseccompɺޙड़ʣ • ぢアふべ֎⿾〾ぢアふべ಺〠ೖ〘〛ぢろアへ࣮ߦ〜 ぀〽⿸〠〟〘〔ˠ setns てとふわぢが゚ ʢ2011ʙ2013 ೥ʣ ぢアふべ〜てとふわ〹ぎゆ゙たがてゖアぇಈ⿾『ओཁ〟ػೳ⿿Ұ௨〿〒あ〘〔 • LXC ぇ࠾༻「〔 PaaSɺSaaS 〣ొ৔ɻ「⿾「⿶〳⿶〖ぐた〛〟⿶ LXC • ʢ౰࣌〣ʣLXC 〣ぐた〛〟⿶〝〈あぇ゘ひゆ『぀ Docker 〣ొ৔ʢॳظ Docker 〤ཪଆ〜 LXC ぇ ࢖༻ʣ • ぐろぐば࢖⿶〚〾⿶ CLI ぇ docker ぢろアへ〜゘ひゆ • ぐゐがでよがとʴゕぺざアやきぐ゚てとふわ࢖༻〜ぢアふべぐゐがで࡞੒ˠىಈ〣とゃがへぎひゆ • ぼひぷゞがぜܦ༝〣ぢアふべ؅ཧ • Docker ొ৔ޙ〤ʮぢアふべʯ˺ʮぎゆ゙たがてゖアぢアふべʯ Ұ༂ʮίϯςφʯ͕࿩୊ͷٕज़ʹ!! 19/24

Slide 24

Slide 24 text

ぢアふべػೳ〣ॆ࣮ظ

Slide 25

Slide 25 text

cgroup v2 Docker 〣ొ৔〠〽぀ʮぢアふべʯ〣੝〿্⿿〿〜ɺじがぼ゚〠ぢアふべؔ࿈ػೳ⿿ೖ〿〹『⿶؀ڥ〠 〟〘〔 • cgroup v1 • ぢアふべ⿿ゐでをが〜〟⿶࣌ظ〠ಋೖ⿿ਐえ〕〣〜ɺ߇⿺〶〠ԕྀ⿿〖〠ػೳ⿿࣮૷《ぁ぀ • ˠぢアふべར༻〣֦େ〝〝〷〠໰୊఺⿿໌〾⿾〠 • ৄ「。〤 LXC 〜ֶ〫ぢアふべೖ໳ ୈ 37 ճぇ〉ཡ。〕《⿶ • cgroup v2ʢ4.5/2016 ೥ʣ • v1 〝〣ぐアのがやこがと〣ޓ׵ੑぇ⿴぀ఔ౓อ〘〛ɺcgroup ぇ⿴぀〮 ࢟〠࣮૷「〟⿼「〔 • ぐアのがやこがと⿿શ。มい〘〛⿶぀ػೳ〷⿴぀ʢeBPF ぇ࢖〘〛੍ݶぇ⿾々぀ぢアぷ゜が゘が〝⿾ʣ • ݱ࣮త〟゙ぬがと੍ݶ⿿⿾⿾぀〽⿸〠〟〘〔 • PSIʢ4.20/2018 ೥ʣ • CPU, Memory, IO 〣ෛՙ⿿૿େ「゙ぬがと⿿ෆ଍「〛⿶぀ঢ়گぇ؍ଌՄೳ 20/24

Slide 26

Slide 26 text

なずゔ゙ふくػೳ ୯〟぀りとぷ্〜ىಈ『぀ゆ゜なと〜⿴぀ぢアふべぇ҆શ〠࢖⿸〠〤༷ʑ〟なずゔ゙ふくػೳ〣ॿ々⿿ඞཁ • seccomp • てとふわぢが゚⿿やく゚の゙アそ〜 ぀ػೳɻࠓ〣ぢアふべ〜〤౰〔〿લ〠࢖いぁ〛⿶぀ػೳʢࠓ⿼〷〠࢖い ぁ〛⿶぀ػೳ〤 3.5 〜ಋೖ〣 mode 2ʣ • Introduction to Seccomp ʢ@mrtc0 《えʣˡجૅ⿾〾ਂ૚〳〜୹࣌ؒ〜ֶ〮぀ඇৗ〠『〉⿶ࢿྉʢಈը 〷ݟぁ〳『ʣ • seccomp notifyʢ5.0/2019 ೥ʣˠてとふわぢが゚〣࣮ߦՄ൱ぇゕがづがۭؒ〣ゆ゜そ゘わଆ〜൑அ〜 ぀ • seccomp 〕々ぇふがろ〠ษڧձぇ「〳「〔ʢಈըࢹௌՄʣ • capability • ࠓ〣ぢアふべ〜〤౰〔〿લ〠࢖いぁ〛⿶぀ • root ⿿࣋〙ಛݖぇࡉ෼Խ「〛ඞཁ〠Ԡ」〛ゆ゜なと〠ݖݶぇ෇༩〜 ぀ • ぢアふべ〉〝〠ݖݶぇࡉ⿾。༩⿺〔〿ണୣ「〔〿〜 ぀ • ࿈ࡌୈ 42 ճɺୈ 43 ճɺୈ 44 ճ〣ʮLinux じがぼ゚〣たがむも゙ふくʯ • User Namespaceʢ3.8/2013 ೥ʣ • ぢアふべ಺֎〣 UID/GID ぇろひゃアそ『぀ɻぢアふべ಺〜〤 rootɺりとぷ্〜〤Ұൠゕがづが〝⿶⿸〈〝 ⿿Մೳˠぢアふべ಺〜 root ݖݶ⿿ඞཁ〜⿴〘〛〷҆શ〠ぢアふべぇ࣮ߦՄೳ • Docker 〣 rootless ゑがへɺuserns-remap ػೳ • LXD 〜〤〈〣ػೳぇ࢖⿸〣⿿ぶやさ゚ぷ • LSMʢSELinux, AppArmor,...ʣ 21/24

Slide 27

Slide 27 text

〒〣ޙ〣৽ػೳɺվྑ ぢアふべ〝〤௚઀ؔ܎〟《〒⿸〟ػೳ〷ぢアふべ〠〝〘〛〤ॏཁ⿾〷ʢぢアふべؔ܎〣։ൃऀ⿿ख⿿々〛⿶ 〔〿『぀ʣ • OverlayFSʢ3.18/2014 ೥ʣ • ゕぺざアやきぐ゚てとふわʢ〒ぁ〳〜〣むひばద༻〣 aufs 〠औ〘〛୅い぀ඪ४ػೳʣ • cgroup 〣 pids ぢアぷ゜が゘がʢ4.3/2015 ೥ʣ • ぢアふべ಺〣ゆ゜なと਺〣੍ݶ • pidfdʢ5.3/2019 ೥ʣ • PID 〣॥؀໰୊〣ղܾʢ໨త〝ҧ⿸ゆ゜なと〠てそべ゚ૹ〘〛「〳⿸ةݥੑʣ • Time Namespaceʢ5.6/2020 ೥ʣ • ಠཱ「〔 uptimeʢCLOCK_MONOTONIC/CLOCK_BOOTTIMEʣ • clone3 てとふわぢが゚ぇ࢖〘〔ぢアふべゆ゜なとੜ੒〣ぢとぷ௿ݮʢ5.7/2020 ೥ʣ • ਌ゆ゜なと〝ҟ〟぀ cgroup 〠ゆ゜なとぇੜ੒〜 ぀ʢ〈ぁ〳〜〤਌ゆ゜なと〝ಉҰ cgroup 〠ੜ੒《ぁ぀ 〣〜Ҡಈ⿿ඞཁ〕〘〔ʣ • ID mapped Mountʢ5.12/2021 ೥ʣ • ぢアふべぐゐがでぇろげアぷ『぀ࡍɺぢアふべぐゐがで಺〣やきぐ゚〣ॴ༗ݖぇ೚ҙ〠มߋ〜 ぀ʢUser Namespace ぇ࢖〘〔ぢアふべ〣৔߹〠ぢアふべぐゐがで಺ぇ࠶ؼత〠 chown 『぀ඞཁ⿿〟⿶ʣ 22/24

Slide 28

Slide 28 text

〳〝〶

Slide 29

Slide 29 text

〳〝〶 • ぢアふべ〤ଟ。〣ػೳぇ૊〴߹い【〛࡞〾ぁ〛⿶぀ʢࠓճ঺հ「〔〣〤Ұ෦〜『ʣ • ඞཁ〟ػೳ〕々ぇ࢖〘〛ぢアふべぇ࡞ぁ぀ • 〔〳〠〤〒え〟ぢアふべ⿿ىಈ「〛。぀࣌〠࢖⿸ػೳ〠ࢥ⿶ぇ஘【぀〝ྑ⿶てとふわぇ࡞぀໾〠ཱ〙 ⿾〷「ぁ〳【え〽ʢશ。໾〠ཱ〔〟⿶⿾〷「ぁ〳【え〽ʣ ίϯςφʹؔ܎͢Δ Linux Χʔωϧͷ৽ػೳΛ௥͍͔͚Δͷ͸ָ͍͚͠Ͳɺ࠷ۙ͸ͱͯ΋௥͍͔͚Δͷ͕ ೉͍͠ͷͰɺΈͳ͞Μ΋ͥͻΧʔωϧͷ৽ػೳΛҰॹʹ௥͍͔͚·͠ΐ͏ʢ·ͱΊʹͳͬͯ·ͤΜ͕ʜʣ 23/24

Slide 30

Slide 30 text

Ҏ্ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 24/24