Slide 1

Slide 1 text

@taxin_tt CLOUD RUNϢʔβʔ 
 ͔ΒݟͨK8S

Slide 2

Slide 2 text

WHO AM I? • @taxin_tt • Kubernetes Novice Tokyoͷதͷਓ • ࠷ۙ͸ɺGCP࢖͍ͭͭSRE΍ͬͯ·͢ • SREͬͯԿ…? ͬͯਓ͸ͥͻSRE Next 2022΁

Slide 3

Slide 3 text

• KubernetesͬͯศརͰ͢ΑͶ :) ಥવͰ͕͢

Slide 4

Slide 4 text

• KubernetesͬͯศརͰ͢ΑͶ :) • ଟछଟ༷ͳϫʔΫϩʔυ΁ͷରԠΛՄೳʹ͢Δk8sͷػೳੑ 
 (scheduling, scaling etc.) • એݴతͳઃఆʹΑΔߏ੒ (Πϯϑϥͷঢ়ଶ) ͷ؅ཧ • OSSɺPublic Cloudͷ׆༻ʹΑ࣮ͬͯݱ͢Δج൫ͱͯ͠ͷ֦ுੑ ಥવͰ͕͢

Slide 5

Slide 5 text

• KubernetesͬͯศརͰ͢ΑͶ :) • ଟछଟ༷ͳϫʔΫϩʔυ΁ͷରԠΛՄೳʹ͢Δk8sͷػೳੑ 
 (scheduling, scaling etc.) • એݴతͳઃఆʹΑΔߏ੒ (Πϯϑϥͷঢ়ଶ) ͷ؅ཧ • OSSɺPublic Cloudͷ׆༻ʹΑ࣮ͬͯݱ͢Δج൫ͱͯ͠ͷ֦ுੑ ಥવͰ͕͢ Ϣʔβʔͱͯ͠k8sΛ ར༻͢Δࡍʹײ͡ΔϝϦοτ

Slide 6

Slide 6 text

• KubernetesͬͯศརͰ͢ΑͶ :) • ଟछଟ༷ͳϫʔΫϩʔυ΁ͷରԠΛՄೳʹ͢Δk8sͷػೳੑ 
 (scheduling, scaling etc.) • એݴతͳઃఆʹΑΔߏ੒ (Πϯϑϥͷঢ়ଶ) ͷ؅ཧ • OSSɺPublic Cloudͷ׆༻ʹΑ࣮ͬͯݱ͢Δج൫ͱͯ͠ͷ֦ுੑ • Not k8sϢʔβʔͷࢹ఺͔ΒݟͯΈΔͱݟํ͸Ͳ͏มΘΔͩΖ͏͔? ಥવͰ͕͢ Ϣʔβʔͱͯ͠k8sΛ ར༻͢Δࡍʹײ͡ΔϝϦοτ

Slide 7

Slide 7 text

• KubernetesͬͯศརͰ͢ΑͶ :) • ଟछଟ༷ͳϫʔΫϩʔυ΁ͷରԠΛՄೳʹ͢Δk8sͷػೳੑ 
 (scheduling, scaling etc.) • એݴతͳઃఆʹΑΔߏ੒ (Πϯϑϥͷঢ়ଶ) ͷ؅ཧ • OSSɺPublic Cloudͷ׆༻ʹΑ࣮ͬͯݱ͢Δج൫ͱͯ͠ͷ֦ுੑ • Not k8sϢʔβʔͷࢹ఺͔ΒݟͯΈΔͱݟํ͸Ͳ͏มΘΔͩΖ͏͔? • k8sͷϝϦοτ / σϝϦοτɺࢥ͏͜ͱ ಥવͰ͕͢ Ϣʔβʔͱͯ͠k8sΛ ར༻͢Δࡍʹײ͡ΔϝϦοτ

Slide 8

Slide 8 text

• ࠓ೔͸ ʮCloud runϢʔβʔ͔Βݟͨk8sʯͱ͍͏؍఺Ͱ͓࿩͠͠·͢ • ࠷ۙ͸ɺCloud run͹͔ͬ৮͍ͬͯΔͷͰ͜Μͳ಺༰ʹͳΓ·͢ :bow: • Disclaimer • ຊεϥΠυ͸GCPʹؔ͢Δઆ໌ΛؚΈ·͢ • ※ Cloud run / k8s (GKE etc.) ͷͲͪΒ͔ͷར༻Λਪ঑͢Δ΋ͷͰ͸͋Γ·ͤΜ • ϫʔΫϩʔυͷੑ࣭ɺϢʔεέʔεʹ߹Θͤͯ͝ར༻͍ͩ͘͞ ͱ͍͏Θ͚Ͱ

Slide 9

Slide 9 text

@taxin_tt CLOUD RUNϢʔβʔ 
 ͔ΒݟͨK8S

Slide 10

Slide 10 text

• Cloud runͱ͸? • ϑϧϚωʔδυͷαʔόʔϨεϓϥοτϑΥʔϜ • Ϣʔβʔ͕Buildͨ͠DockerΠϝʔδΛίϯςφͱͯ͠σϓϩΠ͢Δ • scheduling, scalingͳͲͷઃఆ͸ϢʔβʔଆͰߦ͏ඞཁ͕ͳ͍ 
 (※ instance਺ͷmin / maxɺconcurrency͸ઃఆՄೳ) • ίϯςφج൫ͷ؅ཧ΋ෆཁ ABOUT CLOUD RUN

Slide 11

Slide 11 text

• Cloud runͱ͸? • ϑϧϚωʔδυͷαʔόʔϨεϓϥοτϑΥʔϜ • Ϣʔβʔ͕Buildͨ͠DockerΠϝʔδΛίϯςφͱͯ͠σϓϩΠ͢Δ • https://cloud.google.com/run/docs/quickstarts/build-and-deploy • 1. Container imageͷBuild → 2. Cloud run΁ͷDeployͰ׬ྃ (2step!) ABOUT CLOUD RUN

Slide 12

Slide 12 text

ABOUT CLOUD RUN

Slide 13

Slide 13 text

ABOUT CLOUD RUN

Slide 14

Slide 14 text

• [FYI] Cloud run : Knativeޓ׵ͷAPIΛఏڙ͍ͯ͠Δ • ʮKnative : Cloud Run ͷج൫Ͱ͋ΔΦʔϓϯ API ͓ΑͼϥϯλΠϜ؀ڥͰ͢ɻ…ʯ • Knativeʹؔ͢ΔLTɾηογϣϯ͸ noviceͷ#9, #11 Ͱ͝ཡ͍͚ͨͩ·͢ • Thanks to @ch0312 ͞Μɺ@mochizuki875 ͞Μʂ ABOUT CLOUD RUN Reference: https://cloud.google.com/blog/ja/products/serverless/knative-based-cloud-run-services-are-ga

Slide 15

Slide 15 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 1. ֮͑Δ͜ͱ͕ (k8sͱൺֱ͢Δͱ) গͳ͍ CLOUD RUN / K8S

Slide 16

Slide 16 text

• [FYI] Cloud run : Knativeޓ׵ͷAPIΛఏڙ͍ͯ͠Δ • ʮKnative : Cloud Run ͷج൫Ͱ͋ΔΦʔϓϯ API ͓ΑͼϥϯλΠϜ؀ڥͰ͢ɻ…ʯ • knativeʹؔ͢ΔLTɾηογϣϯ͸ noviceͷ#9 #11 Ͱ͝ཡ͍͚ͨͩ·͢ • Thanks to @ch0312 ͞Μɺ@mochizuki875 ͞Μʂ ABOUT CLOUD RUN Reference: https://cloud.google.com/blog/ja/products/serverless/knative-based-cloud-run-services-are-ga গ͠લͷεϥΠυʹ ໭ͬͯ…

Slide 17

Slide 17 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 1. ֮͑Δ͜ͱ͕ (k8sͱൺֱ͢Δͱ) গͳ͍ • Cloud runϢʔβʔ͸KnativeΛཧղ͠ͳͯ͘΋ར༻Ͱ͖Δ • ※ Cloud run Admin API ͷར༻࣌͸service, revisionͳͲͷKnativeͷ֓೦ʹ৮ΕΔ 
 (https://cloud.google.com/run/docs/reference/rest?hl=ja) • ཁ݅࣍ୈͰ͸ɺGCPͰҰ௨Γ׬݁͢Δ 
 (e.g. Cloud run + Cloud SQL + Cloud Storage + MemoryStore) CLOUD RUN / K8S

Slide 18

Slide 18 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 1. ֮͑Δ͜ͱ͕ (k8sͱൺֱ͢Δͱ) গͳ͍ • Cloud runϢʔβʔ͸Knative (k8s) Λཧղ͠ͳͯ͘΋ར༻Ͱ͖Δ • ※ Cloud run Admin API ͷར༻࣌͸service, revisionͳͲͷknativeͷ֓೦ʹ৮ΕΔ 
 (https://cloud.google.com/run/docs/reference/rest?hl=ja) • ཁ݅࣍ୈͰ͸ɺGCPͰҰ௨Γ׬݁͢Δ 
 (e.g. Cloud run + Cloud SQL + Cloud Storage + MemoryStore) CLOUD RUN / K8S ӡ༻໘Ͱͷෛ୲Λ࠷খݶʹͰ͖Δ - Πϯϑϥ͕Ͱ͖Δϝϯόʔ͕গͳ͍ 
 - ਓతϦιʔεͷ഑෼ͷ؍఺ͰΞϓϦέʔγϣϯ 
 ։ൃʹϦιʔεΛ౤ೖ͍ͨ͠ etc.

Slide 19

Slide 19 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 1. ֮͑Δ͜ͱ͕ (k8sͱൺֱ͢Δͱ) গͳ͍ • Cloud runϢʔβʔ͸Knative (k8s) Λཧղ͠ͳͯ͘΋ར༻Ͱ͖Δ • ※ Cloud run Admin API ͷར༻࣌͸service, revisionͳͲͷknativeͷ֓೦ʹ৮ΕΔ 
 (https://cloud.google.com/run/docs/reference/rest?hl=ja) • ཁ݅࣍ୈͰ͸ɺGCPͰҰ௨Γ׬݁͢Δ 
 (e.g. Cloud run + Cloud SQL + Cloud Storage + MemoryStore) CLOUD RUN / K8S ͢ͰʹGCPΛར༻͍ͯ͠Δ৔߹ɺ Πϯϑϥؔ࿈ͷֶशίετΛ࠷খݶʹͰ͖Δ

Slide 20

Slide 20 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 2. Cloud run͸ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ CLOUD RUN / K8S

Slide 21

Slide 21 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 2. Cloud run͸ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ • 1. scheduling, scalingͳͲͷઃఆ͸ϢʔβʔଆͰߦ͏ඞཁ͕ͳ͍ 
 = MetricsΛར༻ͨ͠Auto scalingͷઃఆ (e.g. HPA) 
 schedulingͷࢦఆ (e.g. Node / Pod Af f inity) ͸ࡉ͔͘ઃఆͰ͖ͳ͍ • ʮ…طଘͷΠϯελϯεͷCPU ࢖༻཰ʢεέδϡʔϧ͞ΕͨΠϯελϯεΛ CPU ࢖༻཰ 60% ʹҡ࣋͢ΔͨΊͷλʔήςΟϯάʣ... ʯ CLOUD RUN / K8S Reference: https://cloud.google.com/run/docs/about-instance-autoscaling?hl=ja

Slide 22

Slide 22 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • 2. Cloud run͸ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ • 2. Πϯϑϥج൫ʹؔ͢Δ؅ཧ΋ෆཁ 
 = k8sΛલఏͱͨ͠ػೳ֦ுΛߦ͏OSSΛ༗͢Δk8sͱൺֱͯ͠πʔϧ౳ͷબ୒ࢶ͕ݶఆత 
 (e.g. Argo CD, Istio ͳͲ͸Kubernetes NativeͰ͋Δͱ໌ه͞Ε͍ͯΔ) • ※ ʮબ୒ࢶ͕ແ͍ʯΘ͚Ͱ͸ແ͍ CLOUD RUN / K8S

Slide 23

Slide 23 text

• k8s → Cloud runͱ৮ͬͯײͨ͜͡ͱ • ϝϦοτɾσϝϦοτΛ౿·͑ͯײͨ͜͡ͱ… CLOUD RUN / K8S

Slide 24

Slide 24 text

• Disclaimer • ຊεϥΠυ͸GCPʹؔ͢Δઆ໌ΛؚΈ·͢ • Cloud run / k8s (GKE) ͷͲͪΒ͔ͷར༻Λਪ঑͢Δ΋ͷͰ͸͋Γ·ͤΜ • ϫʔΫϩʔυͷੑ࣭ɺϢʔεέʔεʹ߹Θͤͯ͝ར༻͍ͩ͘͞ 
 CLOUD RUN / K8S গ͠લͷεϥΠυʹ ໭ͬͯ…

Slide 25

Slide 25 text

• Disclaimer • ຊεϥΠυ͸GCPʹؔ͢Δઆ໌ΛؚΈ·͢ • Cloud run / k8s (GKE) ͷͲͪΒ͔ͷར༻Λਪ঑͢Δ΋ͷͰ͸͋Γ·ͤΜ • ϫʔΫϩʔυͷੑ࣭ɺϢʔεέʔεʹ߹Θͤͯ͝ར༻͍ͩ͘͞ 
 → ಈ͔͍ͨ͠ϫʔΫϩʔυʹʮࡉ͔͘ઃఆɾ੍ޚ͍ͨ͠ (ٕज़) ཁ݅ʯ 
 ͕͋Δ͔Ͳ͏͔͕ॏཁʹͳΔ CLOUD RUN / K8S

Slide 26

Slide 26 text

• ϝϦοτɾσϝϦοτΛ౿·͑ͯײͨ͜͡ͱ… • 2. ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ • scheduling, scalingͳͲͷઃఆ͸ϢʔβʔଆͰߦ͏ඞཁ͕ͳ͍ 
 = HPAͷΑ͏ͳࡉ͔͍εέʔϦϯάͷઃఆ͸ఆٛͰ͖ͳ͍ CLOUD RUN / K8S

Slide 27

Slide 27 text

• ϝϦοτɾσϝϦοτΛ౿·͑ͯײͨ͜͡ͱ… • 2. ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ • scheduling, scalingͳͲͷઃఆ͸ϢʔβʔଆͰߦ͏ඞཁ͕ͳ͍ 
 = HPAͷΑ͏ͳࡉ͔͍εέʔϦϯάͷઃఆ͸ఆٛͰ͖ͳ͍ • ࡉ͔͘ઃఆ͠ͳͯ͘΋͍͍ϫʔΫϩʔυ͔Ͳ͏͔ 
 (e.g. ϦΫΤετͷεύΠΫ͕ൃੜ͠ͳ͍ = εέʔϦϯάͷৄࡉͳ੍ޚ͸ෆཁ?) CLOUD RUN / K8S

Slide 28

Slide 28 text

• ϝϦοτɾσϝϦοτΛ౿·͑ͯײͨ͜͡ͱ… • 2. ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ • scheduling, scalingͳͲͷઃఆ͸ϢʔβʔଆͰߦ͏ඞཁ͕ͳ͍ 
 = HPAͷΑ͏ͳࡉ͔͍εέʔϦϯάͷઃఆ͸ఆٛͰ͖ͳ͍ • ࡉ͔͘ઃఆ͠ͳͯ͘΋͍͍ϫʔΫϩʔυ͔Ͳ͏͔ 
 (e.g. ϦΫΤετͷεύΠΫ͕ൃੜ͠ͳ͍ = εέʔϦϯάͷৄࡉͳ੍ޚ͸ෆཁ?) • → ٕज़తͳॊೈੑ(֦ுੑ)ͱ࣮૷ɾӡ༻ίετͷτϨʔυΦϑͷੈքʹͳͬͯ͘Δ CLOUD RUN / K8S

Slide 29

Slide 29 text

• ϝϦοτɾσϝϦοτΛ౿·͑ͯײͨ͜͡ͱ… • 2. ʮ͔Ώ͍ͱ͜Ζʯʹख͕ಧ͔ͳ͍͜ͱ͕͋Δ • scheduling, scalingͳͲͷઃఆ͸ϢʔβʔଆͰߦ͏ඞཁ͕ͳ͍ 
 = HPAͷΑ͏ͳࡉ͔͍εέʔϦϯάͷઃఆ͸ఆٛͰ͖ͳ͍ • ࡉ͔͘ઃఆ͠ͳͯ͘΋͍͍ϫʔΫϩʔυ͔Ͳ͏͔ 
 (e.g. ϦΫΤετͷεύΠΫ͕ൃੜ͠ͳ͍ = εέʔϦϯάͷৄࡉͳ੍ޚ͸ෆཁ?) • → ٕज़తͳॊೈੑ(֦ுੑ)ͱ࣮૷ɾӡ༻ίετͷτϨʔυΦϑͷੈքʹͳͬͯ͘Δ CLOUD RUN / K8S GKE? / GKE Autopilot? / Cloud run?

Slide 30

Slide 30 text

• Kubernetesͷྑ͍ͱ͜Ζ • ଟछଟ༷ͳϫʔΫϩʔυ΁ͷରԠΛՄೳʹ͢Δk8sͷػೳੑ 
 (scheduling, scaling etc.) • એݴతͳઃఆʹΑΔߏ੒ (Πϯϑϥͷঢ়ଶ) ͷ؅ཧ • OSSɺPublic Cloudͷ׆༻ʹΑ࣮ͬͯݱ͢Δج൫ͱͯ͠ͷ֦ுੑ ·ͱΊ

Slide 31

Slide 31 text

• Kubernetesͷྑ͍ͱ͜Ζ • ଟछଟ༷ͳϫʔΫϩʔυ΁ͷରԠΛՄೳʹ͢Δk8sͷػೳੑ 
 (scheduling, scaling etc.) • એݴతͳઃఆʹΑΔߏ੒ (Πϯϑϥͷঢ়ଶ) ͷ؅ཧ • OSSɺPublic Cloudͷ׆༻ʹΑ࣮ͬͯݱ͢Δج൫ͱͯ͠ͷ֦ுੑ ·ͱΊ ɾ্هͷϝϦοτ (ଠࣈ෦෼) ͷཪଆʹ͋Δɺ 
 ʮॊೈੑ(֦ுੑ)ͱ࣮૷ɾӡ༻ίετͷτϨʔυΦϑʯ͸ΑΓڧ͘ҙࣝ͢ΔΑ͏ʹͳͬͨ ɾӡ༻ίετɺֶशίετͷ؍఺͔ΒCloud runࣗମ͸༗༻ͱࢥ͏ͷͰʮk8sΛબ୒͠ͳ͔ͬͨʯ 
 ࣄྫ͕૿͑Δͱk8sϢʔβʔʹͱͬͯ΋ࢀߟʹͳΔ (ͱࢥ͍ͬͯΔ)

Slide 32

Slide 32 text

THANK YOU FOR LISTENING !