Kubernetes جૅษڧձTIBOQV
View Slide
ͶΒ͍2˓ ,VCFSOFUFTͷجૅΛֶͼࠓޙͷษڧʹཱͯͯΒ͏˓ ,VCFSOFUFTͷ͜ͱΛ͖ʹͳͬͯΒ͏
Agenda3 ,VCFSFOFUFTͱ LVCFDUMɾLVCFOTɾLVCFDUY 8PSLMPBETϦιʔε ೝূͱΞʔΩςΫνϟ %JTDPWFSZ-#Ϧιʔε $POpH4USBHFϦιʔε 0UIFST ͍͞͝ʹ
Link4˓ ϋϯζΦϯࢿྉ˔ IUUQTHJUIVCDPNDIF[TIBOQVLTTFNJOBS˓ ࿅श˔ IUUQTHJUIVCDPNEHLBOBUTJPT$,"%FYFSDJTFT
1. Kubernetesͱ5
ಡΈํ6,VCFSOFUFTLTSEL@KIT
History7
KubernetesԿΛߦ͏ʁ8˓ ίϯςφͷཧΛ͍͍ײ͡ʹߦ͏
Kubernetesͷಛ9˓ ϚχϑΣετϑΝΠϧ˓ εέʔϦϯά˓ εέδϡʔϦϯά˓ Ϧιʔεཧ˓ ηϧϑώʔϦϯά˓ σʔλͷཧSEL@KIT
2. kubectlɾkubensɾkubectx10
KubeCLIπʔϧࡾॐ࢜11˓ LVCFDUM˔ ,VCFSOFUFTʹର͢Δ͋ΔΏΔૢ࡞Λߦͬͯ͘ΕΔίϚϯυ˔ ࣮ࡍʹ,VCFSOFUFTͷ3&45"1*TFSWFSʹରͯ͠ϦΫΤετΛૹ͍ͬͯΔ˓ LVCFOT˔ OBNFTQBDFͷΓସ͑Λ؆୯ʹͯ͘͠ΕΔ˓ LVCFDUY˔ DPOUFYUͷΓସ͑Λ؆୯ʹͯ͘͠ΕΔ
kubectl جຊίϚϯυ12˓ ALVCFDUMHFUϦιʔεA˔ ࢦఆͨ͠ϦιʔεͷεςʔλεΛऔಘ˔ ALVCFDUMHFUϦιʔε໊લPZBNMAͰͦͷϦιʔεͷϚχϑΣετΛݟΔ͜ͱͰ͖Δ˓ ALVCFDUMEFTDSJCFϦιʔε໊લA˔ ໊લͰࢦఆͨ͠ϦιʔεͷৄࡉΛදࣔ
kubectl جຊίϚϯυ13˓ ALVCFDUMBQQMZGϑΝΠϧͷύεA˔ ϚχϑΣετϑΝΠϧΛΫϥελʹద༻͢Δ˓ ALVCFDUMSVOΦϓγϣϯA˔ ໋ྩతʹϦιʔεΛੜ͢Δ˓ ALVCFDUMDSFBUFϦιʔε໊લA˔ ࢦఆ໊ͨ͠લͰࢦఆͨ͠ϦιʔεΛ࡞˔ ࡞Ͱ͖ΔϦιʔεͷछྨʹݶΓ͋Γ
kubectl جຊίϚϯυ14˓ ALVCFDUMEFMFUFϦιʔε໊લA˔ ࢦఆͨ͠ϦιʔεΛআ˔ GͰϚχϑΣετʹهࡌ͞Ε͍ͯΔϦιʔεΛআ˓ ALVCFDUMFYQMBJOϦιʔε ϑΟʔϧυ໊A˔ ֤ϦιʔεͷϚχϑΣετϑΝΠϧʹهࡌ͢ΔϑΟʔϧυͷใΛදࣔ
kubensɾkubectx15˓ LVCFOT˔ ΫϥελͷOBNFTQBDFΛҰཡදࣔ˔ ALVCFOTOBNFTQBDF໊AͰOBNFTQBDFͷΓସ͑˓ LVCFDUY˔ ࣗͷॴ͍࣋ͯ͠ΔίϯςΩετΛҰཡදࣔ˔ ALVCFDUYίϯςΩετ໊AͰίϯςΩετͷΓସ͑
3. WorkloadsϦιʔε16
ུ֓ਤ17
Pod (po)18˓ 8PSLMPETϦιʔεͷ࠷খ୯Ґ˓ $POUBJOFS㱨1PE˓ σβΠϯύλʔϯ˔ αΠυΧʔύλʔϯ˔ Ξϯόαμʔύλʔϯ˔ Ξμϓλύλʔϯ
ReplicaSet (rs)19˓ SFQMJDBTͰҡ͍࣋ͨ͠1PEͷΛࢦఆ˓ 3FQMJDB4FU୯ମͰ͏͜ͱ͋·Γͳ͍˔ ޙड़ͷ%FQMPZNFOUΛ͏
Deployment (deploy)20˓ 3FQMJDB4FUΛཧ˔ ϩʔϦϯάΞοϓσʔτ˔ ϩʔϧόοΫ˓ BQQMZ͢Δͱదͳ3FQMJDB4FUΛ࡞
DeploymentͷϩʔϦϯάΞοϓσʔτ21
DeploymentͷϩʔϦϯάΞοϓσʔτ22
StatefulSet (sts)23˓ σʔλΛӬଓԽ͢ΔΈΛඋ͑Δ˓ 1PEͷ໊લʹΠϯσοΫε͕αϑΟοΫεͱͯͭ͘͠
DaemonSet (ds)24˓ ֤ϊʔυʹඞͣҰͭ1PEΛஔ͢Δ˓ /PEF4FMFDUPSΛ͑ஔ͠ͳ͍͜ͱՄೳ
Job25˓ ίϯςφΛར༻ͯ͠ҰݶΓͷॲཧΛ࣮ߦͤ͞Δ˓ ࣮ߦํ๏ྃ݅ΛࢦఆͰ͖Δ˔ /ฒྻͰ࣮ߦͯ͠΄͍͠˔ /ճޭͨ͠Βਖ਼ৗऴྃʹͯ͠΄͍͠˔ /ճࣦഊͨ͠Β͏͠ͳ͍͍ͯ͘
CronJob (cj)26˓ +PCΛఆظ࣮ߦͯ͘͠ΕΔ
4. ೝূͱΞʔΩςΫνϟ27
NamespaceͱRBAC28
ClusterͱNode29
MasterNodeͱNode30
5. Discovery & LB Ϧιʔε31
ClusterIPɾExternalIP32˓ $MVTUFS*1˔ Ϋϥελ෦ͷ*1˓ &YUFSOBM*1˔ Ϋϥελ֎෦ͱૄ௨ੑͷ͋Δ*1
NodePort33˓ ͦΕͧΕͷ/PEFͷࢦఆ1PSUͷτϥϑΟοΫΛɼͦΕʹඥ͚ͮͨ1PEͷ1PSUసૹ˓ $MVTUFS*1ࣗಈతʹൃߦ
LoadBalancer34˓ Ϋϥελ֎ʹ-#Λ࡞˔ -#ʹ֎෦ૄ௨ੑͷ͋Δ*1Λ༩
Ingress35˓ -ͷϩʔυόϥϯα˓ *OHSFTT$POUSPMMFS͕ผ్ඞཁ
6. Config & Strage Ϧιʔε36
Secret37˓ ओʹػີใͷอʹ͏˓ ,FZ7BMVFͷܗͰهड़˓ 7BMVFCBTFͰΤϯίʔυ
ConfigMap (cm)38˓ 4FDSFUͷػີใ͡Όͳ͍൛˓ ϑΝΠϧͷதΛॻ͍ͯͦΕΛϚϯτͤ͞Δ͍ํΑ͘͢Δ
PersistentVolume (pv)39˓ ӬଓԽྖҬͱͯ֬͠อ˓ ༧ΊετϨʔδΛ༻ҙ͓ͯ͘͠
PersistentVolumeClaim (pvc)40˓ 1FSTJTUFOU7PMVNF$MBJNܦ༝Ͱ17Λ֬อ͢Δ˓ 17$ͷཁٻʹ߹ͬͨ17͕͍ग़͞ΕΔ
7. Others41
NetworkPolicy42˓ 1PEಉ࢜ͷ௨৴Λ੍ޚ˔ ྫಉ͡/BNFTQBDFͷ1PE͔͠௨৴Ͱ͖ͳ͍Α͏ʹ͢Δ
NodeSelectorɾNodeAffinity43˓ 1PEͷεέδϡʔϦϯάઌΛࢦఆ˓ 1PETQFDʹهड़˓ /PEF"⒏OJUZͷํ͕ΑΓࡉ͔͍݅ઃఆ͕Մೳ
TaintɾTolerations44˓ 5BJOUʢԚΕʣ˔ 1PEΛεέδϡʔϦϯάͤ͞ͳ͍˓ 5PMFSBUJPOTʢ༰ʣ˔ 5BJOUͷ͍ͭͨ/PEFʹεέδϡʔϦϯά͞ΕΔ
Ϧιʔεͷ੍ݶ45˓ ༻͢ΔϚγϯϦιʔεͷ্ݶͱԼݶΛઃఆͰ͖Δ
8. ͍͞͝ʹ46
հͰ͖ͳ͔ͬͨ͜ͱ47˓ )PSJ[POUBM1PE"VUPTDBMFS˓ 7FSUJDBM1PE"VUPTDBMFS˓ %SBJOɼ$PSEPOɼ6ODPSEPO˓ 1PE%JTSVQUJPO#VEHFU˓ $VTUPN3FTPVSDF%FpOJUJPO˓ $MVTUFS3PMFɼ$MVTUFS3PMF#JOEJOH˓ 4FSWJDF"DDPVOUFUD
ࢀߟਤॻ48˓ ,VFCFSOFUFTશΨΠυ˔ ,VCFSOFUFTͷجຊཁૉΛཏ͍ͯ͠Δ˔ αϯϓϧίʔυɼਤଟ͘Θ͔Γ͍͢˓ ଞʹ,VCFSOFUFTຊ͋Δ˔ ͠ങͬͨਓ͕͍ͨΒײڭ͍͑ͯͩ͘͞
Πϕϯτ& Slack49˓ Πϕϯτ˔ DPOOQBTTͰௐΔͱΘΓͱώοτ͢Δ˔ ,VCFSOFUFT.FFUVQ5PLZPͳͲϏσΦ৴͍ͯ͠ΔΠϕϯτ͋Δ˓ 4MBDL˔ ,VCFSOFUFTϢʔβͷͨΊͷϫʔΫεϖʔε͕͋Δ˔ ຊਓͷͨΊͷνϟϯωϧ͋Δ˔ ௐͯΘ͔Βͳ͍͜ͱ͜͜ʹ͛ͯΈΔͷΑ͍
50͓ർΕ༷Ͱͨ͠