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

WindowsコンテナとOpenShift Container Platformのご紹介

WindowsコンテナとOpenShift Container Platformのご紹介

2022/10/14 16:00-16:40 UOS IT Solution Fair 2022 イベント講演資料です。

なぜ、コンテナ技術?
Demoで見るWindows コンテナ
Demoで見るOpenShiftの優れた技術

この3つを軸にしたセッションです。Demo動画(音声なし)は、スライド内のURLを使ってご覧いただけます。

Akira Onishi (IBM)

October 12, 2022
Tweet

More Decks by Akira Onishi (IBM)

Other Decks in Programming

Transcript

  1. ೔ຊΞΠɾϏʔɾΤϜגࣜձࣾ ςΫϊϩδʔࣄۀຊ෦ ΧελϚʔɾαΫηε ϓϦϯγύϧɾϚωʔδϟʔ ʢୈҰΧελϚʔαΫηε෦໳௕ʣ ݉຿ ύʔτφʔࣄۀຊ෦ 8JOEPXT$POUBJOFS1PSUJOH1SPHSBNϦʔμʔ େ੢ জ

    "LJSB0OJTIJ!JCNDPN 5XJUUFS!POJBL  IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ IUUQTXXXMJOLFEJODPNJOPOJBL Windowsίϯςφ ͱ 0QFO4IJGU$POUBJOFS1MBUGPSNͷ͝঺հ
  2. ࣗݾ঺հ 1SPQFSUZ 7BMVF ࢯ໊ େ੢ জ 5XJUUFS-JOLFE*O POJBL *5ۀքྺ ೥໨

    ௚ۙͷ৬ྺ Microsoft ೥ *#.೥೔ )BTI5BH ͍͍Ͷ͐੩Ԭੜ׆ ࠲ӈͷ໏ ౿·Εͯ΋ͳ্ཱ͓͕ͪΔಓͷ૲ Α͘࢖͏ٕ ೴಺ม׵Ͱࣗ෼ΛϙδςΟϒʹ IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ 'BDFCPPLʮ͓ʹ͋͘ʯͰݕࡧ
  3. σδλϧԽʹ ͦͷଟ͘͸ ΞϓϦ։ൃ σόΠεɺ"1*ɺαʔϏεɺσʔλͱ"* 1$.BDλϒϨοτ εϚʔτϑΥϯ *P5 σόΠε 57ήʔϜػ 

    Ұମܕ93σόΠε ϋΠϒϦουɾΫϥ΢υ σʔλ ಺෦޲͚αʔϏε ۀ຿ϩδοΫ ֎෦޲͚"1* ·ͨ͸8FCΞϓϦ "* ػցֶशϞσϧ W  &OE1PJOU 63- *% W  ଞͷ *%1
  4. 3FE)BUϋΠϒϦουΫϥ΢υɾϓϥοτϑΥʔϜ *#.ιϑτ΢ΣΞ *#.$MPVE1BLT *#.ίϯαϧςΟϯά *#.ΠϯϑϥετϥΫνϟʔ *#.;ɺ෼ࢄΠϯϑϥετϥΫνϟʔ *#.$MPVE 1PXFS 4UPSBHF ɺΠϯϑϥετϥΫνϟʔɾαϙʔτ

    ଞࣾΫϥ΢υ "84ɺ"[VSFɺͦͷଞ اۀ޲͚֤छج൫ Τοδ Ϗδωεɾ τϥϯεϑΥʔϝʔγϣϯɺ ςΫϊϩδʔɾίϯαϧςΟϯάɺ ΞϓϦέʔγϣϯɾ ΦϖϨʔγϣϯ Φʔτϝʔγϣϯ ɺ%BUB"*ɺ ηΩϡϦςΟʔɺτϥϯβΫγϣϯॲཧ ։ൃ ηΩϡϦςΟʔ ɺ ӡ༻αʔϏε 0QFO4IJGUɺ3FE)BUΤϯλʔϓϥΠζ -JOVYɺ "OTJCMFΦʔτϝʔγϣϯɾϓϥοτϑΥʔϜ ιϑτ΢ΣΞɺ4BB4ύʔτφʔͱͷڠۀ γεςϜɾΠϯςάϨʔλʔͱͷڠۀ ϋΠϒϦουΫϥ΢υ "* *#.ͷΦʔϓϯͳઓུɺϏδωεύʔτφʔ༷ͱͷڠۀ
  5. ίϯςφٕज़ΞϓϦ ϛυϧ΢ΣΞ ϋʔυ΢ΣΞ ϗετ04 ίϯςφɾϓϥοτϑΥʔϜ ίϯςφ ϛυϧ΢ΣΞ ΞϓϦ" ίϯςφ ϛυϧ΢ΣΞ

    ΞϓϦ# ͭ·Γ͸04ͷԾ૝Խ ΞϓϦɺϛυϧ΢ΣΞ ϥϯλΠϜɺϥΠϒϥϦ Λ ̍ͭʹύοέʔδ ϓϩηεىಈͰܰྔɺ ͞Βʹϗετ04ͱ͸ಠཱͨ͠ ؀ڥ ίϯςφ಺ͷ؀ڥม਺΍ ϑΥϧμ΍ϑΝΠϧʣ
  6. ͳͥɺίϯςφٕज़ʁ  ΞϓϦͷ഑෍͕؆୯ ։ൃɾςετ͔࣌Β ΞϓϦͱϛυϧ΢ΣΞͷ྆ํ͕ίϯςφͷΠϝʔδ ϑΝΠϧ UBSܗࣜ ʹؚ·ΕΔ  ΞϓϦͷల։ͱӡ༻͕؆୯

    Πϯετʔϧɺ࣮ߦͱల։ɺόʔδϣϯͷ੾ସ Ͳ͜Ͱ΋ಈ͘ αϙʔτ$16ɺϗετ04ͷҰக  Πϯϑϥ؅ཧ͕؆୯ ϗετ04ͱίϯςφɾϓϥοτϑΥʔϜΛ४උ Ϛγϯͷަ׵ɺϗετઌͷมߋ͕؆୯
  7. ίϯςφٕज़ΞϓϦ ϛυϧ΢ΣΞ 8JOEPXT 04 8JOEPXT ίϯςφ "41/&5 ΞϓϦ 8JOEPXT ίϯςφ

    +BWB ΞϓϦ -JOVY04 -JOVYίϯςφ +BWB ΞϓϦ -JOVYίϯςφ 1)1 ΞϓϦ +BWBϥϯλΠϜͱ ϥΠϒϥϦ 1)1ϥϯλΠϜͱ ϥΠϒϥϦɺ/HJOY /&5'SBNFXPSLͱ ϥΠϒϥϦɺ**4 +BWBϥϯλΠϜͱ ϥΠϒϥϦ ϋʔυ΢ΣΞ ϋʔυ΢ΣΞ ϗετ04ͷػೳΛ׆༻͠ͳ͕Βɺݴޠ΍ϛυϧ΢ΣΞɺ༷ʑͳ૊Έ߹ΘͤͰΞϓϦΛ࣮ߦ ίϯςφɾϓϥοτϑΥʔϜ ίϯςφɾϓϥοτϑΥʔϜ
  8. Windows ΞϓϦɺٕज़ελοΫʢ؆ུʣ Intel/AMD x86/x64 ハードウェア (またはハードウェア仮想化による仮想マシン) Windows OS Kernel Windows

    API / Component Object Model / 後から追加されたODBCドライバーなど C ⾔語ランタイム ライブラリ Common Language Runtime / .NET Framework C/C++で作成したアプリ C#, Visual Basic.NET で作成したアプリ IISでホストするASP.NET Webアプリなど 他のランタイム (例:Java Runtime) Javaアプリ
  9. Windows ίϯςφ http://aka.ms/windowscontainers ೥݄ʹൃද ϗετ04 Windows Server 2016 Windows Server

    2019 Windows Server 2022 Windows 10 Windows 11 ご注意︓ Windowsフォーム、WPF、MFC、 DirectXなどGUI アプリは コンテナ化できません 理由: Windowsコンテナには winlogon.exe, dwm.exeがありません
  10. コンテナレジストリ docker hub 開発/テスト環境 Docker Desktop for Windows Visual Studio

    2019/2022 ίϯςφͷ։ൃ͔Β࣮ߦ·Ͱͷશମ૾ コンテナ実⾏環境 Windows Server 2019/2022 マシンA: Windows 10 Pro (Enterprise) / Windows 11 Pro (Enterprise) Hyper-V イメージの公開 イメージから 展開 マシンB (仮想マシン) Docker client/engine Docker client/engine
  11. Windows ίϯςφ׆༻ʹ޲͚ͨݕ౼ࣄ߲ %FTLUPQ (6*ΞϓϦ WinForm WPFͳͲ σʔλ ϕʔε αʔόʔ ̎֊૚ͷΫϥΠΞϯτɾαʔόʔ

    ֊૚ͷΫϥΠΞϯτɾαʔόʔ %FTLUPQ ΞϓϦ WinForm WPFͳͲ ASP.NET ϛυϧ૚ ίϯςφ σʔλ ϕʔε αʔόʔ ASP.NET Blazor Server ΞϓϦ ίϯςφ σʔλ ϕʔε αʔόʔ ASP.NET Core Blazor ΞϓϦ Ϟμϯϒϥ΢βରԠͷ৽͍͠ΫϥΠΞϯτɾαʔόʔܕ Ͱ͖ΔݶΓɺ ɾطଘͷϏδωεϩδοΫ ɾطଘͷσʔλϕʔε Λ࠶ར༻ ˞͜ͷ··Ͱ͸ίϯςφԽͰ͖ͳ͍ %FTLUPQ 4UBOEBMPOF (6*ΞϓϦ $$ .NET FrameworkͳͲ ˞ٕज़తʹίϯςφԽͰ͖ͳ͍
  12. ,VCFSOFUFTΞʔΩςΫνϟʔ %# FUDE "1*4FSWFS $MJFOU6TFS LVCFDUM $-* 8BUDIFS $POUSPMMFS /FUXPSLT

    7PMVNFT 4FDSFUT  3FRVFTU .POJUPS ,VCFSOFUFT͸σʔλϕʔε FUDE ͷΑ͏ͳ΋ͷ 8BUDIFSͱ$POUSPMMFS͕σʔλϕʔε಺ͷมߋΛ൓ө͢Δ "1*4FSWFS͸ IUUQ3&45ʹΑΔσʔλϕʔεͷϑϩϯτΤϯυ /PEF /PEF 1PE #BTF04,FSOFM $POUBJOFS 3VOUJNF *NBHFT -JCFSUZ 6CVOUV ,VCFMFU ,VCF 1SPYZ 1PE4FSWJDF $ $ $
  13. օ༷΁ͷ͝Ҋ಺  ίϯςφΞϓϦ։ൃͷ࠲ஊձ ٙ໰ɺ͓ࠔΓ͝ͱɺ೰Έࣄɺ෼ʙ෼ ࿈བྷઌ೔ຊ*#.େ੢ জ "LJSB0OJTIJ!JCNDPN  8JOEPXTιϦϡʔγϣϯͷίϯςφԽͷ૬ஊձ ۩ମతͳҠ২ʹ͍ٕͭͯज़૬ஊɺ෼ʙ෼

    ࿈བྷઌίϯςφڞ૑ηϯλʔ &##('%!KQJCNDPN  *#.5FDI%FWFMPQFS%PKPఆظ։࠵த ͞·͟·ͳςʔϚΛֶ΂ΔແྉΠϕϯτ IUUQTJCNEFWFMPQFSDPOOQBTTDPN
  14. ͜Ε͔ΒͷσδλϧԽͷੈք؍ Red Hat OpenShift Container Platform ハイブリッド・クラウド Windows 仮想マシン .NET

    Core/-JOVY コンテナ Java/Linux コンテナ (パッケージ製品) … Windows ネイティブ アプリ (パッケージ製品) URL1 URL2 URL3 URL n Windows コンテナ URL4 アプリ アプリ アプリ アプリ 今⽇は この話!! Windowsデバイス Apple デバイス (macOS, iOS, iPadOS, tvOS, watchOS) Androidデバイス (スマホ, タブレット, Android TV, Android Auto, スマートスピーカー) IoT デバイス コンテナ・レジストリ 開発環境 ロ " ド バ ラ ン サ "
  15. $VTUPNFS0CTFTTJPO %BUB "OBMZUJDT 6TFS FOHBHFNFOU ϏδωεͱΫϥ΢υɾωΠςΟϒ %FW 4FD 0QT ϚʔέςΟϯά

    Ӧۀ ৽نܖ໿ ܖ໿ߋ৽ αϙʔτ ར༻ঢ়گͷ ෼ੳ ܧଓతͳ 69վળ ఆظతͳ Ξοϓσʔτ .BSLFUJOH 4FMMJOH 4PDJBM -JTUFOJOH "HJMF άϧάϧ ࢥߟ ˞ඞͣ͠΋ιϑτ΢ΣΞ੡඼ͷൢച͚ͩʹ͸ݶఆ͞Εͳ͍ ෼ੳ σʔλ 1SPEVDU CBDLMPH
  16. ෺ཧϚγϯɺԾ૝Ϛγϯɺ04ͷԾ૝Խ ϋʔυ΢ΣΞ ϋΠύʔόΠβʔ ϋʔυ΢ΣΞԾ૝Խ Ծ૝Ϛγϯ ήετ04 ΞϓϦ" Ծ૝Ϛγϯ ήετ04 ΞϓϦ#

    ϛυϧ΢ΣΞ ϗετ04 ϛυϧ΢ΣΞ ϋʔυ΢ΣΞ ϗετ04 ίϯςφɾϥϯλΠϜ OSͷԾ૝Խʢίϯςφʣ ίϯςφ ϛυϧ΢ΣΞ ΞϓϦ" ίϯςφ ϛυϧ΢ΣΞ ΞϓϦ# ϋʔυ΢ΣΞ ϗετ04 ϕΞϝλϧ ϛυϧ΢ΣΞ ΞϓϦ" ΞϓϦ# アプリA, アプリBの環境は ホストOSと同⼀(依存性あり) アプリAの起動はプロセス起動 (ミリ秒単位) ミドルウェアのバージョン問題 アプリA, アプリBの環境は完全に独⽴ (仮想マシン1と仮想マシン2は独⽴) ホストOSが動作している場合、 アプリAの起動には仮想マシン1と ゲストOS1の起動(数⼗秒単位)が必要 CPUパワー、⼤容量メモリが必要 アプリA, アプリBの環境は完全に独⽴ (コンテナ1, 2は、ホストOSから独⽴) ホストOSが動作している場合、 アプリAの起動は、コンテナ1の起動 (プロセス起動、ミリ秒単位)が必要 コンテナ技術の制約に注意
  17. 参考: Windowsίϯςφͷಈ࡞ Windowsͷٕज़Λ࣮ߦ͢Δίϯςφ (6*আ͘ Job ObjectsʹΑΔෳ਺ϓϩηεͷάϧʔϓԽ SilosɺϦιʔεΛ໊લۭؒຖʹ෼཭ Hardware Windows OS

    Windows Kernel Windows アプリ Windows サービス Windows コンテナ Windows アプリ Windows コンテナ Windows サービス
  18. 8JOEPXTίϯςφ '"2 IUUQTEPDTNJDSPTPGUDPNKBKQWJSUVBMJ[BUJPOXJOEPXTDPOUBJOFSTBCPVUGBR -JOVYίϯςφͱͷҧ͍͸ʁ • ίϯςφΠϝʔδ͸-JOVYΑΓ΋େ͖͍ʢϓϩηεىಈ͸ಉ͡ʣ • -JOVYίϯςφ༻ͷΠϝʔδ -JOVYόΠφϦ ͸࣮ߦෆՄ

    • (6*ແ͠ͷ8JOEPXTΞϓϦΛ࣮ߦՄೳ ઐ໳తʹݴ͏ͱXJOMPHPOFYFͱEXNFYF͕ͳ͍ ϋʔυ΢ΣΞཁ݅͸ • 8JOEPXT͕ಈ࡞͢Δ͜ͱ *#.;΍*#.1PXFSͰ͸ಈ࡞͠ͳ͍
  19. ΞϓϦͷܧଓతͳվળͱల։ ビルド レジストリへ イメージ発⾏ ダウンロード (イメージ更新) アプリの実⾏ docker build -f

    "C:¥Users¥containerdev¥source¥repos¥Dojo0512¥Dojo0512¥Dockerfile" --force-rm -t dojo0512 --label "com.microsoft.created-by=visual-studio" --label "com.microsoft.visual-studio.project- name=Dojo0512" "C:¥Users¥containerdev¥source¥repos¥Dojo0512¥Dojo0512" docker pull oniak3/dojo0512:latest docker run --name wcon3 --rm -it -d -p 8000:80 oniak3/dojo0512:latest docker push oniak3/dojo0512:latest
  20. 0QFO4IJGUͷશମ૾ #BTF-BZFSΠϯϑϥετϥΫνϟʔ ෺ཧαʔόʔɺԾ૝αʔόʔɺΫϥ΢υ 4FSWJDF-BZFS1PE΍ΞΫηεϙϦγʔͷఆٛ 1PEʹର͢Δϗετ໊΍ *1ΞυϨεɺΞϓϦؒͷ઀ଓɺγϯϓϧͳ಺෦ϩʔυόϥϯαʔͳͲ .BJO/PEFΫϥελʔͷ؅ཧͳΒͼʹ8PSLFS/PEFTͷӡ༻ ɾ"1*"VUIFOUJDBUJPOશͯͷ؅ཧૢ࡞͸"1*ܦ༝ ɾ%BUB4UPSF؀ڥ΍ΞϓϦʹؔ͢Δঢ়ଶͱ৘ใͷه࿥ ɾ4DIFEVMFS؀ڥϦιʔεͷར༻ঢ়ଶʹԠͯ͡1PEͷ഑ஔΛܾఆ

    ɾ)FBMUITDBMJOH1PEͷ؂ࢹɺ$16࢖༻཰ʹԠͨ͡εέʔϦϯά 8PSLFS/PEFT1PEͷ࣮ߦ؀ڥɺίϯςφ͸شൃੑͰ͋Δ͜ͱʹ஫ҙ ݱࡏ͸8JOEPXT/PEF΋αϙʔτ -PDBM൛΍4BOECPYͰ͸࢖͑·ͤΜ IUUQTEFWFMPQFSJCNDPNCMPHTPQFOTIJGUBSDIJUFDUVSF 1FSTJTUFOU4UPSBHFঢ়ଶͷอ࣋ͳͲʹ࢖͏ӬଓετϨʔδ 3FHJTUSZΫϥελʔ಺ͷίϯςφΠϝʔδΛอଘ 3PVUJOHMBZFSΫϥελʔ֎͔ΒͷΞϓϦΞΫηεɺ ϩʔυόϥϯαʔɺਖ਼ৗঢ়ଶͰͳ͍1PEΛᷖճ "VUPSPVUJOH
  21. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報 提供の⽬的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むも のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗 ⽰にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害 が⽣じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したもので もなく、またそのような結果を⽣むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰ するものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっ

    ていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講 演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰すること を意図したものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤し た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ ミングの量、⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、 個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰された ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、IBM Cloud、IBM Cloud Paksは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他 の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。 Microsoft, Windows, Windows Server, .NET Framework, .NET, .NET Coreは、Microsoft Corporationの商標または登録商標です。 Javaは、オラクルおよびその関連会社の登録商標です Red Hat, OpenShift, OpenShift Virtualization は、Red Hat, Inc の商標または登録商標です。