Slide 1

Slide 1 text

10෼͘Β͍Ͱ ࡶʹཧղ͢Δ KubernetesͱEKS @masachaco

Slide 2

Slide 2 text

ࣗݾ঺հ HN:·ͪ͞Ό͜ • ۂͱ͔࡞ΔϓϩάϥϚ ܥ SIer • ϓϩάϥϛϯάݴޠ: Java / node.js • αʔόαΠυΞϓϦɺεϚʔτεϐʔΧʔΞϓϦͷ։ൃ • ٶͪΌΜͷসإۦಈ։ൃ • χίχίಈըͰϛΫ͞ΜୡͷۂΛެ։தʂ • Twitter • @masachaco • GitHub • https://github.com/masachaco • SoundCloud • https://soundcloud.com/masa_charcoal • niconico • https://www.nicovideo.jp/mylist/11613193

Slide 3

Slide 3 text

એ఻

Slide 4

Slide 4 text

΋͘͡ • ͸͡Ίʹ • KubernetesͷୈҰҹ৅ͱɺಈػ • ίϯςφͬͯ ?& ίϯςφͷࠔΓ͝ͱ • Kubernetesͬͯ • ࢖ͬͯΈΔʹ͸ • ڝ߹ͱͷൺֱ • ॴײ

Slide 5

Slide 5 text

༧๷ઢ ͸͡Ίʹ • ͜ͷεϥΠυͷ࡞ऀ͸ɺKubernetesॳ৺ऀͰ͢ • ࡞ऀ͸Kubernetes࣮ӡ༻ͨ͜͠ͱ͕͋Γ·ͤΜ • AMIͳͲɺAWSͷલఏ஌͕ࣝ͋Δ্ͰͷεϥΠυͰ͢ • ؒҧ͍ɺ͝ࢦఠͳͲ͋Δͱࢥ͏ͷͰɺ • Twitterɺ@masachaco·Ͱ͝࿈བྷ͍ͩ͘͞

Slide 6

Slide 6 text

࠷͍ۙΖ͍Ζͳͱ͜ΖͰฉ͘ Kubernetes

Slide 7

Slide 7 text

ࢲͷ๊͍͍ͯͨKubernetes • ࠷ۙ΍ͨΒษڧձ΍ɺΧϯϑΝϨϯε΍ɺه ࣄͰݟΔ • Ͳ͏΍ΒɺίϯςφपΓΛ͍͍ײ͡ʹ؅ཧ͠ ͯ͘ΕΔΒ͍͠ • ҰମԿΛͯ͘͠ΕΔͷʁͳΜͰඞཁͳͷʁ

Slide 8

Slide 8 text

ಈػ • ࿩୊ͷKubernetesΛ৮Γ͚ͩͰ΋஌Γ͍ͨ • ࠓޙओྲྀʹͳΓͦ͏͚ͩͲΘ͔Βͳͯ͘ා͍ • ։ൃ͢Δࡍʹɺӡ༻Λҙ͍ࣝͨ͠ • ͪΐͬͱ࢖ͬͯΈͯυϠإ͕͍ͨ͠ (࠷ॏཁ)

Slide 9

Slide 9 text

ৄ͍͠࢖͍ํ͸ͱ΋͔͘ ֓ཁΛ஌Γ͍ͨ

Slide 10

Slide 10 text

ͳͷͰ

Slide 11

Slide 11 text

ࢀߟॻ(൒෼͘Β͍)ಡΜͰ ͓͓Αͦͷશମਤ௫ΜͰ

Slide 12

Slide 12 text

νϡʔτϦΞϧࢼͯ͠Έͨ

Slide 13

Slide 13 text

͜ΕΒΛ΍ͬͯΈ๊͍ͯͨ KubernetesͷΠϝʔδ

Slide 14

Slide 14 text

Ͳ͏΍Β Kubernetes ͸

Slide 15

Slide 15 text

ίϯςφ पΓΛ ͍͍ײ͡ʹ

Slide 16

Slide 16 text

؅ཧ ͯ͘͠ΕΔΒ͍͠

Slide 17

Slide 17 text

ͦ΋ͦ΋ίϯςφͬͯʁ • ίϯςφܕԾ૝Խͱݺ͹ΕΔԾ૝Խٕज़

Slide 18

Slide 18 text

Ծ૝Խٕज़ʹର͢Δҹ৅

Slide 19

Slide 19 text

Ծ૝Խٕज़ʹର͢Δҹ৅ • VM Wareͱ͔Virtual BoxͷΑ͏ʹ • OSͷ্ͰɺOSΛಈ͔͢ • OSΛOSͷ্Ͱಈ͔͢ͷͰॏ͍ • ৽نʹOSΠϯετʔϧΑΓ͸ָ

Slide 20

Slide 20 text

ͦΕ͸ • Virtual Box΍VM WareͳͲͷϗετܕԾ૝Խ • ओʹKubernetes͕ѻ͏΍ͭͰ͸ͳ͍(͸ͣ) • OSͷ্ʹɺผͷOSΛಈ͔͢ • Windowsͷ্ʹCent OSΛಈ͔ͨ͠Γ • Windowsͷ্ʹWindowsΛಈ͔ͨ͠ΓͰ͖Δ

Slide 21

Slide 21 text

ͦΕͱ͸ผʹ • ίϯςφܕԾ૝Խ • ίϯςφͱ͍͏OSͬΆ͍؀ڥΛOS্ʹߏஙͯ͠ΞϓϦΛಈ͔͢ • Χʔωϧ౳ɺίϯςφΛಈ͢Ϛγϯͷ෺Λɺڞ༗ͯ͠࢖ͬͨΓ͢Δ • OSͬΆ͍؀ڥͰɺϦιʔεڞ༗ͨ͠Γ͢ΔͷͰൺֱతܰ͘ಈ͘ • ڞ༗͢ΔϦιʔεͱ͔ϗετ͕४උࡁΈͳͷͰɺىಈ΋ૣ͍ • Kubernetes͸ͬͪ͜ͷλΠϓͷԾ૝ԽΛѻ͏

Slide 22

Slide 22 text

ίϯςφܕԾ૝ԽͷΠϝʔδ RedHatLinuxͱ͔OS DockerͳͲͷϛυϧ΢ΣΞ ίϯςφ (OSͬΆ͍΋ͷ) ίϯςφ (OSͬΆ͍΋ͷ) SpringBootͳͲ ΞϓϦέʔγϣϯ MySQLͳͲ ΞϓϦέʔγϣϯ

Slide 23

Slide 23 text

OSͬΆ͍ίϯςφ͸ ɹผʑͷ OS ͷΑ͏ʹ ෼அ͞Εͯಈ͍͍ͯΔͷͰ ޓ͍ʹӨڹΛड͚ʹ͍͘

Slide 24

Slide 24 text

ίϯςφ͸ ϗετOSͷϦιʔεΛ ࢖͑ΔͷͰ ൺֱత͍ܰ

Slide 25

Slide 25 text

ίϯςφͷࠔΓ͝ͱ

Slide 26

Slide 26 text

࣮ࡍʹӡ༻͢Δͱ͖ Ͳ͏͢Δʁ

Slide 27

Slide 27 text

ྫ͑͹

Slide 28

Slide 28 text

όοΫΤϯυαʔό͸3ίϯςφߏ੒ DBαʔό͸̍ίϯςφߏ੒Ͱಈ͔͍ͨ͠ ※Ͱ͖Δ͚ͩ ෳ਺ͷ஍Ҭʹۉ౳ʹ෼ࢄ͍ͤͨ͞

Slide 29

Slide 29 text

AWSͱ͔ʹϚϧνAZͰίϯςφΛཱͯͯΈΔ Region AWS AZ-1 AZ-2

Slide 30

Slide 30 text

AWSͱ͔ʹϚϧνAZͰίϯςφΛཱͯͯΈΔ Region AWS AZ-1 AZ-2 γεςϜશମͰ όοΫΤϯυαʔό͕Կίϯςφಈ͍ͯͯ %#͕Կίϯςφಈ͍͍ͯΔ͔ ୭͕೺Ѳ͢ΔΜͩΖ͏ʁ γεςϜશମͰ όοΫΤϯυαʔό͕ɺίϯςφಈ͍ͯͯ %#͕ɺίϯςφಈ͘Α͏ʹ͍ͨ͠ɻ ͬͯͦΕ୭͕؅ཧ͢ΔΜʁ

Slide 31

Slide 31 text

ͬͯͦΕɺ୭͕؅ཧ͢ΔΜʂʁ • Ϋϥ΢υશମͰಈ͍͍ͯΔίϯςφͷ਺ͱ͔୭͕೺Ѳͯ͠Δͷ • σϓϩΠ͢Δ࣌ʹɺطଘͷίϯςφམͱͨ͠Γɾ৽نʹ্ཱͪ ͛ͨΓ͢ΔॱংɾλΠϛϯά • ίϯςφपΓͷϦιʔε • ετϨʔδͱ͔ɺϩʔυόϥϯαͱ͔ɺωοτϫʔΫͱ͔ • ίϯςφ΍ɺϦιʔεͷґଘؔ܎ • ࢭ·ͬͯΔίϯςφͷऴྃͱ࠶ىಈͱ͔

Slide 32

Slide 32 text

ਓͷखͰ͸ ΍Γͨ͘ͳ͍ɻɻɻɻ

Slide 33

Slide 33 text

ෳ਺ͷϦʔδϣϯɾαʔόΛލ͍Ͱ΋ ίϯςφपΓΛ Ұݩతʹ؅ཧ͍ͨ͠

Slide 34

Slide 34 text

ͦ͜Ͱ

Slide 35

Slide 35 text

Kubernetes

Slide 36

Slide 36 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters Kubernetes Node Kubernetes Node ίϯςφपΓ Ұݩతʹ ؅ཧ͢Δ΍ͭ Pod Pod ଞͷPod ଞͷPod

Slide 37

Slide 37 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters ̍αʔό୯Ґͷ ࣮ߦ؀ڥ %PDLFSͱ͔ ಈ͍ͯΔ Kubernetes Node Kubernetes Node Pod Pod ଞͷPod ଞͷPod ̍αʔό୯Ґͷ ࣮ߦ؀ڥ %PDLFSͱ͔ ಈ͍ͯΔ

Slide 38

Slide 38 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters Kubernetes Node Kubernetes Node Pod Pod ίϯςφͱ͔ͷ ू·Γ ίϯςφͱ͔ͷ ू·Γ ଞͷPod ଞͷPod

Slide 39

Slide 39 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters Kubernetes Node Kubernetes Node Pod Pod ଞͷPod ଞͷPod /PEF1PEͷঢ়گʹ Αͬͯ ίϯςφཱͯͨΓ ͢Δ ίϯςφ ࢭ·ͬͯͨΒ ࠶࡞੒ͨ͠Γ͢Δ

Slide 40

Slide 40 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters Kubernetes Node Kubernetes Node Pod Pod ଞͷPod ଞͷPod ͜Εશମ͕,VCFSOFUFT

Slide 41

Slide 41 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters Kubernetes Node Kubernetes Node yaml ZBNMܗࣜͷࢦࣔॻΛݩʹ ,VCFSOFUFT.BTUFSʹࢦࣔ /PEFΛ؅ཧͤ͞Δ

Slide 42

Slide 42 text

Kubernetesͷͬ͘͟Γߏ੒ Kubernetes Masters Kubernetes Node Kubernetes Node yaml LVCFDUMͱ͍͏ίϚϯυΛ࢖ͬͯ ZBNMʹॻ͔ΕͨࢦࣔΛ ,VCFSOFUFT.BTUFSʹ ൓өͤ͞Δ

Slide 43

Slide 43 text

ྫ $kubectl apply -f example-backend.yaml ※ example-backend.yamlʹ͸ɺͲΜͳײ͡ʹ ͲͷΑ͏ͳίϯςφΛཱͯΔ͔ॻ͍ͯ͋Δ ྫ͑͹ɺ͜ͷλΠϓͷίϯςφ͸͍ͭ͘࡞ͬͯɺͱ͔ɻ

Slide 44

Slide 44 text

࣮ࡍ͸CI͕kubectlΛ࣮ߦͨ͠Γ͢Δ Kubernetes Masters Kubernetes Node Kubernetes Node yaml ͜Μͳײ͡ʹ͓ئ͍ ͸͍Αʔ

Slide 45

Slide 45 text

ίϯςφपΓʹ͍ͭͯ • ίϯςφ্Ͱಈ͘ΞϓϦҎ֎΋؅ཧ͢Δ • ίϯςφʹׂΓ౰ͯΔετϨʔδͱ͔ • ίϯςφͷෛՙ෼ࢄͱ͔ (ϩʔυόϥϯαͱ͔࡞ΕΔ) • ίϯςφͷωοτϫʔΫͱ͔ • ίϯςφ΁ͷΞΫηεݖݶͱ͔

Slide 46

Slide 46 text

Kubernatesͷ֓ཁ͸ Ұ୴ऴΘΓ

Slide 47

Slide 47 text

ؾʹͳΔͱ͜Ζ

Slide 48

Slide 48 text

Kubernetesͷӡ༻͕ େม͡Όͳ͍ʁ

Slide 49

Slide 49 text

Ϧʔδϣϯލ͍Ͱ ίϯςφ؅ཧͨ͠Γ ϩʔυόϥϯαཱͯͨΓ ετϨʔδׂΓ౰ͯͨΓ

Slide 50

Slide 50 text

େมὑ

Slide 51

Slide 51 text

ͳͷͰ

Slide 52

Slide 52 text

Amazon EKS Amazon Ϛωʔδυ(Amazon͕Ұ෦؅ཧͯ͘͠ΕΔ)ͷɺ KubernetesαʔϏεɻ

Slide 53

Slide 53 text

Amazon EKS Kubernetes Masters Kubernetes Node Kubernetes Node ͍͍ͩͨ͜ΕΛ Ϛωʔδυ "NB[PO؅ཧ Ͱ ӡ༻ͯ͘͠ΕΔ

Slide 54

Slide 54 text

Amazon EKS Amazon EKS Kubernetes Node Kubernetes Node ͬͪ͜͸ࣗ෼Ͱӡ༻͢Δඞཁ͕͋Δ ͬͪ͜͸ࣗ෼Ͱӡ༻͢Δඞཁ͕͋Δ

Slide 55

Slide 55 text

ҊͣΔΑΓੜΉ͕қ͠ νϡʔτϦΞϧΛ৮ͬͯΈΔʂ ■ Amazon EKSͷ࢖༻։࢝ https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/getting-started.html

Slide 56

Slide 56 text

ϝϦοτ • Kubernetes MastersͷεέʔϧͳͲɺӡ༻ΛҰ෦AWSʹ೚ͤΒΕΔ • ϩʔυόϥϯα΍ετϨʔδɺωοτϫʔΫͳͲAWS Ϛωʔδυͷ෺ Λ࢖༻Ͱ͖Δ • ͭ·ΓɺͦΕΒͷӡ༻ΛҰ෦AWSʹ೚ͤΒΕΔ • Kubernetesͷݖݶ؅ཧͳͲΛIAMϕʔεͰ؅ཧͰ͖Δ • Ϧιʔεͷݖݶ؅ཧ΍࢖͍৺஍Λ౷ҰͰ͖Δ • ͳͲͳͲ

Slide 57

Slide 57 text

EKSͱ ࣅͯ ඇͳΔ΋ͷ

Slide 58

Slide 58 text

Ұ෦ڝ߹ͱͷൺֱ • Amazon ECS (Elastic Container Service) • EKSಉ༷ʹAWS ϚωʔδυͰίϯςφΛ؅ཧͰ͖ΔαʔϏε • KubernetesΑΓൺֱతγϯϓϧʹίϯςφΛӡ༻Ͱ͖Δ • ίϯςφΛಈ͔͢αʔόΛɺ؅ཧ͠ͳ͍͍ͯ͘ڧྗͳFargete͕࢖͑Δ • ෳ਺ͷίϯςφΛѻΘͳ͍͍ͯ͘γϯϓϧߏ੒ͳΒɺECSָ͕ͦ͏ • ϩʔυόϥϯαͳͲɺωοτϫʔΫपΓ΍ετϨʔδ͸ผαʔϏεͱ͠ ͯ؅ཧ͢Δඞཁ͕͋Δ Amazon ECS

Slide 59

Slide 59 text

·ͱΊ • Kubernetes͸ෳ਺ίϯςφΛ؅ཧ͢Δඞཁ͕͋Δ࣌ʹɺཔΕΔ • ίϯςφपΓͷωοτϫʔΫ΍ετϨʔδ΋Ұݩతʹ؅ཧͰ͖ Δɻ • ͳͷͰɺଟ਺ͷෳ਺ίϯςφΛѻ͏ɺϚΠΫϩαʔϏεӡ༻͢ Δ৔߹ͱ͔ʹศརͦ͏ • AWSͰίϯςφͷछྨ͕ͦΜͳʹଟ͘ͳ͚Ε͹ɺ΋͏ͪΐͬͱ ؆ૉͳECSͷํ͕γϯϓϧͰྑͦ͞͏

Slide 60

Slide 60 text

͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 61

Slide 61 text

νϡʔτϦΞϧΛߦ͏্Ͱͷ஫ҙ • ݱঢ়౦ژϦʔδϣϯͰ΋ɺEKSͷνϡʔτϦΞϧ͸Ͱ͖Δ • aws-cliͱɺEKSߏஙʹඞཁͳcredential(ೝূ৘ใ)͕ઃఆࡁΈͰ͋ Δඞཁ͕͋Δ • ϊʔυΛߏங͢ΔͨΊͷɺEKS༻AMI (EKS࠷దԽAMI) ͸ • ౦ژϦʔδϣϯʹͳ͍ɻϦʔδϣϯؒίϐʔ͢Δඞཁ͕͋Δɻ • ৄ͘͠͸ʮAMI ϦʔδϣϯؒίϐʔʯͰݕࡧʂ ※ CloudFormationͰɺVPSͷߏஙͳͲओ୊͡Όͳ͍ͱ͜Ζ͸ָʹεΩοϓͰ͖ΔͷΊͬͪΌؾ͍͍࣋ͪ

Slide 62

Slide 62 text

νϡʔτϦΞϧΛ΍Δલʹ • ʮKubernetes ׬શΨΠυʯΛಡΜͰ͍͍ͩͨͷ શ๴Λ௫ΜͰ͍ΔͱɺΘ͔Γ΍͔ͬͨ͢
 
 (͋ʔɺͦʔΏʔ͜ͱͶɺ׬શʹཧղͨ͠ɻˡΘ͔ͬͯͳ͍ )