Remote-Containersの接続先ホストにFedora CoreOSを使う / Using Fedora CoreOS for Remote-Containers

Remote-Containersの接続先ホストにFedora CoreOSを使う / Using Fedora CoreOS for Remote-Containers

VS Code Meetup #6 (オンライン)のLTで使用した資料です。

イベントページ:https://vscode.connpass.com/event/176699/
5min LT: Remote-Containersの接続先ホストにFedora CoreOSを使う

20451295e0cb4dce2b2805b2a61cd92d?s=128

Shion Tanaka

July 15, 2020
Tweet

Transcript

  1. WTDPEFKQ 3FNPUF$POUBJOFSTͷ઀ଓઌ ϗετʹ'FEPSB$PSF04Λ࢖͏ +VM W 74$PEF.FFUVQ 4IJPO5BOBLB !UOLPO 1

  2. WTDPEFKQ ΞδΣϯμ • ݩωλͷ঺հ • ϦϞʔτ઀ଓઌͷϗετΛ࢖͏໨త • ϦϞʔτ઀ଓઌͷϗετΛ࢖͏࣌ͷ՝୊ • 'FEPSB$PSF04

    • 'FEPSB$PSF04Λ࢖ͬͯΈΔ • ΦϚέ • ࢀߟϦϯΫ 2
  3. WTDPEFKQ ࣗݾ঺հ 3 • ాத࢘ԸʢλφΧ γΦϯʣ!UOLPO • ϨουϋοτגࣜձࣾɿιϦϡʔγϣϯΞʔΩςΫτ • ίϛϡχςΟɿ

    Ø0QFO4IJGU+BQBO$PNNVOJUZɺଞ • Կऀ͔ʁ Ø0QFO4IJGU0,%Λ΍ͬͨΓ ØϥΠϒ഑৴΍ͬͨΓ ØԻ੠ͷݚڀΛ΍ͬͨΓ ˠৄࡉ͸+VMZ5FDI'FTUʢʣ $ɿߨԋʮΤϯδχΞͳΒ୭Ͱ΋഑৴Λʯ
  4. WTDPEFKQ ݩωλͷ঺հ • هࣄɿ74$PEFͷ3FNPUF$POUBJOFSTͰϦϞʔταʔόʔ্ͷ ίϯςφʔͷ։ൃΛߦ͏ํ๏ • ਖ਼݄ʹΰιΰιͱʮ74$PEF 3FNPUF$POUBJOFSTʯͷ։ൃ؀ ڥΛ.BD্ʹ࡞੒ Ø%PDLFS%FTLUPQGPS.BDͷಋೖͰτϥϒϧʢޙड़ʣ

    ˠϦϞʔτઌϗετʹ3)&- %PDLFSͰߏங • 44)ͰϦϞʔτઌϗετʹ%PDLFSͰܨ͙͚ͩͳΒઃఆ͸؆୯ Ø74$PEFͷTFUUJOHTKTPOʹԼهઃఆΛ௥Ճ 4 “docker.host”: “ssh://username@FQDN or IP address" ˞3FE)BU&OUFSQSJTF-JOVYʢ3)&-ʣ
  5. WTDPEFKQ ݩωλͷ঺հʢߏ੒ਤʣ 5 ! %PDLFSσʔϞϯ 74$PEF 3FNPUF$POUBJOFST コンテナー %PDLFS$-* ʻϩʔΧϧ࣮ߦͷ৔߹ʼ

    ! 74$PEF 3FNPUF$POUBJOFST 3FNPUF44) %PDLFS$-* %PDLFSσʔϞϯ WTDPEFTFSWFS コンテナー %PDLFS$-* 44) ʻϦϞʔτ࣮ߦͷ৔߹ʼ ϩʔΧϧ୺຤ ϩʔΧϧ୺຤ ϦϞʔτ઀ଓઌϗετ ˞%PDLFS%FTLUPQGPS.BD͸࣮ࡍ͸Ծ૝Ϛγϯ ͷ-JOVY্Ͱ%PDLFSσʔϞϯΛ࣮ߦ
  6. WTDPEFKQ ϦϞʔτ઀ଓઌͷϗετΛ࢖͏໨త ˠʰϩʔΧϧͰ%PDLFSσʔϞϯΛಈ͔ͨ͘͠ͳ͍ʂʱ • %PDLFS%FTLUPQGPS.BDಋೖͷτϥϒϧ Ø ʮNBD04$BUBMJOBͰ%PDLFS%FTLUPQ͕ىಈ͠ͳ͍ʯͱ͔ Ø ʮDPNEPDLFSIZQFSLJUͷϓϩηε͕$16ͰுΓ෇͘ʯͱ͔ ˠ

    ʘ$16ϑΝϯ͕രԻʗ • ΋ͬͱௐ΂Δͱʜ Ø *TTVFT͕୔ࢁɿ *TTVFTuEPDLFSGPSNBD Ø 74$PEFͷυΩϡϝϯτʹ΋ɿ %PDLFSMJNJUBUJPOT ଟ෼͜Ε͸μϝͳ΍ͭͩʜ 6
  7. WTDPEFKQ ʢࢀߟʣ3)&-͔Β%PDLFS͕࡟আ • ެ͔ࣜΒ%PDLFSͷύοέʔδ͸ఏڙ͞Εͳ͍ Ø“docker コマンドと Docker コンテナーエンジンも、Red Hat Enterprise

    Linux 8 から完全に削除しました。”(引⽤:RHEL8ドキュメント) • %PDLFS͸3FE)BUͷαϙʔτର৅֎ Ø“RHEL 8 には Docker が含まれず、Red Hat のサポート対象外になります” (引⽤:RHEL8ドキュメント) ˠʘ1PENBOΛ࢖͓͏ʗ ˠ઀ଓઌϗετʹ3)&-͕࢖͑ͳ͍ ʢʜͪͳΈʹɺ3)&-ͷΫϩʔϯͷ$FOU04΋ಉ͡ʣ 7 l044ͷ%PDLFSޓ׵ͷίϯςφʔΤϯδϯz
  8. WTDPEFKQ ϦϞʔτ઀ଓઌϗετΛ࢖͏࣌ͷ՝୊ • 3FNPUF$POUBJOFST͕%PDLFS࢖༻લఏ Ø8JOEPXTͳΒ84-͕͋Δ͚Ͳɺ.BD͸ͳ͍ʜ • ઀ଓઌϗετͰ%PDLFSΛಈ͔ͨ͢Ίʹ͋Ε͜ΕखؒΛ ͔͚Δඞཁ͕͋Δ Ø%PDLFS͕࢖͑Δ04Λ࢖͏ʜ Øखܰʹ࢖͍͍ͨɺ؀ڥΛԚͨ͘͠ͳ͍ʜ

    ˠίϯςφ࣮ߦʹಛԽͨ͠04Λ࢖ͬͯΈΑ͏ʂ 8
  9. WTDPEFKQ 'FEPSB$PSF04ʢ'$04ʣ • 'FEPSB1SPKFDUͰ։ൃ͞Ε͍ͯΔ&EJUJPOͰɺίϯςφʔԽ͞ ΕͨϫʔΫϩʔυΛ࣮ߦ͢Δ͜ͱʹಛԽͨ͠04ɻ • 'FEPSB"UPNJD)PTUͱ$PSF04$POUBJOFS-JOVYͷޙܧͱ͠ ͯ೥݄ʹਖ਼ࣜϦϦʔε ˠએ఻ɿ4PGUXBSF%FTJHO݄߸ͷ݄ץ'FEPSBδϟʔφϧʹɺ 'FEPSB$PSF040,%Λ঺հ͢Δهࣄ͕ܝࡌ༧ఆ

    9
  10. WTDPEFKQ 'FEPSB$PSF04ɿಛ௃ • ܰྔͳ04ɿ ØίϯςφʔΛಈ͔͢໨తҎ֎ͷ༨ܭͳ΋ͷ͕ͳ͍ • Πϯετʔϧɺ04ઃఆ͕؆୯ɿ Ø*HOJUJPOͱ͍͏࢓૊ΈΛར༻ • %PDLFSʢNPCZFOHJOFʣɺ1PENBOඪ४౥ࡌɿ

    ØΠϯετʔϧͷखؒ΍ޓ׵ੑΛؾʹ͙ͤͣ͢ʹίϯςφʔΛ࣮ߦՄೳ ˠ*40ɺ֤छԾ૝؀ڥ༻Πϝʔδͷଞɺ"84($1͸ެ։Πϝʔδ͋Γ 10
  11. WTDPEFKQ 'FEPSB$PSF04ɿߏ੒ྫ 11 ! 74$PEF 3FNPUF$POUBJOFST 3FNPUF44) %PDLFS$-* %PDLFSσʔϞϯ WTDPEFTFSWFS

    コンテナー %PDLFS$-* 44) ϩʔΧϧ୺຤ ϦϞʔτ઀ଓઌϗετ ͦͷଞɺωοτϫʔΫཁ݅ • %)$1 • 8FC • 19&#PPUʢPQUJPOʣ
  12. WTDPEFKQ 'FEPSB$PSF04Λ࢖ͬͯΈΔ • 44)ݤϖΞΛ࡞Γɺެ։ݤೝূͷηοτΞοϓ • *HOJUJPOϑΝΠϧͷ࡞੒ɺ8FCαʔόʔ΁഑ஔ • '$04Ϛγϯىಈ • ΠϯετʔϧίϚϯυ࣮ߦ

    • ࠶ىಈ • ׬ྃɻˠ44)઀ଓͯ͠ར༻ 12 $ curl -LO https://example.com/example.ign $ sudo coreos-installer install /dev/sda --ignition-file example.ign 19&CPPUར༻࣌͸ ͜ͷ෦෼͸ࣗಈ࣮ߦ
  13. WTDPEFKQ ʢࢀߟʣ*HOJUJPOϑΝΠϧͷ࡞੒ • JHOJUJPOͷݩͱͳΔ'$$ϑΝΠϧΛ:".-ܗࣜͰهड़͢Δ ྫFYBNQMFJHO • ίϯςφʔͰ'$$5πʔϧΛ࣮ߦ͠JHOJUJPOϑΝΠϧΛ࡞੒ 13 variant: fcos

    version: 1.0.0 passwd: users: - name: core ssh_authorized_keys: - ssh-rsa AAAA... (<-----事前に作成したSSH公開鍵ファイルの内容を記載) $ podman pull quay.io/coreos/fcct:release $ podman run -i --rm quay.io/coreos/fcct:release --pretty --strict < example.fcc > example.ign (<-----example.ignはFCOSからアクセスできるWebサーバーに配置)
  14. WTDPEFKQ 'FEPSB$PSF04Λ࢖ͬͯΈΔ 14 '$04ىಈ • *HOJUJPOϑΝΠϧͷμ΢ϯϩʔυ • ΠϯετʔϧίϚϯυ࣮ߦ • ࠶ىಈ

    ࠶ىಈޙ͸44)઀ଓͯ͠ར༻
  15. WTDPEFKQ 'FEPSB$PSF04Λ࢖ͬͯΈΔ 15 $ sudo docker version Client: Version: 19.03.11

    API version: 1.40 Go version: go1.14.3 Git commit: 42e35e6 Built: Sun Jun 7 21:16:58 2020 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 19.03.11 API version: 1.40 (minimum version 1.12) Go version: go1.14.3 Git commit: 42e35e6 Built: Sun Jun 7 00:00:00 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.3.3 GitCommit: runc: Version: 1.0.0-rc10+dev GitCommit: fbdbaf85ecbc0e077f336c03062710435607dbf1 docker-init: Version: 0.18.0 GitCommit: $ podman version Version: 1.9.3 RemoteAPI Version: 1 Go Version: go1.14.2 OS/Arch: linux/amd64 ˞࣌఺ 'FEPSB$PSF04
  16. WTDPEFKQ ·ͱΊ • '$04Λ࢖͏ͱ؆୯ʹϦϞʔτ઀ଓઌϗετͷߏங͕Մೳ • ࡞Γ௚͕͠؆୯ͳͷͰ࢖͍ࣺͯӡ༻΋Մೳ • ඪ४Ͱ%PDLFS͕࢖͑Δ • ࠓޙ͸1PENBO΋࢖͑Δ

    '$04Ͱշదͳʮ74$PEF 3FNPUF$POUBJOFSTʯϥΠϑΛʂ 16
  17. WTDPEFKQ ΦϚέ • ʮ74$PEF 3FNPUF$POUBJOFSTʯͰ1PENBOΛ࢖ ͏ํ๏Λݕূ͍ͯ͠·͢ Øهࣄɿ3FNPUF$POUBJOFSTͰ1PENBOΛ࢖͏ಈ࡞ݕূʢਵ࣌ߋ৽ʣ Øݱ࣌఺ͷ֬ೝ04ɿ'FEPSBɺ$FOU04ɺNBD04ɺ8JOEPXT • %PDLFSͷ୅ΘΓʹ1PENBOΛ࢖͍͍ͨํ͸্ههࣄΛ

    ࢀߟʹͯ͠Έ͍ͯͩ͘͞ 17
  18. WTDPEFKQ ࢀߟϦϯΫ • 3)&-υΩϡϝϯτ Øίϯςφʔͷߏஙɺ࣮ߦɺ͓Αͼ؅ཧ 3FE )BU&OUFSQSJTF -JOVY • 'FEPSB$PSF04

    Ø'FEPSB$PSF04 Ø*OTUBMMJOH$PSF04PO#BSF.FUBMɿɿ 'FEPSB%PDT4JUF • ؔ࿈هࣄ • 74$PEFͷ3FNPUF$POUBJOFSTͰϦϞʔταʔόʔ্ͷίϯςφʔͷ։ ൃΛߦ͏ํ๏ • 3FNPUF$POUBJOFSTͰ1PENBOΛ࢖͏ಈ࡞ݕূʢਵ࣌ߋ৽ʣ 18
  19. WTDPEFKQ Thank you 19