Upgrade to Pro — share decks privately, control downloads, hide ads and more …

最近のLinuxコンテナの進化 / TechFeed Summit #3

tenforward
August 20, 2020

最近のLinuxコンテナの進化 / TechFeed Summit #3

TechFeed Summit #3 中の LT 資料です。

tenforward

August 20, 2020
Tweet

More Decks by tenforward

Other Decks in Technology

Transcript

  1. ࠷ۙ〣 Linux ぢアふべ〣ਐԽ
    TechFeed Summit #3
    Ճ౻ହจ
    2020-08-20
    1/9

    View Slide

  2. ࣗݾ঺հ
    • TenForward(@ten_forward) / Ճ౻ହจ
    • linuxcontainers.org 〹 LXC/LXD ؔ࿈〣຋༁
    • LXC 〜ֶ〫ぢアふべೖ໳ ʵܰྔԾ૝Խ؀ڥぇ࣮ݱ『぀ٕज़
    • Plamo Linux ゐアふべが
    2/9

    View Slide

  3. Linux 〣ʮぢアふべʯ〝⿶⿸ݬӨ
    Linux 〠⿼々぀ʮぢアふべʯ
    • Linux kernel 〠ʮぢアふべʯ〝⿶⿸ػೳ〤⿴〿〳【えʢաڈ〠ʮぢアふべʯざゅでこぜぷ
    ⿿ఏҊ《ぁ〔〈〝〤⿴〿〳『ʼࠓ〣ॴ٫Լ《ぁ〛〳『ʣ
    • ৭ʑ〟ػೳ〣૊〴߹い【〜ʮぢアふべʯ⿿〜 〛⿶〳『
    • ʮぢアふべʯ〝〤Կ〾⿾〣ܗ〜りとぷ〹ଞ〣ʮぢアふべʯ⿾〾のとぜ〹のとぜび゙がぇִ཭
    「〛⿶〳『ʢݟ〔໨〜〷ɺ゙ぬがとফඅ〣໘〜〷ʣ
    Linux 〜ʮぢアふべʯぇߏங『぀ػೳ〣୅ද
    • NamespaceʢKubernetes 〣〒ぁ〝〤ؔ܎⿴〿〳【えʣ
    • cgroup
    〒〣ଞ৭ʑ〟ػೳ〣૊〴߹い【〜ʮぢアふべʯ〝⿶⿸ܗ〣〟⿶〷〣⿿〜 ⿴⿿〘〛⿶〳『ɻ〒〣
    ଟ਺〣ػೳ〣࠷ۙ〣ߋ৽ぇ঺հ「〳『ɻ
    3/9

    View Slide

  4. 2013 ೥ɾDocker ݩ೥
    〳』〤গ「લ〣ྺ࢙⿾〾ʜ
    • 2013 ೥〤 Docker ݩ೥〜⿴぀〝ಉ࣌〠 Linux じがぼ゚〠ぢアふべؔ࿈〣ओཁ〟ػೳ⿿
    ଗ〘〔೥〜「〔ʢ〷⿸ 7 ೥લ!!ʣ
    • 〒〣ޙ〷 Linux じがぼ゚〠〤〴〟《え〠〝〘〛ॏཁ〕〘〔〿ɺ〒⿸〜〷〟⿾〘〔〿『぀ػ
    ೳ⿿௥Ճ《ぁଓ々〛⿶〳『
    4/9

    View Slide

  5. User Namespace
    〈〣ػೳ〣׬੒〜ɺݱࡏ࢖いぁ〛⿶぀ぢアふべ〣ओཁػೳ⿿〰〱ଗ⿶〳「〔:
    • root Ҏ֎〣ゕがづが〜ぢアふべぇىಈ〜 ぀ػೳʢrootlessʣ
    • ࣮૷։࢝⿿ 2007 ೥〜׬੒⿿ 2013 ೥!!
    • 〈ぁ⿿〟⿶〝ʮぢアふべ〣 root=りとぷ〣 rootʯ〜『〽ɻةݥ〟߳〿
    5/9

    View Slide

  6. Overlayfs
    • Docker 〣やきぐ゚てとふわ〣ずゑ〤゛ぐんがߏ଄
    • ゙゙がと౰ॳ〣 Docker 〤 aufs 〝⿶⿸じがぼ゚〠ろがで《ぁ〛⿶〟⿶゛ぐんがへ〟やき
    ぐ゚てとふわલఏ〜「〔
    • 3.18 じがぼ゚ʢ2014 ೥ʣ〠 Overlayfs ⿿ろがで《ぁɺじがぼ゚ඪ४〣゛ぐんがへ〟
    やきぐ゚てとふわ⿿࢖⿺぀〽⿸〠〟〿〳「〔
    6/9

    View Slide

  7. cgroup v2
    • 4.5 じがぼ゚ʢ2014 ೥ʣ〠ਖ਼ࣜ〠ろがでʢstable 〟ػೳ〠ʣ
    • ࠓ〜〷やびが〠࢖いぁ〛⿶぀ cgroup v1 ⿿⿴぀〣〠〟え〜〈え〟ػೳ։ൃ「〔〣?
    • cgroup v1 ⿿ろがで《ぁ〔ࠒ〤ʮぢアふべべぺぬ゛ʁʯ〟࣌ظ〜「〔
    • ࠓޙ〤ঃʑ〠〈〖〾〠Ҡߦ『぀〤』ɻv1 ⿿࣋〘〛⿶〔৭ʑ〟໰୊఺⿿ղܾ《ぁ〛⿶〳『
    7/9

    View Slide

  8. ࠷ۙ〣ߋ৽
    ʮ࠷ۙʯ〝ݴ〘〛〷 CloudNative ք۾〣࣌ؒ〣ྲྀぁ⿾〾『぀〝௕⿶⿾〷?ʢେମ 2017 ೥Ҏ߱
    〣⿼࿩ʣ
    • ぢアふべ〣ོ੝ぇ 〘⿾々〠ぢアふべؔ࿈〣ػೳ〕々〜〟。ɺぢアふべҎ֎〜〷࢖いぁ぀ػ
    ೳ〠վྑ⿿ࢪ《ぁ〛⿶〳『
    • ぢアふべؔ࿈
    • cgroup Namespace
    • ඇಛݖぢアふべ〜やきぐ゚てとふわろげアぷʢぶみぐとやきぐ゚〷࡞ぁ぀〽⿸〠〟〿〳「〔ʣ
    • ⿶ 〟〿໨త〣 cgroup 〠ゆ゜なとぇॴଐ《【〾ぁ぀〽⿸〠〟〘〔
    • Time Namespace
    • ぢアふべҎ֎〜〷Մೳੑ⿿޿⿿぀
    • PSIʢゐゑ゙ɺCPUɺI/O 〟〞〣゙ぬがと〣ඡഭ౓߹⿶ぇ؍ଌʣˡ〒〷〒〷 cgroup 〤ぢアふべ
    Ҏ֎〜〷〙⿾⿺぀
    • pidfdʢPID 〣஋〘〛্ݶ⿿⿴〘〛্ݶ〠ୡ「〔ޙ〤࠶ར༻《ぁ〳『ʣ
    8/9

    View Slide

  9. 〳〝〶
    ݁ہԿ⿿ݴ⿶〔⿶〣? ˠ Linux ぢアふべ〣৽ػೳぇ௥〘⿾々぀〣〘〛ʜ
    • ৽「⿶ػೳぇࢼ『〣〘〛ָ「⿶〜『〽〢ʂʢˡҰ൪ॏཁʣKubernetes 〣৽ػೳぇࢼ『〣
    〷ָ「⿶々〞じがぼ゚〣৽ػೳࢼ『〣〷⿼〷「あ⿶〜『〽ʂ
    • Docker 〹 Kubernetes 〜ઃఆ〜 ぀஋〜〷みひぜごアへ〜〞〣〽⿸〠ઃఆ《ぁ〛⿶぀
    ⿾ʁ ઃఆ〣《ぁํぇཧղ『぀〈〝〜ޮՌత〠ઃఆぇར༻〜 ぀〤』ʢ〈⿸⿶⿸੍ݶ⿿⿴぀
    ⿾〾〈え〟ઃఆ「〛〷ҙຯ⿿〟⿶〽ʁ 〝⿾ʣ
    • Docker 〹 Kubernetes 〜৽ػೳ⿿࣮૷《ぁ〔⿴⿾〙 〠〤ਅ〘ઌ〠ʮ〒〣ҙຯぇཧղ「
    〟⿿〾ʯ৽ػೳぇࢼ【぀ʢՄೳੑ⿿⿴〿〳『ʣʂ
    એ఻
    • じがぼ゚〣৽ػೳ〤ਅ〘ઌ〠 LXC/LXD 〠࣮૷《ぁ぀ʢ〈〝⿿ଟ⿶ʣ〣〜ɺLXC/LXD ぇ
    ⿼〘⿾々぀〣〤ָ「⿶〜『〽
    • ࠷৽ػೳぇ⿼〘⿾々぀جૅ஌ࣝぇ〙々぀〔〶〠〷 gihyo.jp 〜࿈ࡌத〣ʮLXC 〜ֶ〫ぢア
    ふべೖ໳ʯぇ〽あ「。〜『
    9/9

    View Slide