k8sの可用性とScalabilityを担保するための大事な観点 / Best practices for ensuring availability and scalability for k8s
by
Hiroki Sakamoto
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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ͳύλʔϯ LB6000RPS ग़Δʁ 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!