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
41
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
130
Chaos Engineering 現状把握 / History Of Chaos Engineering
mnuma
0
390
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Making Projects Easy
brettharned
120
6.7k
Paper Plane
katiecoart
PRO
2
52k
Paper Plane (Part 1)
katiecoart
PRO
1
9.9k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
360
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
370
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Optimising Largest Contentful Paint
csswizardry
37
3.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
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