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

Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ

Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ

情報処理学会第80回全国大会 発表資料

KONDO Uchio

March 13, 2018
Tweet

More Decks by KONDO Uchio

Other Decks in Technology

Transcript

  1. 1. Πϯελϯεͷ௥Ճॲཧ͕௿଎Ͱ͋Δ 2. ϋʔυ΢ΣΞϦιʔεͷར༻ޮ཰͕௿͍ 3. ۭ͖Ϧιʔε֬ೝͷͨΊͷεέδϡʔϦϯάͷ஗Ԇ 4. εέʔϦϯά͢΂͖ঢ়گݕ஌ͷϦΞϧλΠϜੑ͕௿͍  দຊΒ(*)ʹΑΔΦʔτεέʔϧͷ՝୊

    'BTU$POUBJOFS࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʢൃදࢿྉʣ 
 IUUQTTQFBLFSEFDLDPNNBUTVNPUP@SGBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBOIVBOJTV[BPLVTIJ ZJOHEFLJSVIFOHDIBOHYJOHXPDIJUVTJTVUFNVBLJUFLVUJZB
  2. • ϗετܕ΍ϋΠύʔόΠβܕͱൺֱͨ͠৔߹ • 1, 3. ʹ͍ͭͯ: ίϯςφ͸ىಈ΍ఀࢭ͕ߴ଎Ͱ͋Γɼ޲͍͍ͯΔ • 2. ʹ͍ͭͯ:

    ίϯςφʹϓϩηε͸๛෋ͳAPIʹΞΫηεͰ͖ɼϦιʔε੍ޚ Λࡉ͘Ͱ͖Δɽ޲͍͍ͯΔ • 4. ʹ͍ͭͯ͸ϓϩηεͱ͍͏ಛੑ্؂ࢹΛৄࡉ͔ͭܰྔʹͰ͖Δͱߟ͑ΒΕ Δ͕ɼຊ࿦จͰ͸ߟ࡯͍ͯ͠ͳ͍ ՝୊ʹରͯ͠ίϯςφΛར༻ͨ͠৔߹ 
  3. • Docker: https://www.docker.com/ • LXC: https://linuxcontainers.org/lxc/introduction/ • ͜ΕΒͷίϯςφϥϯλΠϜʹؔͯ͠͸ɼIEEE Cloud Computingࢽͷ

    “Containers and Cloud: From LXC to Docker to Kubernetes” ίϥϜΛ͸͡ Ίɼ঺հهࣄʹ͍ͱ·͕ͳ͍ Ұ୴ͷ݁࿦: ίϯςφܕԾ૝Խͷ࠾༻ 
  4. • ઌड़ͷIEEEͷίϥϜͰ͸ίϯςφͷΫϥελϦϯάʹ͸Kubernetes͕ར༻Ͱ ͖Δͱड़΂͍ͯΔ • Kubernetes: https://kubernetes.io/ • Ұํɼݱࡏͷঢ়گͰ͸ɼKubernetesͱDockerͷ૊Έ߹ΘͤͳͲطଘͷΫϥε λϦϯάελοΫͰ࣮ݱ͕೉͍͠ཁ݅΋͋Δ •

    ϗεςΟϯά༻్ͷ৔߹ɼߴूੵੑ͕ٻΊΒΕΔͷͰɼίϯςφࣗ਎ͷঢ়ଶ ʹΑΓϦιʔεׂΓ౰ͯΛมߋ͢ΔͳͲɼࡉ͔͍ࣗݾ੍ޚ͕ٻΊΒΕΔ γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍఺ 
  5. ରԠػೳͷਤදʢ࣮ݱ͢ΔγεςϜίʔϧ౳΋ܝࣔʣ  ෼ྨ ໊শ ৄࡉ 04Ϧιʔεͷִ཭ DISPPU  ͋ΔαϒσΟϨΫτϦʹల։ͨ͠04ͷϑΝΠϧγε ςϜʹೖΓɼผͷ04ͷΑ͏ʹݟͤΔ

    04Ϧιʔεͷִ཭ -JOVY/BNFTQBDF
 TFUOT  VOTIBSF  ຊདྷ04ͰάϩʔόϧͳϦιʔεʢϗετ໊ɼ/*$ͳ Ͳʣʹ໊લۭؒΛ࡞ΓɺผͷϦιʔεΛ࣋ͨͤΔ 04Ϧιʔεͷ੍ݶ DHSPVQT
 DHSPVQGTΛར༻ ೚ҙͷϓϩηεΛάϧʔϐϯά͠$16ɼϝϞϦɼॴ ଐϓϩηε਺ͳͲΛ੍ݶ͋Δ͍͸ܭଌ͢Δ 04Ϧιʔεͷ੍ݶ SMJNJU  QSMJNJU  جຊతʹϓϩηεπϦʔ୯ҐͰ$16ɼϝϞϦɼϑΝ Πϧهड़ࢠ਺ͳͲΛ੍ݶ͢Δ ݖݶ෼ׂ -JOVY$BQBCJMJUZ QSDUM  MJCDBQ  εʔύϢʔβͷ࣋ͭಛݖΛز͔ͭʹ෼ׂ͠ɼҰ෦Λ෇ ༩͋Δ͍͸ണୣ͢Δ γεςϜίʔϧ ϑΟϧλ TFDDPNQ TFDDPNQ  MJCTFDDPNQ γεςϜίʔϧͱͦͷҾ਺ͷ৚݅͝ͱʹɼͦͷݺͼग़ ͠Λ੍ݶɾڐՄ͢Δ
  6. • ͪ͜Β΋දʹҰཡ͢Δ 3.2. ϑοΫػߏ΁ͷରԠ  ໊শ ৄࡉ ϥΠϑαΠΫϧϑοΫ ىಈɼGPSL੒ޭɼఀࢭɼࣦഊͱ͍ͬͨίϯςφͷϥΠϑαΠΫϧʹ ؔΘΔΠϕϯτ͝ͱʹ೚ҙͷॲཧΛ࣮ߦͰ͖Δ

    λΠϜΞ΢τϑοΫ ىಈ੒ޭޙɺίϯςφຊମͷॲཧͱ͸ඇಉظͷܗͰɼҰఆ࣌ؒܦա ޙʹ೚ҙͷॲཧΛ࣮ߦͰ͖ΔɽΠϯλʔόϧͷҰճ͚ͩͷܗ ΠϯλʔόϧϑοΫ ىಈ੒ޭޙɺίϯςφຊମͷॲཧͱ͸ඇಉظͷܗͰɼҰఆ࣌ؒͷΠ ϯλʔόϧΛऔͬͯ೚ҙͷॲཧΛఆظ࣮ߦͰ͖Δ γάφϧϋϯυϥ ίϯςφΛ؅ཧ͢ΔϓϩηεʢεʔύʔόΠβʣʹ೚ҙͷλΠϛϯ άͰಛఆͷγάφϧΛૹ෇͢Δͱɺ೚ҙͷॲཧΛ࣮ߦͰ͖Δ
  7. • ଞͷίϯςφϥϯλΠϜͰ͸ϥΠϑαΠΫϧΠϕϯτΛϕʔεͱͨ͠ϑοΫػ ߏΛαϙʔτ͍ͯ͠Δ • ྫ: Docker(ϥΠϑαΠΫϧΠϕϯτΛ؂ࢹ͢ΔHTTP APIΛ༻ҙ)ɼLXC(ઃఆ ϑΝΠϧͰ೚ҙͷίϚϯυΛ࣮ߦࢦఆՄೳ) • ҰํͰɼλΠϜΞ΢τ΍ΠϯλʔόϧϑοΫʹؔͯ͠͸ݱࡏHaconiwaͷΈ͕

    ίϯςφϥϯλΠϜ૊ΈࠐΈͰαϙʔτ͢Δ • ͜ͷϑοΫ͸ɼޙड़ͷFastContainerͷΑ͏ͳίϯςφͷੜଘظؒΛࢦఆ͢ Δػೳͷ࣮ݱͱ૬ੑ͕ྑ͍ ิ଍: ϑοΫػߏʹ͍ͭͯͷଞ࣮૷ͱͷൺֱ 
  8. • ଞͷίϯςφϥϯλΠϜ͕αϙʔτ͢ΔҰ෦ػೳ͕ະ࣮૷ • ۩ମతʹ͸Mandatory Access Control(SELinux/AppArmorଞ)ͱͷ࿈ܞͳͲ • ϑοΫػߏɼྫ֎ػߏͳͲΛΑΓ҆ఆͤ͞࢖͍΍͘͢͢Δ • ར༻ऀ਺͕·ͩগͳ͘ɼ৘ใ΋গͳ͍

    • ΤίγεςϜΛॆ࣮ͤ͞ΔɽυΩϡϝϯτ΋΋ͪΖΜͰ͋Δ͕ɼHaconiwa Λར༻ͨ͠ίϯςφ؅ཧΛ؆୯ʹମݧͰ͖ΔΑ͏ͳOSS΋ݕ౼͢Δ ՝୊ͱࠓޙͷHaconiwa 
  9. • ຊ࿦จ͸ɼڞஶऀͷ΄͔ҎԼͷํʑΑΓॿݴɾఏҊΛ͍͍͍ͨͩͯΔɽ • ۝भେֶ Ԭଜߞೋઌੜɼౢ٢ོ෉ઌੜɼּݪٛߊઌੜ • GMOϖύϘݚڀॴސ໰ ྗ෢݈ٕ࣍ज़࢜ • ΫοΫύου

    ࡫ాߞҰ͞Μ • ຊ࿦จͷ಺༰͸ɼฏ੒29೥౓ ࠃཱ৘ใֶݚڀॴΫϥ΢υར׆༻࣮ূ࣮ݧʹ͓ ͚Δ੒ՌͷҰ෦Λར༻͍ͯ͠Δ ँࣙ