Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetesの自動アップグレードについて / Upgrading GKE cluster
Search
mnuma
July 15, 2021
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetesの自動アップグレードについて / Upgrading GKE cluster
mnuma
July 15, 2021
More Decks by mnuma
See All by mnuma
セキュリティチェックシートの話 / Security Check Sheet
mnuma
0
38
Datadogで始めるユーザー行動分析 / Getting Started with User Behavior Analysis Using Datadog
mnuma
0
95
自動テストについて / Automated Testing
mnuma
0
250
AWS Auroraのスロークエリを Datadogで扱うまで / How to handle slow_queries_logs in AWS Aurora with Datadog
mnuma
0
1k
Googleに学ぶDesign Docs / Learn from Google on Design Docs
mnuma
0
180
Observabilityを実践する / Pragmatic observability
mnuma
2
240
Kubernetes Case Studies #1@Makuake KubeCon NA 2019 Recap
mnuma
0
180
カオスエンジニアリングについてヤホーで調べてきました / Enter the chaos engineering
mnuma
0
130
Chaos Engineering 現状把握 / History Of Chaos Engineering
mnuma
0
380
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
How to Talk to Developers About Accessibility
jct
2
220
Are puppies a ranking factor?
jonoalderson
1
3.5k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
Between Models and Reality
mayunak
4
330
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
WCS-LA-2024
lcolladotor
0
620
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
Become a Pro
speakerdeck
PRO
31
6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
160
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Transcript
,VCFSOFUFTͷࣗಈΞοϓάϨʔυʹ͍ͭͯ .BLVBLF-51BSUZ
!NOVNB@ .BLVBLF *OD 5FBN43& കӍʹෛ͚ͣʹͬͯ·͢ɻ
ϚΫΞέʹ͓͚Δ,VCFSOFUFTར༻
ϚΫΞέͰͷ,VCFSOFUFTӡ༻ ɾϚΠΫϩαʔϏε͚࣮ߦڥͱͯ͠($1(,&ڥΛඋ ɾ݄ࠒ(,&Ϋϥελॳ࡞ ɾ݄ࠒຊ൪ӡ༻d
(,& (PPHMF,VCFSOFUFT&OHJOF ɾ(PPHMFͷ($1ͷϓϩμΫτͷҰͭ ɾ,VCFSOFUFTͷϚωʔδυαʔϏε ,VCFSOFUFT ɾίϯτϩʔϧϓϨʔϯͱϫʔΧʔϊʔυ ͲͷΜ͕Ϛωʔδυʁ ɾίϯτϩʔϧϓϨʔϯ(PPHMF͕ཧͯ͘͠ΕΔ ɾϫʔΧϊʔυͷϝϯςϯφεར༻ऀ
APP ίϯτϩʔϧϓϨʔϯ ϫʔΧʔϊʔυ ίϯςφ APP Language Runtime Language Runtime OS ΦʔέετϨʔγϣϯΤʔδΣϯτ(kubelet) GKE
APP ίϯτϩʔϧϓϨʔϯ ϫʔΧʔϊʔυ ίϯςφ APP https://cloud.google.com/kubernetes-engine/docs/concepts/shared-responsibility?hl=ja Language Runtime Language Runtime
OS ΦʔέετϨʔγϣϯΤʔδΣϯτ(kubelet) GKE GCP ར༻ऀ ɾج൫ΠϯϑϥετϥΫνϟͷอޢ ɾϊʔυͷΦϖϨʔςΟϯά γεςϜͷڧԽͱύονద༻ ɾΧʔωϧ෦ʹίϯςφݻ༗ͷڴҖΛݕग़͢ΔΈͷߏஙͱӡ༻ ɾKubernetes ϊʔυ ίϯϙʔωϯτͷڧԽͱύονద༻ ɾίϯτϩʔϧ ϓϨʔϯͷڧԽͱύονద༻ ɾGCP࿈ܞػೳͷఏڙ ɾαϙʔτશൠ ɾίϯςφΞϓϦέʔγϣϯͷཧ ɾΞϓϦέʔγϣϯϞχλϦϯάɺΞϥʔτΠϯγσϯτରԠ ɾΫϥελ(Kubernetes)ͷΞοϓάϨʔυ ڞ༗Ϟσϧ
,VCFSOFUFTόʔδϣϯΞοϓάϨʔυ
,VCFSOFUFTͷϦϦʔεαΠΫϧ ɾ,VCFSOFUFTͷϦϦʔεαΠΫϧϲ݄ʹճ ݱࡏ࠷৽[ ɾ݄ࠒ͔Β,VCFSOFUFTϦϦʔε͔Βɺʹճ ϲ݄ʹճ ͷҠߦΛ໌֬Խ IUUQTHJUIVCDPNLVCFSOFUFTFOIBODFNFOUTUSFFNBTUFSLFQTTJHSFMFBTFSFMFBTFDBEFODF (,&൛ͷϦϦʔεαΠΫϧ ɾ(,&Ͱ͜ͷैͷଞʹ($1ಠࣗػೳόάηΩϡϦςΟͷमਖ਼͕౷߹తʹߦΘΕΔ
ɾόʔδϣϯදهHLF YZ[HLFO ɾYϝδϟʔόʔδϣϯ ɾZϚΠφʔόʔδϣϯ ɾ[ύονόʔδϣϯ ɾHLFO(,&൛όʔδϣϯ ˞,VCFSOFUFTϲ݄αϙʔτɺ(,&ͰϚΠφʔόʔδϣϯʹϲ݄ͷαϙʔτ
όʔδϣϯै͠ͳ͍Ͱى͜Δ ɾαϙʔτ͕͞Εͳ͘ͳΔ ɾ৽ػೳ͕͑ͳ͍ ɾίϯϙʔωϯτόάηΩϡϦςΟΞοϓσʔτʹैͰ͖ͳ͘ͳΔ ɾίϯτϩʔϧϓϨʔϯͱϫʔΧʔϊʔυ͕ͭҎ্ϚΠφʔόʔδϣϯ͕ΕΔͱαϙʔτ͞Εͳ͘ͳΔ IUUQTLVCFSOFUFTJPKBEPDTTFUVQ@QSJOU
όʔδϣϯΞοϓάϨʔυΛࣗಈԽ͍ͨ͠
,VCFSOFUFTΫϥελͷࣗಈΞοϓάϨʔυػೳ ɾ(PPHMF($1ɾɾɾ(,&ൃ͔ͳΓॳظ͔ΒରԠ ɾ.JDSPTPGU"[VSF",4ɾɾɾࠒ͔ΒରԠ ɾ"84&,4ඇରԠ (,&ͷࣗಈΞοϓάϨʔυ ɾίϯτϩʔϧϓϨʔϯɾɾɾࣗಈΞοϓάϨʔυ͞ΕΔ ɾϫʔΧʔϊʔυɾɾɾࣗಈΞοϓάϨʔυΦϓγϣϯΛར༻Մೳ
,VCFSOFUFTΫϥελͷࣗಈΞοϓάϨʔυػೳ ɾ(PPHMF($1ɾɾɾ(,&ൃ͔ͳΓॳظ͔ΒରԠ ɾ.JDSPTPGU"[VSF",4ɾɾɾࠒ͔ΒରԠ ɾ"84&,4ඇରԠ (,&ͷࣗಈΞοϓάϨʔυ ɾίϯτϩʔϧϓϨʔϯɾɾɾࣗಈΞοϓάϨʔυ͞ΕΔ ɾϫʔΧʔϊʔυɾɾɾࣗಈΞοϓάϨʔυΦϓγϣϯΛར༻Մೳ ͳΜʹߟ͑ͣʹϫʔΧʔϊʔυΛΞοϓάϨʔυ͢Δͱେͷ߹Ұ࣍తͳαʔϏεఀࢭʹͳͬͪΌ͏ɻ (,&ͷࣗಈΞοϓάϨʔυͷػೳΛ͍͑ͯͳ͔ͬͨɻ
(,&ͷࣗಈΞοϓάϨʔυͷػೳΛ͍͑ͯͳ͔ͬͨ
(,&ͰΫϥελࣗಈΞοϓάϨʔυ࣮ࢪͰߟྀͨ͠ϙΠϯτ
ϦϦʔενϟϯωϧͷߪಡ ࣗಈΞοϓάϨʔυΛ࣮ࢪ͢Δ্ͰͲ͏͍͏ߋ৽සͰ࣮ࢪ͢Δ͔બग़དྷΔɻ ɾ3BQJEɾɾɾຖि ৽ػೳॏࢹ ɾ3FHVMBSɾɾɾϲ݄ʹෳճ ػೳͱ҆ఆੑόϥϯεܕ ɾ4UBCMFɾɾɾϲ݄ʹճ ҆ఆੑॏࢹ
ɾ4UBUJD /P$IBOOFM ɾɾɾࣗಈΞοϓάϨʔυ͠ͳ͍ PRD STG StableΛߪಡͯ͠·͢
https://cloud.google.com/kubernetes-engine/docs/release-notes?hl=ja ϦϦʔενϟϯωϧͷߪಡ ࣗಈΞοϓάϨʔυΛ࣮ࢪ͢Δ্ͰͲ͏͍͏ߋ৽සͰ࣮ࢪ͢Δ͔બग़དྷΔɻ ɾ3BQJEɾɾɾຖि ৽ػೳॏࢹ ɾ3FHVMBSɾɾɾϲ݄ʹෳճ ػೳͱ҆ఆੑόϥϯεܕ ɾ4UBCMFɾɾɾϲ݄ʹճ
҆ఆੑॏࢹ ɾ4UBUJD /P$IBOOFM ɾɾɾࣗಈΞοϓάϨʔυ͠ͳ͍
αʔδΞοϓάϨʔυ ݹ͍ϊʔυΛୀ͢Δલʹ৽͍͠ϊʔυΛىಈ͢Δ͜ͱͰαʔϏεఀࢭͷՄೳੑΛݮ͢Δػೳɻ αʔδΞοϓάϨʔυ݄͔ΒσϑΥϧτͰ༗ޮɻ
αʔδΞοϓάϨʔυ ݹ͍ϊʔυΛୀ͢Δલʹ৽͍͠ϊʔυΛىಈ͢Δ͜ͱͰαʔϏεఀࢭͷՄೳੑΛݮ͢Δػೳɻ αʔδΞοϓάϨʔυ݄͔ΒσϑΥϧτͰ༗ޮɻ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ(ୀ) ϊʔυ
ϊʔυ ϊʔυ ϊʔυ ৽ϊʔυՃ
αʔδΞοϓάϨʔυ ݹ͍ϊʔυΛୀ͢Δલʹ৽͍͠ϊʔυΛىಈ͢Δ͜ͱͰαʔϏεఀࢭͷՄೳੑΛݮ͢Δػೳɻ αʔδΞοϓάϨʔυ݄͔ΒσϑΥϧτͰ༗ޮɻ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ
ϊʔυ ϊʔυ ৽ϊʔυ ৽ϊʔυ ϊʔυ ϊʔυ(ୀ) ৽ϊʔυՃ
1PE%JTSVQUJPO#VEHFU 1PEͷ࠷খͷ༗ޮঢ়ଶ࠷େͷແޮঢ়ଶͷΛࢦఆ͢Δػೳɻ LVCFDUMESBJO࣮ߦ࣌ʹNBY"WBJMBCMFΛઃఆ͢Δ͜ͱͰ1PEͷىಈΛௐՄೳɻ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ ϊʔυ
ϊʔυ ϊʔυ ৽ϊʔυ ৽ϊʔυ ϊʔυ ϊʔυ(ୀ) ৽ϊʔυՃ
1PE%JTSVQUJPO#VEHFU 1PEͷ࠷খͷ༗ޮঢ়ଶ࠷େͷແޮঢ়ଶͷΛࢦఆ͢Δػೳɻ LVCFDUMESBJO࣮ߦ࣌ʹNBY"WBJMBCMFΛઃఆ͢Δ͜ͱͰ1PEͷىಈΛௐՄೳɻ ɾminAvailable: গͳ͘ͱ༗ޮͰ͋Δ͖Pod ɾmaxUnavailable: ࠷େແޮͰ͋ͬͯΑ͍Pod
1PE%JTSVQUJPO#VEHFU 1PEͷ࠷খͷ༗ޮঢ়ଶ࠷େͷແޮঢ়ଶͷΛࢦఆ͢Δػೳɻ LVCFDUMESBJO࣮ߦ࣌ʹNBY"WBJMBCMFΛઃఆ͢Δ͜ͱͰ1PEͷىಈΛௐՄೳɻ ϊʔυ Pod Pod Pod Pod Pod Pod
1PE%JTSVQUJPO#VEHFU 1PEͷ࠷খͷ༗ޮঢ়ଶ࠷େͷແޮঢ়ଶͷΛࢦఆ͢Δػೳɻ LVCFDUMESBJO࣮ߦ࣌ʹNBY"WBJMBCMFΛઃఆ͢Δ͜ͱͰ1PEͷىಈΛௐՄೳɻ ϊʔυ Pod Pod Pod Pod Pod Pod
ୀʂ(evicted)
1PE%JTSVQUJPO#VEHFU 1PEͷ࠷খͷ༗ޮঢ়ଶ࠷େͷແޮঢ়ଶͷΛࢦఆ͢Δػೳɻ LVCFDUMESBJO࣮ߦ࣌ʹNBY"WBJMBCMFΛઃఆ͢Δ͜ͱͰ1PEͷىಈΛௐՄೳɻ ϊʔυ Pod Pod Pod Pod Pod Pod
ϊʔυ(ୀ) Pod Pod Pod Pod Pod Pod ৽ϊʔυ Pod Pod Pod Pod Pod Pod
ϊʔυ Pod Pod Pod Pod Pod Pod ϊʔυ(ୀ) Pod Pod
Pod Pod Pod Pod ৽ϊʔυ Pod maxUnavailable: ࠷େແޮͰ͋ͬͯΑ͍ Pod : 1 ৽ϊʔυ Pod Pod ϊʔυ(ୀ) Pod Pod Pod Pod Pod
ϊʔυ Pod Pod Pod Pod Pod Pod ϊʔυ(ୀ) Pod Pod
Pod Pod Pod Pod ৽ϊʔυ Pod maxUnavailable: ࠷େແޮͰ͋ͬͯΑ͍ Pod : 1 ➝ ͪ͜ΒΛ࠾༻ͯ͠·͢ ৽ϊʔυ Pod Pod ϊʔυ(ୀ) Pod Pod Pod Pod Pod
$MPVE-PBECBMBODJOH)FBMUIDIFDLT 1PEͷୀ࣌ʹదͳλΠϛϯάͰ-#͔ΒͷϦΫΤετ͕ϧʔςΟϯά͞Εͳ͍Α͏ߟྀ͢Δඞཁ͕͋Δ https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features ɾcheckIntervalSec ϩυόϥϯαʔ͔ΒݟͨPodͷϔϧενΣοΫִؒ σϑΥϧτ͕5ඵ ɾunhealthyThreshold ҟৗͱΈͳ͢ճ σϑΥϧτ͕2 ※beta൛ͷॳظࠒͩͱ͜ͷลΓͷө͕͏·͍͔͘ͳ͘Μͩ
݄ࠒຊ൪ಋೖ ݱࡏͷόʔδϣϯ HLF ͰαʔϏεఀࢭͳ͠ͰͷࣗಈΞοϓάϨʔυ࣮Λ࡞Εͨ TUBCMFSFMFBTFBWBJMBCMF TUBCMFSFMFBTFEFGBVMU NBTUFSVQHSBEF OPEFVQHSBEF