Slide 1

Slide 1 text

k8sͷAvailabilityͱScalabilityΛ୲อ͢ΔͨΊͷେࣄͳ؍఺ @taisho6339

Slide 2

Slide 2 text

ࣗݾ঺հ ࡔຊେক (Hiroki Sakamoto) Twitter: taisho6339 Github: taisho6339 ΩϟϦΞ Ϡϑʔ → ϦΫϧʔτςΫϊϩδʔζ → ϑϦʔϥϯε ݱࡏͷ࢓ࣄ k8sʹΑΔϚΠΫϩαʔϏεͷͨΊͷج൫ͮ͘Γͱӡ༻ ࠓޙͷํ਑ ΑΓࡋྔΛ΋ͬͯಇͨ͘Ίɺਖ਼ࣾһݕ౼தɻ

Slide 3

Slide 3 text

ຊ೔ͷςʔϚ k8sΛ҆શʹӡ༻͢Δʹ͋ͨͬͯ୲อͨ͠؍఺Λ2఺ʹߜͬͯ੔ཧʂ Scalability Availability

Slide 4

Slide 4 text

ࢿྉͷ໨త ະདྷͷPJͰৼΓฦΔͨΊͷόΠϒϧΛ໨ࢦ͢

Slide 5

Slide 5 text

5ͭͷେࣄͳ؍఺ 1. ϨΠςϯγΛ୲อ͢Δ 2. εϧʔϓοτΛ୲อ͢Δ 3. εύΠΫʹඋ͑Δ 4. ϊʔυͷμ΢ϯʹඋ͑Δ 5. ϚϧνΫϥελʹΑΔϝϯςφϯεઓུ

Slide 6

Slide 6 text

1. LatencyΛ୲อ͠Α͏ Throughput Latency

Slide 7

Slide 7 text

ϨΠςϯγͷ୲อ Pod୯ମͰ૝ఆϨΠςϯγ಺ͰϨεϙϯεΛฦͤΔ͔ΛνΣοΫʂ ͜͜ͷ୲อ͕͓Ζ͔ͦͩͱਫฏεέʔϧͤͯ͞΋ޮՌ͕ബ͍ Pod of Service A locust cluster How fast?

Slide 8

Slide 8 text

ϨΠςϯγͷ୲อ ໰୊ ϨΠςϯγ͕૝ఆΑΓߴ͍ ରࡦ 1. PodΛεέʔϧΞοϓ 2. ࠷దͳNodeʹ഑ஔ͢Δ 3. ΞϓϦέʔγϣϯΛνϡʔχϯά

Slide 9

Slide 9 text

ϨΠςϯγͷ୲อ ~PodͷεέʔϧΞοϓ~ containers: ... resources: limits: cpu: 1.0 memory: 512Mi requests: cpu: 0.2 memory: 512Mi ղܾࡦ1. PodͷεέʔϧΞοϓ ● CPUɺϝϞϦͳͲͷϦιʔεΛࢦఆՄೳ ● PodͷఆٛʹrequestͱlimitͰઃఆ

Slide 10

Slide 10 text

ϨΠςϯγͷ୲อ ~PodͷεέʔϧΞοϓ~ requestʹΑΔࢦఆ ● PodʹׂΓ౰ͯΔϝϞϦͱCPUΛࢦఆ ● Podʹrequest͞ΕͨϦιʔεྔΛݩʹ഑ஔ͞ΕΔϊʔυΛܾఆ

Slide 11

Slide 11 text

ϨΠςϯγͷ୲อ ~PodͷεέʔϧΞοϓ~ limitʹΑΔࢦఆ ● Pod͕࣮ࡍʹ࢖༻Ͱ͖ΔݶքͷϦιʔεྔ ○ requestͷׂ౰ϦιʔεΛ௒͑Δ͜ͱ͕Ͱ͖Δ ○ ࢦఆ͠ͳ͍ͱrequestͱಉ͡ʹͳΔ ○ ීஈ͸গͳ͍͍͕ͯ͘ɺҰ࣌తʹόʔετ͢ΔՄೳੑͷ͋ΔϫʔΫϩʔυʹ༗ޮ ● limitΛӽ͑Α͏ͱ͢ΔͱεϩοτϦϯά͞Εɺ࢖༻཰Λ཈͑ΒΕΔ

Slide 12

Slide 12 text

ϨΠςϯγͷ୲อ ~PodͷεέʔϧΞοϓ~ requestͱlimitͷ஫ҙ఺ ● limitͱrequest ͷ͕ࠩେ͖͍৔߹ ○ limit·Ͱ࢖༻཰্͕͕ͬͨͱ͖ʹϊʔυϦιʔε͕ރׇ͢ΔՄೳੑ ● requestࢦఆ͕ͳ͍৔߹ ○ Scheduler͕Ϧιʔε࢖༻ྔΛ൑ఆͰ͖ͳ͍ͷͰಛఆϊʔυʹूத͢ΔՄೳੑ

Slide 13

Slide 13 text

ϨΠςϯγͷ୲อ ~࠷దͳϊʔυ΁ͷ഑ஔ~ ղܾࡦ2. ࠷దͳϊʔυ΁ͷ഑ஔ ● GPUɺSSDͳͲͷϦιʔελΠϓΛબ୒ͯ͠഑ஔ HDD SSD Node1 Node2 ߴ଎ʹIOॲཧΛͯ͠ ΄͍͠ͷͰ SSDͷϊʔυ΁

Slide 14

Slide 14 text

ϨΠςϯγͷ୲อ ~࠷దͳϊʔυ΁ͷ഑ஔ~ ϊʔυΛࢦఆ͢Δํ๏ ● nodeSelector ○ ಛఆͷϥϕϧΛ࣋ͭNodeʹ഑ஔ ● NodeAffinity ○ ಛఆͷϥϕϧΛ࣋ͭNodeʹ഑ஔɻͪ͜Βͷ΄͏͕ΑΓॊೈ ● Taint + Toleration ○ Nodeʹ഑ஔ੍ݶΛՃ͑ɺ഑ஔද໌Λ͍ͯ͠ΔPodͷΈ഑ஔ ࢀߟϦϯΫ: Node্΁ͷPodͷεέδϡʔϦϯά

Slide 15

Slide 15 text

ϨΠςϯγͷ୲อ ~ΞϓϦέʔγϣϯΛνϡʔχϯά~ ղܾࡦ3. ΞϓϦέʔγϣϯΛνϡʔχϯά ● APMͳͲΛ׆༻ͯ͠ϘτϧωοΫΛಛఆ͠ɺ࣮૷Λมߋͯ͠ ύϑΥʔϚϯεվળΛߦ͏

Slide 16

Slide 16 text

2. ThroughputΛ୲อ͠Α͏ Throughput Latency

Slide 17

Slide 17 text

૝ఆΞʔΩςΫνϟ Ingress Gateway Service A Service B Service C LB ϚΠΫϩαʔϏε + API Gatewayͳύλʔϯ

Slide 18

Slide 18 text

εϧʔϓοτͷ୲อ جຊํ਑ ● LBɺAPI GatewayɺServiceͷॱʹ୲อ͍ͯ͘͠ ● ϘτϧωοΫΛݟ͑΍͘͢͢ΔͨΊʹHPA͸ແޮʹ͠ɺखಈͰεέʔϧ

Slide 19

Slide 19 text

εϧʔϓοτͷ୲อ 6000RPSΛ ୲อ͍ͨ͠ʂ جຊํ਑ Ingress Gateway Service A Service B Service C LB ϚΠΫϩαʔϏε + API Gatewayͳύλʔϯ

Slide 20

Slide 20 text

εϧʔϓοτͷ୲อ Ingress Gateway Service A Service B Service C LB ϚΠΫϩαʔϏε + API Gatewayͳύλʔϯ LB͸6000RPS ग़Δʁ Nginx (੩తίϯςϯπΛฦ٫) جຊํ਑

Slide 21

Slide 21 text

εϧʔϓοτͷ୲อ Ingress Gateway Service A Service B Service C LB ϚΠΫϩαʔϏε + API Gatewayͳύλʔϯ Ingress Gateway ͸6000RPSग़Δʁ جຊํ਑

Slide 22

Slide 22 text

εϧʔϓοτͷ୲อ جຊํ਑ Ingress Gateway Service A Service B Service C LB ϚΠΫϩαʔϏε + API Gatewayͳύλʔϯ αʔϏε͸ 6000RPSग़Δʁ

Slide 23

Slide 23 text

εϧʔϓοτͷ୲อ εϧʔϓοτ͕৳ͼͳ͘ͳͬͨΒ.... ● Ͳ͜ʹϘτϧωοΫ͕དྷ͍ͯΔ͔Λ֬ೝ͢Δ ○ CPU࢖༻཰ɺϝϞϦ࢖༻཰ɺIOPSɺϩʔυΞϕϨʔδɺJVMͷώʔϓɺ ίωΫγϣϯϓʔϧɺΩϟογϡώοτ཰... ● ϘτϧωοΫΛҠಈͤ͞Α͏ʂ ○ ਫฏεέʔϧɺਨ௚εέʔϧɺΞϓϦέʔγϣϯνϡʔχϯάɺ࠷దͳ ϊʔυ΁ͷ഑ஔɺϧʔςΟϯάͷ࢓ํͷݟ௚͠Λ࣮ࢪ

Slide 24

Slide 24 text

3. εύΠΫʹඋ͑Α͏ ٸܹͳ Traffic૿ʂ

Slide 25

Slide 25 text

εύΠΫͰ͸ͳ͘؇΍͔ͳτϥϑΟοΫ૿ͳΒɾɾɾ ● Horizontal Pod Autoscaler + Cluster Autoscaler ͰରԠͰ͖Δ εύΠΫʹඋ͑Α͏

Slide 26

Slide 26 text

εύΠΫʹඋ͑Α͏ ~Horizontal Pod Autoscaler~ HPAͷ࢓૊Έ ● 30ඵ͝ͱʹCPU࢖༻཰ɺϦΫΤετ਺ͳͲͷϝ τϦΫεΛνΣοΫ͠ɺPod਺Λܭࢉ͢Δ ● ࠷େͰ3෼ʹ1ճεέʔϧΞ΢τɺ5෼ʹҰճε έʔϧΠϯ ࢀߟ: Horizontal Pod Autoscaler

Slide 27

Slide 27 text

εύΠΫʹඋ͑Α͏ ~Horizontal Pod Autoscaler~ HPAͷܭࢉࣜ desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )] εέʔϧޙPod਺ = ceil [4 * (90 / 60)] = 6 ܭࢉྫ ܭࢉର৅ϝτϦΫε: CPU࢖༻཰ Target CPU࢖༻཰: 60% ݱࡏͷReplica਺ = 4 ݱࡏͷPodͷฏۉCPU࢖༻཰: 90%

Slide 28

Slide 28 text

εύΠΫʹඋ͑Α͏ ~Cluster Autoscaler~ Cluster Autoscalerͷ࢓૊Έ request͞ΕͨϦιʔε͕଍Γͳ͘ͳΓɺ Pod͕഑ஔͰ͖ͳ͘ͳͬͨλΠϛϯάͰϊʔυ͕εέʔϧ͢Δ Node1 Node2 Full! Full! εέδϡʔϧ ͢Δ ͱ͜Ζ͕ͳ͍...

Slide 29

Slide 29 text

εύΠΫʹඋ͑Α͏ ~Cluster Autoscaler~ Cluster Autoscalerͷ࢓૊Έ request͞ΕͨϦιʔε͕଍Γͳ͘ͳΓɺ Pod͕഑ஔͰ͖ͳ͘ͳͬͨλΠϛϯάͰϊʔυ͕εέʔϧ͢Δ Node1 Node2 Node3 ϊʔυ௥Ճ Scheduled!

Slide 30

Slide 30 text

εύΠΫʹඋ͑Α͏ HPA + Cluster Autoscalerͷ໰୊఺ ϊʔυɺPod͕εέʔϧ͢Δ·ͰͷҰఆͷϦʔυλΠϜ͕͔͔ΔͷͰ εύΠΫతͳ૿Ճͩͱؒʹ߹Θͳ͍

Slide 31

Slide 31 text

εύΠΫʹඋ͑Α͏ ରԠࡦ ● ͕࣌ؒ༧ଌͰ͖Δ৔߹ (CMޮՌɺYahoo๒ͳͲ) ○ CronJobͳͲͰಛఆ࣌ؒʹHPAͷminReplica਺Λ্͛Δ ● ͕࣌ؒ༧ଌͰ͖ͳ͍৔߹ ○ ྫ͑͹CPU࢖༻཰ͷ໨ඪ஋ΛΏΔ͓ͯ͘͘͠ ○ ༧ΊminReplica਺ΛੵΜͰ͓͘ ○ CDNͳͲͷΩϟογϡઓུΛݟ௚͢

Slide 32

Slide 32 text

4. ϊʔυͷμ΢ϯʹඋ͑Α͏ Node1 Node2 Node3 Evict!

Slide 33

Slide 33 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ϊʔυ͕μ΢ϯ͢Δཧ༝ ● ϋʔυ΢ΣΞো֐ ● κʔϯɺϦʔδϣϯো֐ ● ΫϥελΞοϓάϨʔυ ● Մ༻ੑͷอূ͞Εͳ͍ϊʔυ (PreemptibleϊʔυɺSpotΠϯελϯε) ● ΦϖϨʔγϣϯϛε

Slide 34

Slide 34 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ϊʔυͷμ΢ϯʹର͢Δରࡦ 1. Podͷ৑௕Խͱκʔϯ෼ࢄ 2. ҆શͳPodͷఀࢭ ○ Graceful Shutdownͷઃఆ ○ Podͷద੾ͳୀආઓུ 3. Ϋϥελͷਖ਼͍͠ઃఆ ○ ϝϯςφϯε΢Οϯυ΢ͱSurge Upgradeͷઃఆ ○ Մ༻ੑඇอূϊʔυͷਖ਼͍͠ӡ༻

Slide 35

Slide 35 text

4.1 ϊʔυͷμ΢ϯʹඋ͑Α͏ Node1 Node2 Node3 Evict! - Podͷ৑௕Խͱκʔϯ෼ࢄ -

Slide 36

Slide 36 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ~Podͷ৑௕Խͱκʔϯ෼ࢄ~ Podͷ෼ࢄઓུ ~഑ஔϊʔυͷ෼ࢄ~ Node1 Node2 serviceA serviceA Pod Anti AffinityΛ׆༻ͯ͠ɺ ಉαʔϏεͷPod͕ ಉ͡ϊʔυʹ ͳΔ΂͘഑ஔ͞Εͳ͍Α͏ʹ͢Δ

Slide 37

Slide 37 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ~Podͷ৑௕Խͱκʔϯ෼ࢄ~ Podͷ෼ࢄઓུ ~κʔϯͷ෼ࢄ~ Node1 asia-northeast1-a serviceA serviceA Node2 asia-northeast1-b Pod Anti AffinityΛ׆༻ͯ͠ɺ ಉαʔϏεͷPod͕ ಉ͡κʔϯʹ ͳΔ΂͘഑ஔ͞Εͳ͍Α͏ʹ͢Δ 1.18Ҏ্͸ Topology Spread Constraints ͕Φεεϝʂ ϦʔδϣφϧΫϥελʂ

Slide 38

Slide 38 text

4.2 ϊʔυͷμ΢ϯʹඋ͑Α͏ Node1 Node2 Node3 Evict! - ҆શͳPodͷఀࢭ -

Slide 39

Slide 39 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ ϊʔυ͕ఀࢭ͢Δͱ͖ Node1 Node2 Node3 Schedule͞Ε͍ͯΔ Pod͕ऴྃ͞ΕΔ Terminate!

Slide 40

Slide 40 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ ϊʔυ͕ఀࢭ͢Δͱ͖ Node1 Node2 Node3 ผͷϊʔυͰ৽ͨʹCreate

Slide 41

Slide 41 text

ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ ҆શͳӡ༻ͷͨΊʹ͸ PodΛ҆શʹఀࢭ͢Δॲཧ͕ඞཁෆՄܽ

Slide 42

Slide 42 text

Graceful Shutdownͷઃఆ ৽ͨͳϦΫΤετ͸ࢭΊͭͭɺॲཧதͷϦΫΤετͷ׬ྃΛ଴͔ͬͯΒϓϩηε Λམͱͨ͢Ίͷઃఆ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ ϦΫΤετͷ ॲཧΛ׬ྃͤ͞Δ

Slide 43

Slide 43 text

Podͷऴྃ࣌ͷڍಈ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ Podͷऴྃ PreStopॲཧ SIGTERM SIGTERM ॲཧ SIGKILL Endpoint͔ΒPodΛ࡟আ

Slide 44

Slide 44 text

Podͷऴྃ࣌ͷڍಈ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ Podͷऴྃ PreStopॲཧ SIGTERM SIGTERM ॲཧ SIGKILL Endpoint͔ΒPodΛ࡟আ ̎ͭͷϥΠϯ͸ಉ࣌ʹॲཧ͕૸Δ

Slide 45

Slide 45 text

Podͷऴྃ࣌ͷڍಈ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ Podͷऴྃ PreStopॲཧ SIGTERM SIGTERM ॲཧ SIGKILL Endpoint͔ΒPodΛ࡟আ Service Endpoint ϧʔςΟϯά͕ࢭ·Δʂ

Slide 46

Slide 46 text

Podͷऴྃ࣌ͷڍಈ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ Podͷऴྃ PreStopॲཧ SIGTERM SIGTERM ॲཧ SIGKILL Endpoint͔ΒPodΛ࡟আ ೚ҙͷίϚϯυ ॲཧ ΞϓϦέʔγϣϯ ଆͰϋϯυϧ

Slide 47

Slide 47 text

Podͷऴྃ࣌ͷڍಈ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ Podͷऴྃ PreStopॲཧ SIGTERM SIGTERM ॲཧ SIGKILL Endpoint͔ΒPodΛ࡟আ ͜͏ͳΔͱࢮΜͩίϯςφʹ ϧʔςΟϯά͞ΕΔ

Slide 48

Slide 48 text

Pod΁ͷϧʔςΟϯάఀࢭΛ଴ͭ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ PreStopॲཧ SIGTERM ॲཧ Endpoint͔ΒPodΛ࡟আ lifecycle: preStop: exec: command: ["/bin/sh", "-c", "sleep 10"]

Slide 49

Slide 49 text

ॲཧதͷϦΫΤετ͸ॲཧ׬ྃΛ଴ͬͯϓϩηεΛऴྃ͢Δ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ PreStopॲཧ SIGTERM ॲཧ Endpoint͔ΒPodΛ࡟আ ΞϓϦέʔγϣϯShutdownॲཧ

Slide 50

Slide 50 text

Pod Disruption Budget ϊʔυ͕PodΛഉग़͢Δͱ͖ʹಉ࣌ʹఀࢭ͢ΔPodͷ਺Λ੍ޚ͢ΔͨΊͷϦιʔε ϊʔυͷμ΢ϯʹඋ͑Α͏ ~҆શͳఀࢭ~ ࢀߟ: Disruption Node ࢦఆͷ਺ͣͭ ഉग़ apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: sample spec: maxUnavailable: "25%" selector: matchLabels: app: sample

Slide 51

Slide 51 text

4.3 ϊʔυͷμ΢ϯʹඋ͑Α͏ Node1 Node2 Node3 Evict! - Ϋϥελͷઃఆ -

Slide 52

Slide 52 text

ΫϥελͷAuto Upgradeʹඋ͑Δ ● ϝϯςφϯε΢Οϯυ΢͸τϥϑΟοΫ͕গͳ͍࣌ؒʹઃఆ͢Δ ● Surge UpgradeΛઃఆͯ͠ɺॱ൪ʹUpgrade͞ΕΔΑ͏ʹ͢Δ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~ΫϥελͷΞοϓάϨʔυ~

Slide 53

Slide 53 text

Preemptibleϊʔυͷӡ༻ ϊʔυͷμ΢ϯʹඋ͑Α͏ ~ඇՄ༻ੑอূͷϊʔυͷӡ༻~ Node1 ௨ৗͷNode Pool Node2 Node1 Preemptible Node Pool Node2 ● ྆ํͷNode Poolʹ ഑ஔ͢Δ ● ॏཁͳPod͸഑ஔ͠ͳ ͍ ● શମͷϊʔυ਺ͷҰ෦ ʹݶఆ͢Δ ServiceA ServiceB ServiceA ServiceB

Slide 54

Slide 54 text

5. Ϋϥελͷϝϯςφϯεઓུ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C

Slide 55

Slide 55 text

ΫϥελϝϯςφϯεʹవΔ໰୊఺ ΫϥελͷϝϯςφϯεʹవΔϦεΫ ● k8sͷόʔδϣϯΞοϓͰյΕΔΞϓϦέʔγϣϯ͸ͳ͍͔ʁ ● Istioͷߋ৽ͳͲͰαʔϏεͷૄ௨͕ࢮ͵Մೳੑ ● Ϧʔδϣϯো֐ͰҰ੪ʹࢮ͵Մೳੑ

Slide 56

Slide 56 text

ΫϥελϝϯςφϯεʹవΔ໰୊఺ Ϋϥελϝϯςφϯε΁ͷରॲ ΫϥελΛ৑௕Խͯ͠ϚϧνΫϥελԽ͢Δ

Slide 57

Slide 57 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C ΫϥελΛ৑௕Խ ୯ҰͷVIPΛఏڙ͢ΔLB

Slide 58

Slide 58 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C Ϋϥελͷߋ৽࣌

Slide 59

Slide 59 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C LB͔Β੾Γ཭ͯ͠ Ϋϥελߋ৽࡞ۀ

Slide 60

Slide 60 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C ࠶ϧʔςΟϯά

Slide 61

Slide 61 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C ໰୊ͳ͚Ε͹ ͪ͜Β΋ߋ৽

Slide 62

Slide 62 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C ࠶ϧʔςΟϯά

Slide 63

Slide 63 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C Ϋϥελͷ ϩʔϦϯάΞοϓσʔτΛ࣮ݱ

Slide 64

Slide 64 text

ϚϧνΫϥελͰՄ༻ੑΛ޲্ Ingress Gateway Service A Service B Service C LB Ingress Gateway Service A Service B Service C Ϧʔδϣϯো֐Ͱ΋ ϑΣΠϧΦʔόʔ

Slide 65

Slide 65 text

ϚϧνΫϥελͷ࣮ݱํ๏ ● GCLB + NEGΛ࢖ͬͨϧʔςΟϯάΛࣗಈ Ͱߏங ● ManagedͳService MeshΛఏڙ ● Observabilityͷ୲อͱSLO/SLIϞχλϦϯ ά ● ΫϥελϦιʔεͷΫϥελؒಉظ GCP Anthos

Slide 66

Slide 66 text

ϚϧνΫϥελʹΑΔ෇ՃՁ஋ Մ༻ੑ޲্͚ͩͰͳ͘ɺ༷ʑͳϝϦοτ΋ ● κʔϯΫϥελΛϚϧνΫϥελԽ͢Δ͜ͱͰϦʔδϣφϧΑΓ ҆͘ࡁΉՄೳੑ ● VIP + IP AnycastʹΑΔ௿ϨΠςϯγԽ

Slide 67

Slide 67 text

·ͱΊ ● ϨΠςϯγΛ୲อ͢Δ ○ requestͱlimitΛద੾ʹઃఆ͠Α͏ʂ ○ ࠷దͳϦιʔεΛ࣋ͭϊʔυʹ഑ஔ͠Α͏ʂ ○ ΞϓϦέʔγϣϯΛνϡʔχϯά͠Α͏

Slide 68

Slide 68 text

·ͱΊ ● εϧʔϓοτΛ୲อ͢Δ ○ Ͳ͜ʹϘτϧωοΫ͕དྷ͍ͯΔͷ͔ΛՄࢹԽͯ͠νϡʔχϯά͍ͯ͜͠͏ ○ PodͷਫฏεέʔϧɺrequestͱlimitʹΑΔਨ௚εέʔϧΛ͠Α͏

Slide 69

Slide 69 text

·ͱΊ ● εύΠΫʹඋ͑Α͏ ○ HPAͱCluster Autoscalerͷ࢓૊ΈΛཧղͯ͠࢖͓͏ ○ ෆे෼ͳ৔߹͸CronJobͳͲͰReplica਺Λௐ੔ͨ͠ΓɺεέʔϧͷϝτϦΫε໨ඪ஋Λ ΏΔͨ͘͠Γ͠Α͏

Slide 70

Slide 70 text

·ͱΊ ● ϊʔυͷμ΢ϯʹඋ͑Α͏ ○ κʔϯɺϊʔυΛ෼ࢄͯ͠PodΛ഑ஔ͠Α͏ ○ Graceful ShutdownɺPDBΛద੾ʹઃఆͯ҆͠શʹఀࢭ͠Α͏ ○ Ϋϥελͷϝϯςφϯε࣌ؒɺϝϯςφϯεํ਑ΛͪΌΜͱઃఆ͠Α͏ ○ Preemptible͸৻ॏʹʂ

Slide 71

Slide 71 text

·ͱΊ ● Ϋϥελͷϝϯςφϯεઓུ ○ ϚϧνΫϥελԽ͢Δͱ҆શʹΫϥελΛΧφϦϦϦʔεɺϩʔϦϯάΞοϓσʔτͰ͖ Δ ○ ௿ϨΠςϯγԽͳͲͷ෇ՃՁ஋΋ଘࡏ ○ GCP AnthosΛ࢖͏ͱ୯ҰVIPʹෳ਺ΫϥελΛͿΒԼ͛Δߏ੒ΛͱΔ͜ͱ͕Ͱ͖Δ

Slide 72

Slide 72 text

Follow Me!! @taisho6339

Slide 73

Slide 73 text

Thank you for listening!