$30 off During Our Annual Pro Sale. View Details »

Kubernetesを知る/Introduction Kubernertes

petitviolet
November 06, 2018

Kubernetesを知る/Introduction Kubernertes

社内勉強会で使った資料。

- kubernetesとは
- 概念・用語
- アーキテクチャ
- 基本操作
- 運用に向けて

petitviolet

November 06, 2018
Tweet

More Decks by petitviolet

Other Decks in Programming

Transcript

  1. ,VCFSOFUFTΛ஌Δ
    !QFUJUWJPMFU

    View Slide

  2. "HFOEB
    w LVCFSOFUFTͱ͸
    w ֓೦ɾ༻ޠ
    w ΞʔΩςΫνϟ
    w جຊૢ࡞
    w ӡ༻ʹ޲͚ͯ

    View Slide

  3. LVCFSOFUFT

    View Slide

  4. LVCFSOFUFTͷಡΈํ
    ͘ʔ͹Ͷ͍ͯ͌͢
    ͘ʔ΂ΔͶ͍ͯ͌͢
    ͖Ύʔ͹Ͷ͍ͯ͌͢
    ͖Ύʔ΂ΔͶ͍ͯ͌͢

    View Slide

  5. LVCFSOFUFTJP

    View Slide

  6. LVCFSOFUFT
    *UHSPVQTDPOUBJOFSTUIBUNBLFVQBOBQQMJDBUJPOJOUP
    MPHJDBMVOJUTGPSFBTZNBOBHFNFOUBOEEJTDPWFSZ
    w ίϯςφͷΦʔέετϨʔγϣϯπʔϧ
    w ུশLT

    View Slide

  7. LVCFSOFUFT
    w 4FSWJDF%JTDPWFSZ
    w -PBE#BMBODJOH
    w 3FTJMJFODF
    w TFMGIFBMJOH
    w BVUPTDBMJOH
    w %FQMPZ
    w SPMMCBDL

    View Slide

  8. LVCFSOFUFT
    w .JDSPTFSWJDFTΛߏ੒͢Δͷʹ࢖ΘΕΔ
    w 1PE /PEF 4FSWJDF *OHSFTTͳͲͷάϧʔϐϯά
    w ΞϓϦέʔγϣϯΛಈ͔͢ͷʹඞཁͳίϯς
    φ܈Λ·ͱΊͯ؅ཧग़དྷΔ
    w 4FSWJDF%JTDPWFSZͱ͔Λ͏·͘࢖͏ͱ
    .JDSPTFSWJDFTΛڠௐͤ͞Δ͜ͱ͕ग़དྷΔ

    View Slide

  9. טΈࡅ͘ͱ
    w %PDLFS
    ίϯςφΛ͍͍ײ͡ʹ؅ཧ͢Δ܅
    w 7.ͰΫϥελΛ૊ΜͰɺͦͷ্Ͱ͍͍ײ͡ʹ
    ෳ਺ͷίϯςφΛڠௐͤ͞Δ
    w ίϯςφ͕Ϋϥογϡͨ͠Βࣗಈճ෮
    w ॲཧ͕௥͍෇͔ͳ͚Ε͹Φʔτεέʔϧ

    View Slide

  10. LVCFSOFUFT
    w ෺ཧαʔόˠ7.ˠίϯςφ
    w αʔόΛந৅తʹѻ͑͏Α͏ʹͳ͖ͬͯͨ
    w ଟػೳͳ7.αʔόˠ୯ػೳͳίϯςφ
    w ࠷ۙͷ.JDSPTFSWJDFTͳྲྀΕ΋͋Δ
    w ୯ػೳͳίϯςφΛͲ͏૊Έ߹Θͤͯಈ͔͢
    ͔ɺεέδϡʔϦϯάͨ͠Γ͢Δͷ͕େม
    w ͦ͜ͰLVCFSOFUFTͱ͍͏ྲྀΕ
    w %PDLFS4XBSN͸ૣ͗ͨ͢ʜ

    View Slide

  11. ͦͯ͠JNNVUBCMFJOGSBTUSBDUVSF
    w ઃఆϑΝΠϧ͸શͯZBNM
    w એݴతͳهड़͕Մೳ
    w LVCFDUMFEJUͱ໋͍ͬͨྩత
    ͳίϚϯυ͸ۃྗ࢖Θͣɺ
    ZBNMΛॻ͍ͯBQQMZ͢ΔͷΛ
    ৺͕͚Α͏

    View Slide

  12. LVCFSOFUFTͷ
    ֓೦༻ޠ

    View Slide

  13. ֓೦༻ޠ
    w 1PE
    w 3FQMJDB4FU
    w %FQMPZNFOU
    w %BFNPO4FU
    w 4FSWJDF
    w *OHSFTT
    w 7PMVNF
    w $POpH.BQ 4FDSFU
    w /BNFTQBDF
    w FUD

    View Slide

  14. 1PE
    w ͭҎ্ͷίϯςφͷݻ·Γ
    w ྫɿ8FCΞϓϦ/HJOYqVFOUE
    w LVCFSOFUFTͰ؅ཧ͢Δର৅ͷ࠷খ୯Ґ
    w ஀ੜࢮ๢Λͱ΋ʹ͢Δϓϩηε͕1PE
    w DQVNFNPSZͳͲͷϦιʔε੍ݶΛ͔͚Δ

    View Slide

  15. 3FQMJDB4FU
    w 1PEͷ؅ཧΛ͢Δ
    w 1PEΛෳ੡ͯ͠Ұఆͷݸ਺Λอͭ
    w 1PE͕ࢮΜͩΒ৽͘͠1PEΛཱͯΔ
    w ௚઀࢖͏͜ͱ͸جຊతʹͳ͘ɺ%FQMPZNFOUͷ
    ࢠཁૉͱͯࣗ͠ಈͰ࡞੒͞ΕΔ
    w ੲ͸3FQMJDBUJPO$POUSPMMFSͱ͔ݴΘΕ͚ͯͨͲɺ
    ͍·͸3FQMJDB4FU͕ਖ਼͍͠

    View Slide

  16. %FQMPZNFOU
    w σϓϩΠ͢Δͱ͖͸΄ͱΜͲ͜Ε
    w 1PEͷ؅ཧΛ͢Δ3FQMJDB4FUͷ؅ཧΛ͢Δ
    w 3FQMJDB4FUͷػೳΛ࢖ͬͨσϓϩΠ
    w 1PEͭͣͭೖΕସ͑σϓϩΠ
    w CMVFHSFFO SFECMBDL
    σϓϩΠ
    w ϛεͬͨΒSPMMCBDL

    View Slide

  17. %BFNPO4FU
    w /PEFʹ͚ͭͩσϓϩΠ͍ͨ͠1PEΛ؅ཧ
    w qVFOUE EBUBEPHΒ΁ΜͰ࢖ΘΕΔ
    w ಉҰ/PEFʹͨ͘͞Μ͍Βͳ͍΍ͭ
    w Ͳͷ/PEFʹσϓϩΠ͢Δ͔΋બ୒Ͱ͖Δ
    w -BCFMͱ͔"OOPUBUJPOΛ࢖͏

    View Slide

  18. 4FSWJDF
    w LVCFSOFUFT্Ͱಈ͘ίϯςφ΁ͷΞΫηε
    w 1PEʹΞΫηε͢ΔͨΊͷ໊લղܾͷ࢓૊Έ
    w 3FQMJDB4FU΍%FQMPZNFOU಺ͷ1PEʹ΋ಧ͘
    w JQUBCMFTͰؤு͍ͬͯΔ ࠷৽൛ͩͱ*174

    w $MVTUFS*1 /PEF1PSU -PBE#BMBODFS͕සग़
    w $MVTUFS*1LTΫϥελ಺ʹดͨ͡4FSWJDF
    w /PEF1PSU/PEFͷ͋ΔQPSUΛQSPYZ͢Δ
    w -PBE#BMBODFS--#

    View Slide

  19. *OHSFTT
    w --#
    w )551 T
    -#
    w 4FSWJDFͷҰछͰ͸ͳͯ͘ผͷίϯϙʔωϯτ
    w ֤Ϋϥ΢υͱ౷߹͞Ε͍ͯΔ΋ͷΛ࢖͏͜ͱ
    ͕ଟ͍͔΋
    w /HJOYΛ*OHSFTTͱͯ͠࢖ͬͨΓ΋ग़དྷΔ

    View Slide

  20. 7PMVNF
    w Ϋϥελ্ͰσʔλΛѻ͏ͨΊͷ΋ͷ
    w ϑΝΠϧγεςϜ΋΋/'4ͱ͔΋࢖͑Δ
    w ֤Ϋϥ΢υͷσΟεΫʹରԠ͍ͯ͠Δ
    w 1FSTJTUFOU7PMVNO$MBJNͱ1FSTJTUFNU7PMVNO౳
    Λ૊Έ߹ΘͤͯϘϦϡʔϜΛϚ΢ϯτ͢Δ
    w ϗετͷσΟϨΫτϦ΍UFNQσΟϨΫτϦΛ
    1PEʹϚ΢ϯτ͢Δ͜ͱ΋Մೳ

    View Slide

  21. $POpH.BQ4FDSFU
    w $POpH.BQ؀ڥม਺ͳͲͷઃఆ
    w 4FDSFUػີ৘ใ
    w $POpH.BQΑΓݟ͑ͮΒ͍
    w ͕ɺผʹTFDVSFͰ΋ͳ͍ CBTFͯ͠Δ͚ͩ

    View Slide

  22. $POpH.BQ4FDSFU
    w 7PMVNFͱͯ͠Ϛ΢ϯτͰ͖Δ
    w ϛυϧ΢ΣΞͷDPOG͸$POpH.BQͰ؅ཧՄೳ
    $POpH.BQ
    %FQMPZNFOU

    View Slide

  23. /BNFTQBDF
    w ͦͷ໊ͷ௨Γ໊લۭؒ
    w LTΫϥελΛԾ૝తʹ෼཭͢Δ
    w /BNFTQBDFΛ௒͑ͨ௨৴͕ग़དྷͳ͍
    w LVCFTZTUFN LVCFQVCMJD EFGBVMU͕جຊ
    w QSPEVDUJPO TUBHJOH
    w BQJ CBUDI
    w ͳͲ੾Γޱ͸ࣗ༝

    View Slide

  24. LVCFSOFUFTͷΞʔΩςΫνϟ

    View Slide

  25. LTͷΞʔΩςΫνϟ
    w NBTUFS DPOUSPMQMBOF
    ͱXPSLFSϊʔυ
    w Ϋϥ΢υͷϑϧϚωʔδυLTαʔϏε͸
    NBTUFSϊʔυΛ؅ཧͯ͘͠Ε͍ͯΔ
    w NBTUFSͷ৑௕ߏ੒΍όʔδϣϯΞοϓ౳
    w جຊతʹ͸XPSLFSϊʔυ͚ͩߟ͑Ε͹0,

    View Slide

  26. IUUQTFOXJLJQFEJBPSHXJLJ,VCFSOFUFT

    View Slide

  27. IUUQTLVCFSOFUFTJPEPDTDPODFQUTBSDIJUFDUVSFDMPVEDPOUSPMMFS

    View Slide

  28. w LVCFBQJTFSWFS
    w LTͷ"1*Ͱɺ΄΅શͯͷίϯϙʔωϯτ͕BQJTFSWFSΛܦ༝͢Δ
    w LVCFDUMͷड͚ޱʹ΋ͳ͍ͬͯΔ
    w LVCFEOT $PSF%/4

    w LTΫϥελ಺Ͱͷ໊લղܾ΍αʔϏεσΟεΧόϦʹ࢖༻͞ΕΔ%/4
    w LVCFDPOUSPMMFSNBOBHFS
    w EFQMPZNFOUDPOUSPMMFSͳͲΛ࣮ߦ؂ࢹΛߦ͏
    w LVCFMFU
    w ֤/PEFʹσϓϩΠ͞Εɺ%PDLFSͱ࿈ܞͯ͠ίϯςφͷ؅ཧΛߦ͏
    w LVCFQSPYZ
    w ֤/PEFʹσϓϩΠ͞ΕɺτϥϑΟοΫΛసૹͯ͠4FSWJDFΛػೳͤ͞Δ
    w LVCFTDIFEVMFS
    w 1PEͷεέδϡʔϦϯά
    w FUDE
    w ෼ࢄ,74ͰɺLTΫϥελ಺ͷ৘ใ͕શͯอଘ͞ΕΔ

    View Slide

  29. LVCFSOFUFTͷجຊૢ࡞

    View Slide

  30. LVCFSOFUFTͷجຊૢ࡞
    w LVCFDUM
    w ͖ΎʔͿ͜ΜͱΖʔΔ
    w DSFEFOUJBM
    w Ϋϥ΢υϓϩόΠμ͔Βೝূ৘ใΛऔಘ
    w DPOUFYU
    w ͲͷLTΫϥελʹΞΫηε͢Δ͔
    $ kubectl config get-contexts

    View Slide

  31. LVCFSOFUFTͷجຊૢ࡞
    $ alias kubectl=ku # お好みで
    $ ku get (e.g. pod, deployment, ns)
    $ ku describe /(e.g. deploy/my-api)
    $ ku logs
    $ ku logs --tail 1000 -f # 最新1000行 + 垂れ流し
    $ ku apply -f # createではなくこちら
    $ ku config get-contexts
    $ ku config use-context
    $ ku config set-context —namespace=

    View Slide

  32. LVCFSOFUFTͷσόοά
    $ ku describe / # まず見るべき情報
    $ ku get -v=6 pod # 詳細なログを表示できる
    $ ku exec -it /bin/bash # docker execと同じ
    $ ku port-forward :
    $ ku run -it # docker runと同じ
    $ ku proxy # dashboardを見る
    $ ku cp pod: # scpと同じ

    View Slide

  33. LVCFSOFUFTΛӡ༻͢ΔͨΊʹ

    View Slide

  34. LTΛӡ༻͢ΔͨΊʹ
    w ஌͓͖͍ͬͯͨ͜ͱ
    w 1PEΛͲ͏࡞Δ͔
    w ઃఆͰ͖Δ͜ͱ ZBNMͰԿΛॻ͔͘

    w ϞχλϦϯά
    w σόοά
    w πʔϧ

    View Slide

  35. 1PEΛͲ͏࡞Δ͔

    View Slide

  36. 1PEΛͲ͏࡞Δ͔
    w GBDUPSBQQ
    IUUQTGBDUPSOFUKB

    View Slide

  37. View Slide

  38. 1PEΛͲ͏࡞Δ͔
    w 1PEͷݪଇ
    w ੜ͖ࢮʹΛͱ΋ʹ͢Δີ݁߹ͳϓϩηε܈
    w ίϯςφࣗମ͸جຊతʹϓϩηεͷΈ
    w 8FC"QQ/HJOYqVFOUEͳΒίϯςφ
    w ࠶ར༻Մೳͳίϯςφ͸੾Γग़͢
    w 4JEF$BSύλʔϯͱ͔ݺ͹ΕΔ
    w 8FC"QQ/HJOY
    Ͱίϯςφʹ͠ͳ͍

    View Slide

  39. 1PEΛͲ͏࡞Δ͔
    w ઃఆϑΝΠϧ͸֎͔Βࠩ͠ࠐΊΔΑ͏ʹ͢Δ
    w $POpH.BQͰϑΝΠϧΛ؅ཧͯ͠Ϛ΢ϯτ
    w OHJOYDPOGͱ͔BQQMJDBUJPODPOGͱ͔
    w Πϝʔδ࠶࡞੒Ͱ͸ͳͯ͘$POpHॻ͖׵͑

    View Slide

  40. ઃఆͰ͖Δ͜ͱ

    View Slide

  41. ઃఆͰ͖Δ͜ͱ
    w ZBNMͰઃఆͰ͖Δͷ͸ެࣜEPDTΛ·ͣಡΉ
    w ஌͓͍ͬͯͨํ͕͍͍΍ͭ
    w JNBHF1VMM1PMJDZ JNBHF1VMM4FDSFU
    w WPMVNFͷϚ΢ϯτͷ࢓ํ
    w ϔϧενΣοΫ MJWFOFTTSFBEJOFTTQSPCF

    w NFNPSZDQVͷSFRVFTUMJNJU

    View Slide

  42. MJWFOFTTSFBEJOFTTQSPCF
    w LTಛ༗ͳࢮ׆؂ࢹ
    w ίϚϯυ࣮ߦɺIUUQϦΫΤετͳͲͰνΣοΫ͢Δ
    w MJWFOFTT
    w ੜ͖ͯΔ͔Ͳ͏͔νΣοΫ
    w ͩΊͩͬͨΒ1PE࠶ىಈ
    w SFBEJOFTT
    w αʔϏεՔಇͰ͖Δ͔νΣοΫ
    w 1PE࠶ىಈ͸͞Εͳ͍͕τϥϑΟοΫ΋ఀࢭ

    View Slide

  43. MJWFOFTTSFBEJOFTTQSPCF
    w LTಛ༗ͳࢮ׆؂ࢹ
    w ίϚϯυ࣮ߦɺIUUQϦΫΤετͳͲͰνΣοΫ͢Δ
    w MJWFOFTT
    w ੜ͖ͯΔ͔Ͳ͏͔νΣοΫ
    w ͩΊͩͬͨΒ1PE࠶ىಈ
    w SFBEJOFTT
    w αʔϏεՔಇͰ͖Δ͔νΣοΫ
    w 1PE࠶ىಈ͸͞Εͳ͍͕τϥϑΟοΫ΋ఀࢭ

    View Slide

  44. SFRVFTUTMJNJUT
    w Ϧιʔεͷཁٻͱ੍ݶ
    w ࣮ࡍʹSFRVFTUͨ͠෼Λ͖ͬͪΓ࢖͏Θ͚Ͱ͸ͳ͘ɺ
    σϓϩΠͷ࣌ʹνΣοΫ͞ΕΔ
    w $16ͷMJNJU௒ա͸஗͘ͳΔ
    w NFNPSZͷMJNJU௒ա͸00.ͰLJMM͞ΕΔ
    w 1PEͷઃఆʹΑͬͯ͸ࣗಈͰ࠶ىಈ͞ΕΔ
    w 2P4΋͋Θͤͯ஌͓ͬͯ͘ͱྑ͍
    w #FTU&GGPSU#VSTUBCMF(VBSBOUFFE
    https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

    View Slide

  45. SFRVFTUTMJNJUT
    w $16
    w ίΞ਺ϛϦίΞඵΛࢦఆ͢Δ
    w ίΞN
    w NFNPSZ
    w ϝϏόΠτͰࢦఆ͠Α͏
    w .J#,#
    https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

    View Slide

  46. ϞχλϦϯά

    View Slide

  47. ϞχλϦϯά
    w LVCFDUMUPQ
    w %BUBEPHΛ%BFNPO4FUͰ͍Εͯ؂ࢹ
    w LVCFTUBUFNFUSJDTܦ༝Ͱৄࡉ৘ใʹΞΫηε

    View Slide

  48. ϞχλϦϯά
    w ϊʔυ )PTU

    w ྫ
    -"ͱ͔σΟεΫ༰ྔͱ͔
    w ίϯςφ
    w ྫ
    1PE಺ͷ%PDLFSίϯςφͷ$16
    w LVCFSOFUFT
    w ྫ
    %FQMPZNFOU഑ԼͰSFBEZͳ1PE਺

    View Slide

  49. πʔϧ

    View Slide

  50. πʔϧ
    w LVCFDUM
    w લड़ͷLVCFSOFUFTͷඪ४$-*πʔϧ
    w LVTUPNJ[F
    w σϓϩΠ͢Δ؀ڥ͝ͱʹZBNMΛੜ੒
    w TUFSO
    w ϩάΛ͍͍ײ͡ʹΈΔ
    w LVCFDUYLVCFOT
    w DPOUFYUOBNFTQBDFΛ੾Γସ͑
    w NJOJLVCFEPDLFSGPSNBD
    w ϩʔΧϧʹLVCFSOFUFTΫϥελߏங

    View Slide

  51. LVTUPNJ[F
    w LVCFSOFUFTTJHTLVTUPNJ[F
    w ؀ڥ͝ͱʹมߋ͍ͨ͠ઃఆ஋Λ؅ཧ
    w ؀ڥ͝ͱʹ༻ҙ͞ΕͨઃఆϑΝΠϧΛϚʔδ
    ͯ͠ڊେͳZBNMΛੜ੒͢Δ

    View Slide

  52. $ # yamlを生成(標準出力)
    $ kustomize build overlays/development/
    $ # yaml生成 + kubectl apply
    $ kustomize build overlays/production/ \
    | kubectl apply -f -

    View Slide

  53. TUFSO
    w XFSDLFSTUFSO
    w LVCFDUMMPHTͱҧͬͯෳ਺1PEͷϩάΛ·ͱΊ
    ͯྲྀ͢͜ͱ͕ग़དྷΔ
    $ stern
    $ stern --tail 1000 my-api

    View Slide

  54. ͍͞͝ʹ

    View Slide

  55. ͍͞͝ʹ
    ৮ͬͯΈͳ͍ͱΘ͔Βͳ͍ͷͰɺ৮ͬͯΈͯ͘
    ͍ͩ͞
    MPDBMʹNJOJLVCFEPDLFSGPSNBD(,&ͰLTΫ
    ϥελΛ্ཱͪ͛ͯ%FQMPZNFOU΍4FSWJDFΛಈ
    ͔ͨ͠ΓEBTICPBSEΛݟͨΓ͢Δͷ͕ྑ͍Ͱ͢

    View Slide

  56. 5IBOLZPV

    View Slide