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
44
Datadogで始めるユーザー行動分析 / Getting Started with User Behavior Analysis Using Datadog
mnuma
0
100
自動テストについて / Automated Testing
mnuma
0
260
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
190
Observabilityを実践する / Pragmatic observability
mnuma
2
240
Kubernetes Case Studies #1@Makuake KubeCon NA 2019 Recap
mnuma
0
180
カオスエンジニアリングについてヤホーで調べてきました / Enter the chaos engineering
mnuma
0
140
Chaos Engineering 現状把握 / History Of Chaos Engineering
mnuma
0
400
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
We Have a Design System, Now What?
morganepeng
55
8.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Scaling GitHub
holman
464
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Crafting Experiences
bethany
1
250
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Designing for Timeless Needs
cassininazir
1
450
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
390
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
420
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