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
97
自動テストについて / 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
390
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Un-Boring Meetings
codingconduct
0
330
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
240
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
320
Context Engineering - Making Every Token Count
addyosmani
9
990
Side Projects
sachag
455
43k
Into the Great Unknown - MozCon
thekraken
41
2.6k
How STYLIGHT went responsive
nonsquared
100
6.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
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