Kubernetes Meetup Tokyo#25での発表資料です。
ೖɺ,VCFSOFUFT1FSTJTUFOU7PMVNF:VLJOPSJ4BLBTIJUB
View Slide
ࣗݾհ ‣ٕज़ݚڀΤϦΞ ӡ༻ཧٕज़ Ϋϥυ αʔόετϨʔδ ࣗಈࣗίϯϐϡʔςΟϯά "*.- // ).. #BZFTJBO/FUXPSL‣৬ྺ ૯߹ిػϝʔΧʔ㾎ݚڀॴ ओݚڀһ㾎ւ֎ݚڀॴ!γϦίϯόϨʔ ϥϘ αʔόϕϯμʔ ςΫχΧϧ4&2ࡔԼಙ ത࢜:VLJOPSJ4BLBTIJUB 1I%‣ ϠϑʔגࣜձࣾθοτϥϘגࣜձࣾ‣ 4/*"ຊࢧ෦ٕज़ҕһձ෭ҕһ‣ 4/*" 645FDIOJDBM$PVODJM"EWJTPS
"HFOEB ॳ৺ऀ͚ετϨʔδͷ͋Ε͜Ε ,VCFSOFUFTʹ͓͚ΔετϨʔδϞσϧͱಈ͖ Α͋͘Δ࣭ͱͦͷճ3
ॳ৺ऀ͚ετϨʔδͷ͋Ε͜Ε
ॳ৺ऀ͕ࠞಉ͍͢͠ϫʔυ53FBE8SJUFϒϩοΫϑΝΠϧΦϒδΣΫτ4$4*J4$4*$JOEFS/7.FP'$4*1SPWJTJPOJOH"UUBDI%FUBDI4XPSEpTIཧ"1*4"/σʔλϓϨʔϯʹؔ࿈͢Δϫʔυ ίϯτϩʔϧϓϨʔϯʹؔ࿈͢Δϫʔυ‣ σʔλϓϨʔϯσʔλ֨ೲͱసૹॲཧΛ୲͏‣ ίϯτϩʔϧϓϨʔϯཧ"1*ͳͲͷॲཧΛ୲͏
ϒϩοΫετϨʔδ ϑΝΠϧετϨʔδ ΦϒδΣΫτετϨʔδΞʔΩςΫνϟಛwଂυϥΠϒͱಉ͡3BXσόΠεwϑΝΠϧγεςϜࣗ༝ʹબwωοτϫʔΫυϥΠϒwϑΝΠϧγεςϜετϨʔδͤɺมߋෆՄwΦϒδΣΫτ୯ҐͰΞΫηεwϑΝΠϧγεςϜʹґଘ͠ͳ͍ͨΊɺେྔσʔλΛ֨ೲՄೳσʔλసૹϓϩτίϧ J4$4* '$ /7.F /'4 4.# )5514 )551Ϛϯτύεͷྫ EFWTEB aaaTIBSFaIPHF IUUQTBBBPSHTUPSBHFIPHFੑೳ )JHI .JEEMF -PXओͳ༻్ %# 04 #PPU%JTL ϑΝΠϧͷڞ༗ ࣸਅɺಈը֨ೲετϨʔδछผ6J4$4*/"44FSWFS/'4 4.#,74)55144FSWFS)5514)PTU )PTU )PTUҰൠతͳͰ͋ΓʹΑΓมΘΓ·͢4$4* 4$4*
,VCFSOFUFTʹ͓͚ΔετϨʔδϞσϧͱಈ͖
1FSTJTUFOUͱ‣ &QIFNFSBM ͔ͳ͍ɺ໋ 1PEͷআ࠶σϓϩΠͱಉ࣌ʹσʔλ͕ফ͑Δ FNQUZ%JS7PMVNF MPHEJSFDUPSZ XSJUBCMFMBZFST‣ 1FSTJTUFOU ࣋ଓతɺӬଓੑ 1PE͕আ࠶σϓϩΠ͞Εͯσʔλফ͑ͳ͍ 1FSTJTUFOU7PMVNF 178bin/libContainerAppLogic Data
$/$'$MPVE/BUJWF-BOETDBQF93FG$/$'MBOETDBQF IUUQTHJUIVCDPNDODGMBOETDBQF
103FG$/$'MBOETDBQF IUUQTHJUIVCDPNDODGMBOETDBQF$MPVE/BUJWF4UPSBHF
‣ ,VCFSOFUFTW ` $4* "MQIB‣ ,VCFSOFUFTW ` -PDBM7PMVNF #FUB‣ ,VCFSOFUFTW ` 7PMVNF3FTJ[JOH‣ ,VCFSOFUFTW ` 7PMVNF4OBQTIPU "MQIB 5PQPMPHZ"XBSF7PMVNF1SPWJTJPOJOH #FUB11‣ ,VCFSOFUFTW ` $4* ("‣ ,VCFSOFUFTW ` -PDBM7PMVNF ("‣ ,VCFSOFUFTW ` $4*7PMVNF$MPOJOH "MQIB‣ ,VCFSOFUFTW ` $4*7PMVNF$MPOJOH #FUB,VCFSOFUFTͰͷαϙʔτػೳཤྺ
ετϨʔδͷϞσϧ‣ ϕϯμʔχϡʔτϥϧͳϞσϧ 1FSTJTUFOU7PMVNF$MBJN 1FSTJTUFOU7PMVNF 4UPSBHF$MBTT‣ ཧऀͱϢʔβͷׂΛߟྀͨ͠Ϟσϧ‣ ετϨʔδஔͷૢ࡞ͳ͠Ͱ7PMVNFΛ ίϯςφʹࣗಈͰϚϯτ‣ ओʹϒϩοΫετϨʔδϑΝΠϧ ετϨʔδ͕ର12Ϣʔβཧऀ
ετϨʔδϦιʔεͷൣғͱݖݶ‣ 4UPSBHF$MBTT 1FSTJTUFOU7PMVNFશͯͷ/BNFTQBDFͰڞ௨ͷϦιʔε Ϋϥελશମͷཧऀݖݶ͕ඞཁ $MVTUFS3PMFͱόΠϯσΟϯά͞ΕͨΞΧϯτ‣ 1FSTJTUFOU7PMVNF$MBJN/BNFTQBDF͝ͱͷϦιʔε /BNFTQBDFEΦϒδΣΫτͷಡΈॻ͖ͷݖݶ͕ඞཁ 3PMFͱόΠϯσΟϯά͞ΕͨΞΧϯτ13LVCFDUMBQJSFTPVSDFT/".&4)035/".&4"1*(3061/".&41"$&%,*/%QFSTJTUFOUWPMVNFDMBJNTQWDUSVF1FSTJTUFOU7PMVNF$MBJNQFSTJTUFOUWPMVNFTQWGBMTF1FSTJTUFOU7PMVNFTUPSBHFDMBTTFTTDTUPSBHFLTJPGBMTF4UPSBHF$MBTT
1FSTJTUFOU7PMVNF$MBJN QWD‣ 7PMVNFͷཁٻ༷Λද͢Ϧιʔε 4UPSBHFUZQF 4UPSBHF$MBTT໊ 7PMVNFTJ[F "DDFTTNPEF14
ϩοΫϝΧχζϜͷҧ͍‣ ϒϩοΫετϨʔδ -#" ཧϒϩοΫΞυϨογϯάͷΞΫηεͷͨΊɺϩοΫϝΧχζϜΛ͍࣋ͬͯͳ͍ ͷϗετ͔ΒͷΈ8SJUFͱͳΔΑ͏ʹ Ϛϯτ͢Δඞཁ͋Γ‣ ϑΝΠϧετϨʔδ ϑΝΠϧ୯ҐͰͷϩοΫϝΧχζϜ͋Γ 0QFO࣌ʹऔಘͨ͠ϩοΫΛଞϗετʹൖ ෳͷϗετ͔Β3FBE8SJUF͕Մೳ15)PTU )PTU)PTU )PTU3FBE8SJUF 3FBE3FBE8SJUF 3FBE8SJUF)PTU͕ഉଞϩοΫͰ։͍͍ͯΔΑpMFϒϩοΫετϨʔδϑΝΠϧετϨʔδ
"DDFTT.PEFT16/PEF /PEF3FBE 3FBE3FBE8SJUF0ODF 380 3FBE0OMZ.BOZ 309/PEF /PEF3FBE8SJUF.BOZ 389‣ ͭͷ/PEF͔Β3FBE8SJUFͰϚϯτͰ͖Δ‣ ෳͷ/PEF͔Β3FBE0OMZͰϚϯτͰ͖Δ‣ ෳͷ/PEF͔Β3FBE8SJUFͰϚϯτͰ͖Δ/PEF3FBE8SJUF3FBE8SJUF 3FBE8SJUF
1FSTJTUFOU7PMVNF QW‣ 7PMVNFΛද͢Ϧιʔε 4UPSBHFUZQF 4UPSBHF$MBTT໊ 4J[F "DDFTTNPEFT 3FDMBJNQPMJDZw 3FUBJOw 3FDZDMFw %FMFUF17
3FDMBJN1PMJDZ‣ 17$Λআͨ࣌͠ɺ17ΛͲ͏͢Δ͔ΛܾΊΔϙϦγʔ1817$আ 17$আ 17$আͦͷ··σʔλΛ আ17Λআ3FUBJO 3FDZDMF %FQSFDBUFE %FMFUF
4UPSBHF$MBTT TD‣ ετϨʔδϓʔϧΛද͢Ϟσϧ /BNF 3FDMBJNQPMJDZ 1SPWJTJPOFS‣ 1SPWJTJPOFS͕ετϨʔδஔͷ "1*Λݺͼग़͠19
$4* $POUBJOFS4UPSBHF*OUFSGBDF‣ ίϯςφΦʔέετϨʔγϣϯ͚ͷඪ४༷‣ ݄ʹ࠷ॳͷύϒϦοΫϦϦʔε‣ ओཁͳίϯςφΦʔέετϨʔγϣϯ͕࠾༻ ,VCFSOFUFT $MPVE'PVOESZ .FTPT %PDLFS FUD‣ ,VCFSOFUFTͰʹͯ("αϙʔτ‣ ,VCFSOFUFTͷιʔεπϦʔ JOUSFFͰཧ͞Ε͍ͯͨετϨʔδஔʹ ؔ࿈͢Δ࣮͕ɺSEϕϯμͰಠࣗʹ։ൃఏڙ͢Δ͜ͱ͕Մೳ20
4UBUFGVM4FU TUT21‣ 1FSTJTUFOU7PMVNF 1FSTJTUFOU7PMVNF$MBJNΛศར͔ͭ҆શʹ͏ͳΒ4UBUFGVM4FU͕Φεεϝ‣ ಛ 1PE໊ʹ࿈ଓͨ͠൪߸Λ༩ FH NZTRM NZTRMʜ 1PEΛߋ৽͢Δ߹ɺඞͣલͷ൪߸ͷ1PEͷॲཧ͕͔ྃͯ͠Β࣮ߦ 1PEͷੜ࣌ʹ17$Λࣗಈੜͯ͘͠ΕΔ7PMVNF$MBJN5FNQMBUFT͋Γ 4UBUFGVM4FUΛআͯ͠4UBUFGVM4FUͱ1PE͕ফ͑ΔͷΈ 17$ 17আ͞Εͳ͍ Φϖϛεࢭ38/PEF38/PEFɾɾNZTRM NZTRM
1FSTJTUFOU7PMVNFͷׂΓͯ‣ 1FSTJTUFOU7PMVNFͷׂΓͯʹେ͖ͭ͘ͷํ๏‣ .BOVBM1SPWJTJPOJOH ཧऀ͕4UPSBHF$MBTTͱ1FSTJTUFOU7PMVNFΛࣄલʹσϓϩΠ Ϣʔβ1FSTJTUFOU7PMVNF$MBJNΛͬͯ1FSTJTUFOU7PMVNFΛબ‣ %ZOBNJD1SPWJTJPOJOH ཧऀ4UPSBHF$MBTTͷΈࣄલʹ४උ Ϣʔβ͕1FSTJTUFOU7PMVNF$MBJNΛσϓϩΠ͢Δͱ 1FSTJTUFOU7PMVNF͕ࣗಈੜ22
%ZOBNJD1SPWJTJPOJOH23ʜTQFDDPOUBJOFSTOBNFNZTRMJNBHFNZTRMʜWPMVNF.PVOUTOBNFNZTRMEBUBNPVOU1BUIWBSMJCNZTRMWPMVNF$MBJN5FNQMBUFTNFUBEBUBOBNFNZTRMEBUBTQFDBDDFTT.PEFT<3FBE8SJUF0ODF>TUPSBHF$MBTT/BNFHPMESFTPVSDFTSFRVFTUTTUPSBHF(J%FQMPZ
%ZOBNJD1SPWJTJPOJOH24ʜTQFDDPOUBJOFSTOBNFNZTRMJNBHFNZTRMʜWPMVNF.PVOUTOBNFNZTRMEBUBNPVOU1BUIWBSMJCNZTRMWPMVNF$MBJN5FNQMBUFTNFUBEBUBOBNFNZTRMEBUBTQFDBDDFTT.PEFT<3FBE8SJUF0ODF>TUPSBHF$MBTT/BNFHPMESFTPVSDFTSFRVFTUTTUPSBHF(J$SFBUF17$
%ZOBNJD1SPWJTJPOJOH25ʜTQFDDPOUBJOFSTOBNFNZTRMJNBHFNZTRMʜWPMVNF.PVOUTOBNFNZTRMEBUBNPVOU1BUIWBSMJCNZTRMWPMVNF$MBJN5FNQMBUFTNFUBEBUBOBNFNZTRMEBUBTQFDBDDFTT.PEFT<3FBE8SJUF0ODF>TUPSBHF$MBTT/BNFHPMESFTPVSDFTSFRVFTUTTUPSBHF(J4FMFDU4$
%ZOBNJD1SPWJTJPOJOH26ʜTQFDDPOUBJOFSTOBNFNZTRMJNBHFNZTRMʜWPMVNF.PVOUTOBNFNZTRMEBUBNPVOU1BUIWBSMJCNZTRMWPMVNF$MBJN5FNQMBUFTNFUBEBUBOBNFNZTRMEBUBTQFDBDDFTT.PEFT<3FBE8SJUF0ODF>TUPSBHF$MBTT/BNFHPMESFTPVSDFTSFRVFTUTTUPSBHF(JStorage$SFBUF7PMVNFQSPWJTJPOFS
%ZOBNJD1SPWJTJPOJOH27ʜTQFDDPOUBJOFSTOBNFNZTRMJNBHFNZTRMʜWPMVNF.PVOUTOBNFNZTRMEBUBNPVOU1BUIWBSMJCNZTRMWPMVNF$MBJN5FNQMBUFTNFUBEBUBOBNFNZTRMEBUBTQFDBDDFTT.PEFT<3FBE8SJUF0ODF>TUPSBHF$MBTT/BNFHPMESFTPVSDFTSFRVFTUTTUPSBHF(JStorageOS"TTJHO$SFBUF 17
%ZOBNJD1SPWJTJPOJOH28ʜTQFDDPOUBJOFSTOBNFNZTRMJNBHFNZTRMʜWPMVNF.PVOUTOBNFNZTRMEBUBNPVOU1BUIWBSMJCNZTRMWPMVNF$MBJN5FNQMBUFTNFUBEBUBOBNFNZTRMEBUBTQFDBDDFTT.PEFT<3FBE8SJUF0ODF>TUPSBHF$MBTT/BNFHPMESFTPVSDFTSFRVFTUTTUPSBHF(JStorageOSContainerRuntimeContainer.PVOU ɹ17
3PMMJOH6QEBUF29‣ ϩʔϦϯάΞοϓσʔτʹΑΓ1PE࠶࡞‣ 1FSTJTUFOU7PMVNFͱ1FSTJTUFOU7PMVNF$MBJN࠶࡞͞Εͳ͍‣ ͭ·ΓɺετϨʔδஔͷ7PMVNFআ͞Εͳ͍‣ 7PMVNFʹର͠EFUBDIBUUBDI͕࣮ߦ‣ /PEFোηϧϑώʔϦϯάʹΑΔ1PEͷ࡞Γ͠ͷέʔεͰಉ༷
W/PEF"7PMVNFW/PEF#7PMVNF/PEF$3PMMJOH6QEBUF
W/PEF"7PMVNFW/PEF#7PMVNF/PEF$3PMMJOH6QEBUFW%FUBDI
W/PEF"7PMVNFW/PEF#7PMVNF/PEF$3PMMJOH6QEBUF"UUBDI
W/PEF"7PMVNF/PEF#%FUBDI7PMVNF/PEF$W3PMMJOH6QEBUF
W/PEF"7PMVNF/PEF#"UUBDI7PMVNF/PEF$W3PMMJOH6QEBUF
Ϛωʔδυ,4ͷετϨʔδ35(,& (PPHMF &,4 "NB[PO ",4 .4ϒϩοΫ ϑΝΠϧ ϒϩοΫ ϑΝΠϧ ϒϩοΫ ϑΝΠϧ7PMVNF ($&1FSTJTUFOU%JTL $MPVE'JMFTUPSB "NB[PO "NB[PO&'4 "[VSF%JTL "[VSF'JMF"DDFTT .PEF380309380309389380309380309389380380 309389ಛw 44%PS)%%ͷ બՄw ϦʔδϣϯӬଓ σΟεΫ ϕʔλw /'4Ww *OUSFFͷ/'4͔Β༻w൚༻44% HQɺ ߴੑ44% JPɺ൚༻)%% TUɺ $PME)%% TDͷબՄw/'4Ww$4*͔Β༻w 44%PS)%%ͷબՄw4.#w*OUSFF$4*͔Β༻w"[VSF'JMFͱ"[VSF/FU"QQ'JMFͷબՄ.BY 17/PEF
(,&Ͱ1FSTJTUFOU7PMVNFΛ͏‣ (,&Ͱ,VCFSOFUFTΫϥελΛηοτΞοϓ σϑΥϧτͰϒϩοΫετϨʔδͷ4UPSBHF$MBTT lTUBOEBSEz͕ σϓϩΠࡁΈ σϑΥϧτͷσΟεΫλΠϓQETUBOEBSE )%% มߋ͍ͨ͠߹4UPSBHF$MBTTΛฤूPS৽ͨʹσϓϩΠ36LVCFDUMHFUTD/".&1307*4*0/&3"(&TUBOEBSE EFGBVMULVCFSOFUFTJPHDFQENT
(,&Ͱ1FSTJTUFOU7PMVNFΛ͏‣ 17$ͷ.BOJGFTUΛ࡞σϓϩΠ37BQJ7FSTJPOWLJOE1FSTJTUFOU7PMVNF$MBJNNFUBEBUBOBNFUFTUWPMTQFDTUPSBHF$MBTT/BNFTUBOEBSEBDDFTT.PEFT3FBE8SJUF0ODFSFTPVSDFTSFRVFTUTTUPSBHF(JLVCFDUMBQQMZGQWDZBNMQFSTJTUFOUWPMVNFDMBJNUFTUWPMDSFBUFEQWDZBNM
(,&Ͱ1FSTJTUFOU7PMVNFΛ͏‣ 17$ 17Λ֬ೝ38LVCFDUMHFUQWD/".&45"56470-6.&$"1"$*5:"$$&44.0%&44503"(&$-"44"(&UFTUWPM#PVOEQWDYYYGD(J380TUBOEBSETLVCFDUMHFUQW/".&$"1"$*5:"$$&44.0%&43&$-"*.10-*$:45"564$-"*.4503"(&$-"443&"40/"(&QWDYYYGD(J380%FMFUF#PVOEEFGBVMUUFTUWPMTUBOEBSET
(,&Ͱ1FSTJTUFOU7PMVNFΛ͏‣ 17$Λࢦఆͨ͠1PEͷ.BOJGFTUΛ ࡞ˍσϓϩΠ39BQJ7FSTJPOWLJOE1PENFUBEBUBOBNFUFTUQPETQFDDPOUBJOFSTJNBHFOHJOYOBNFUFTUQPEWPMVNF.PVOUTNPVOU1BUIVTSTIBSFOHJOYIUNMOBNFEBUBWPMWPMVNFTOBNFEBUBWPMQFSTJTUFOU7PMVNF$MBJNDMBJN/BNFUFTUWPMLVCFDUMBQQMZGQPEZBNMQPEUFTUQPEDSFBUFEQPEZBNM‣ Ϛϯτ͞Ε͍ͯΔ͔Λ֬ೝLVCFDUMFYFDUFTUQPEEGcHSFQOHJOYEFWTECVTSTIBSFOHJOYIUNM
Α͋͘Δ࣭ͱͦͷճ
ετϨʔδԿΛબΜͩΒྑ͍ʁ‣ ࣍ͷج४Λߟ͑બผ͢Δͷ͕Φεεϝ‣ ֨ೲ͍ͨ͠σʔλͷՁʁ‣ ར༻͢ΔΞϓϦέʔγϣϯͷछྨʁ‣ 044ͷετϨʔδͷ߹ɺোൃੜ࣌ʹιʔεͷϝϯς͕ԿਓͰ͖Δ͔ʁ‣ 044ͷετϨʔδͷ߹ɺোൃੜ࣌ʹอূͯ͘͠Εͳ͍ͷͰ࠷ѱσʔλ͕ফ͑Δ͜ͱࢹʹೖΕͯར༻ϢʔεέʔεΛݟఆΊ‣ ετϨʔδΛબͿ࣌ɾγεςϜઃܭ͢Δͱ͖ʹߟྀ͖͢ϙΠϯτʁ ࣦഊ͠ͳ͍,VCFSOFUFT͚ετϨʔδબͼͭͷϙΠϯτ $/%5 IUUQTTQFBLFSEFDLDPNZTBLBTIJUBTIJCBJTJOBJLVCFSOFUFTYJBOHLFTVUPSF[JYVBOCJUVGBMTFQPJOUP
$JOEFSͱ"ࣾͲͪΒ͕ྑ͍ʁ‣ Α͘ฉ͔Ε·͕͢ɺൺֱର͕ҧ͏ͷͰ͑ΒΕ·ͤΜ‣ ,VCFSOFUFT$4*Λαϙʔτ͍ͯ͠ͳ͍ετϨʔδΛ͏߹ 0QFO4UBDL$JOEFSΛ1SPYZͱͯ͠ར༻42$4*$JOEFS/PEFJ4$4*ίϯτϩʔϧϓϨʔϯ σʔλϓϨʔϯ"ࣾετϨʔδ$4*/PEFJ4$4*/'4FUD"ࣾετϨʔδ74
%#ʹϒϩοΫPSϑΝΠϧʁ‣ ಛผͳཧ༝͕ͳ͍ݶΓϒϩοΫετϨʔδΛͬͨํ͕ϕλʔ‣ ੑೳͷ‣ ϑΝΠϧετϨʔδ /'4͕࣋ͭϩοΫͷϝΧχζϜMPDLE͕SQDܦ༝Ͱ ଞϗετʹϩοΫঢ়گΛൖ͢Δͷ͕ͩɺଈ࣌ੑɾΞτϛοΫੑ͕อূ͞Εͳ͍‣ ϑΝΠϧετϨʔδ04͔Β4ZODͯ͠44%)%%ʹॻ͖ࠐ·Εͨอূͳ͠43.Z42-ϦϑΝϨϯεϚχϡΞϧΑΓൈਮ
%FQMPZNFOUͰ17Λͬͯྑ͍ʁ‣ %FQMPZNFOUετϨʔδʹ༏͘͠ͳ͍ͷͰ4UBUFGVM4FU͕Φεεϝ‣ ಛʹ389Λαϙʔτ͍ͯ͠ͳ͍ετϨʔδͰ4UBUFGVM4FU%FUBDIલ38 "UUBDIΛࢼΈΔɻ ͔͠͠ผ/PEFͰ38Ͱ"UUBDIࡁͷͨΊ 3FBE0OMZͰϚϯτPSΤϥʔ33PMMJOH6QEBUFFUD5FSNJOBUJOH $SFBUJOHಉ࣌ʹൃੜಉ࣌ʹൃੜࢀߟIUUQTDMPVEHPPHMFDPNLVCFSOFUFTFOHJOFEPDTDPODFQUTQFSTJTUFOUWPMVNFT IMKBEFQMPZNFOUT@WT@TUBUFGVMTFUT
·ͱΊ45‣ ετϨʔδͷೖͱͯ͠ϒϩοΫɺϑΝΠϧɺΦϒδΣΫτͷҧ͍Λհ‣ ,VCFSOFUFTͰͷετϨʔδͷϞσϧͱಈ͖Λհ 17$ 17 4$ %ZOBNJD1SPWJTJPOJOHͱ3PMMJOH6QEBUFͰͷಈ͖ Ϛωʔδυ,VCFSOFUFTͰͷετϨʔδ‣ Α͋͘Δ࣭ͱͦͷճͷհ