Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Kubernetes Cluster Migration
Atsushi Tanaka
March 26, 2020
Programming
4
2.6k
Kubernetes Cluster Migration
Atsushi Tanaka
March 26, 2020
Tweet
Share
More Decks by Atsushi Tanaka
See All by Atsushi Tanaka
bgpat
2
600
bgpat
0
330
bgpat
0
390
bgpat
0
930
bgpat
5
2.4k
bgpat
3
700
bgpat
2
1k
Other Decks in Programming
See All in Programming
yagitatsu
3
1.6k
kenmaz
1
100
inoue2002
0
280
nbkouhou
0
970
line_developers_tw
1
490
kubode
0
210
azdaroth
0
140
aratayokoyama
0
220
mu2in
0
150
atskimura
0
310
standfm
0
240
viteinfinite
0
210
Featured
See All Featured
phodgson
87
3.9k
stephaniewalter
260
11k
trishagee
20
2.1k
qrush
285
18k
malarkey
192
8.6k
deanohume
295
27k
marktimemedia
6
340
bkeepers
52
4.1k
schacon
145
6.6k
destraynor
146
19k
reverentgeek
168
7.2k
dougneiner
55
5.4k
Transcript
©2020 Wantedly, Inc. Kubernetes Cluster Migration ΫϥελͷҾͬӽ͠ʹΑΔαʔϏεແఀࢭΞοϓάϨʔυ Mar 26, 2020
Kubernetes Meetup Tokyo #29 - Atsushi Tanaka 1
©2020 Wantedly, Inc. 2 "HFOEB $MVTUFSNJHSBUJPOͷඞཁੑ $MVTUFSNJHSBUJPOͷखॱ
©2020 Wantedly, Inc. 3 @bgpat / Atsushi Tanaka Infrastructure Engineer
at Wantedly, Inc. Kubernetes / Docker / Go / JavaScript / Terraform $ whoami
©2020 Wantedly, Inc. 4 8IBU`T8BOUFEMZ
©2020 Wantedly, Inc. 8BOUFEMZͱ,VCFSOFUFT w ͯ͢ͷαʔϏεΛ,VCFSOFUFT্Ͱӡ༻ w "84&$্ʹߏங w &,4ΘͣLPQTΛར༻
w W ͔Βຊ൪ӡ༻ 5
©2020 Wantedly, Inc. ·ͣJOQMBDFVQHSBEFΛࢼ͢ αʔϏεμϯͷՄೳੑ͕͋Ε DMVTUFSNJHSBUJPO 6 ΞοϓάϨʔυઓུ
©2020 Wantedly, Inc. JOQMBDFVQHSBEF w طଘͷΫϥελΛ ͦͷ··͏ w ϊʔυΛॱ൪ʹೖΕସ͑ w
SPMMJOHVQEBUF 7 ΞοϓάϨʔυํ๏ͷൺֱ DMVTUFSNJHSBUJPO w طଘͷΫϥελΘͣ ৽͍͠ΫϥελΛཱͯΔ w ϦιʔεΛ৽Ϋϥελʹίϐʔ w CMVFHSFFOEFQMPZ
©2020 Wantedly, Inc. ΫϥελΛߏ͢ΔϊʔυΛॱ൪ʹೖΕସ͑Δ 8 *OQMBDFVQHSBEF ,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW
OPEFW OPEFW OPEFW 1PE 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. ΫϥελΛߏ͢ΔϊʔυΛॱ൪ʹೖΕସ͑Δ 9 *OQMBDFVQHSBEF ,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW
XPSLFSW XPSLFSW XPSLFSW 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. ΫϥελΛߏ͢ΔϊʔυΛॱ൪ʹೖΕସ͑Δ 10 *OQMBDFVQHSBEF ,VCFSOFUFT$MVTUFS XPSLFSW XPSLFSW XPSLFSW
NBTUFSW NBTUFSW NBTUFSW 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. ΫϥελΛߏ͢ΔϊʔυΛॱ൪ʹೖΕସ͑Δ 11 *OQMBDFVQHSBEF ,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW
XPSLFSW XPSLFSW XPSLFSW 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. ΫϥελΛ৽͘͠࡞ͬͯதΛҠ͢ 12 $MVTUFSNJHSBUJPO ,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW
OPEFW OPEFW OPEFW 1PE 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. ΫϥελΛ৽͘͠࡞ͬͯதΛҠ͢ 13 $MVTUFSNJHSBUJPO 0ME,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW
OPEFW OPEFW OPEFW 1PE 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE /FX,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW OPEFW OPEFW OPEFW
©2020 Wantedly, Inc. ΫϥελΛ৽͘͠࡞ͬͯதΛҠ͢ 14 $MVTUFSNJHSBUJPO 0ME,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW
OPEFW OPEFW OPEFW 1PE 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE /FX,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW NBTUFSW OPEFW OPEFW OPEFW 1PE 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. ΫϥελΛ৽͘͠࡞ͬͯதΛҠ͢ 15 $MVTUFSNJHSBUJPO 0ME,VCFSOFUFT$MVTUFS /FX,VCFSOFUFT$MVTUFS NBTUFSW NBTUFSW
NBTUFSW OPEFW OPEFW OPEFW 1PE 4FSWJDF $POpH .BQ %FQMPZ NFOU *OHSFTT 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE 1PE
©2020 Wantedly, Inc. JOQMBDFVQHSBEF w ؆୯ w ֤Ϋϥυϕϯμʔ͕"1*Λ༻ҙ w ΦϯϓϨͰߏπʔϧͷػೳ͕͑Δ
w ޓੑͷ੍͕͋Δ w NJOPSWFSTJPO্͔͛͠ΒΕͳ͍ w ޓੑͷͳ͍มߋμϯλΠϜ͕ൃੜ 16 ֤ΞοϓάϨʔυํ๏ͷಛ DMVTUFSNJHSBUJPO w ໘ w ΫϥυπʔϧͷԸܙΛड͚ΒΕͳ͍ w ෳΫϥελͰͷӡ༻ͷߟྀ͕ඞཁ w ޓੑͷ੍͕ͳ͍ w όʔδϣϯΛඈ্ͯ͛͠Δ͜ͱ͕Մೳ w ίΞίϯϙʔωϯτΛೖΕସ͑Δ͜ͱՄೳ
©2020 Wantedly, Inc. $MVTUFSNJHSBUJPO͕ඞཁͳέʔε աڈʹJOQMBDFVQHSBEF͕Ͱ͖ͳ͔ͬͨྫ ,VCFSOFUFTͷόά FUDEͷόʔδϣϯ্͛ 17
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT 18 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά 19 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε NBTUFSOPEF MFBEFS NBTUFSOPEF OPUMFBEFS
XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά 20 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε NBTUFSOPEF EFMFUFE NBTUFSOPEF OPUMFBEFS
XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά 21 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε NBTUFSOPEF EFMFUFE NBTUFSOPEF MFBEFS
XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE XPSLFSOPEF 1PE 1PE 1PE NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά 22 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε NBTUFSOPEF EFMFUFE NBTUFSOPEF MFBEFS
XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά 23 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε NBTUFSOPEF EFMFUFE NBTUFSOPEF MFBEFS
XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE XPSLFSOPEF /PU3FBEZ 1PE 1PE 1PE × × × × × × × × × NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
©2020 Wantedly, Inc. ,VCFSOFUFTͷόά 24 $MVTUFSNJHSBUJPO͕ඞཁͳέʔε w मਖ਼࣍ͷQBUDIWFSTJPOʹCBDLQPSU͞Εͨ w ରԠ͢ΔʹΫϥελͷΞοϓάϨʔυ͕ඞཁ
w JOQMBDFVQHSBEF NBTUFSOPEFΛೖΕସ͑Δඞཁ͕͋Δ NBTUFSOPEFͷϦʔμʔೖΕସ͑࣌ʹͯ͢ͷϊʔυ͕/PU3FBEZʹͳΔόά IUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
©2020 Wantedly, Inc. FUDEͷόʔδϣϯ্͛ w WˠWͷΞοϓάϨʔυ,VCFSOFUFT͕αϙʔτ͍ͯ͠ͳ͍ w LPQT͕༻ҙͨ͠FUDEͷNJHSBUJPOQBUI͕͏·͘ಈ͔ͳ͔ͬͨ $MVTUFSNJHSBUJPO͕ඞཁͳέʔε
©2020 Wantedly, Inc. ͳͥ,VCFSOFUFTΛΞοϓάϨʔυ͢Δͷ͔ w όά੬ऑੑͷमਖ਼ w ৽ػೳΛ͍͍ͨ w αϙʔτ͞Ε͍ͯΔόʔδϣϯΛ͏
26
©2020 Wantedly, Inc. αϙʔτ͞ΕΔόʔδϣϯ 27 https://kubernetes.io/ja/docs/setup/release/version-skew-policy/
©2020 Wantedly, Inc. αϙʔτ͞ΕΔόʔδϣϯ 28 w ࠷৽ϦϦʔε͔ΒNJOPSWFSTJPO·Ͱ w ̕ϲ݄ܦͯαϙʔτ͞Εͳ͘ͳΔ 㱺ɹසൟͳΞοϓάϨʔυͷ࣮ࢪ͕ඞཁ
©2020 Wantedly, Inc. 29 $MVTUFSNJHSBUJPOʹඋ͑Δ ͍ͭDMVTUFSNJHSBUJPO͕ඞཁʹͳΔ͔͔Βͳ͍ͷͰ४උΛ͓ͯ͘͠ w Ͳ͏Δͷ͔Δ w DMVTUFSNJHSBUJPO͍͢͠Ϋϥελʹ͢Δ
©2020 Wantedly, Inc. $MVTUFSNJHSBUJPOͷखॱ 30
©2020 Wantedly, Inc. $MVTUFSNJHSBUJPOͷखॱ ৽ΫϥελΛ࡞ ৽ΫϥελʹϦετΞ ৽ΫϥελʹτϥϑΟοΫΛΓସ͑
چΫϥελআ 31
©2020 Wantedly, Inc. LT,VCFSOFUFT'BDUPST 32 https://speakerdeck.com/potsbo/k8s-kubernetes-8-factors
©2020 Wantedly, Inc. 33 LT,VCFSOFUFT'BDUPST https://speakerdeck.com/potsbo/k8s-kubernetes-8-factors
©2020 Wantedly, Inc. $MVTUFSNJHSBUJPOͷݪଇ w ΫϥελΛίʔυཧ ίʔυϕʔεґଘએݴઃఆ w ಈ࡞֬ೝͷলྗԽ ୯ҰํϏϧυڥҰக
w ඇ໊લཧ w όοΫΞοϓ w ॏෳܽଛཧ 34
©2020 Wantedly, Inc. ΫϥελΛίʔυཧ Ϋϥελͷ࡞Λָʹ͍ͨ͠ w DMVTUFSNJHSBUJPOݕূʹ͕͔͔Γ ΫϥελΛ࡞Γ͢ճ૿͑Δ ࠩͷൺֱΛ؆୯ʹ͍ͨ͠ w
৽چΫϥελͷࠩΛϨϏϡʔ͘͢͠ w ݕূ࣌ͷઃఆΛຊ൪ʹө͠ΕΔͷΛࢭ 㱺ɹΫϥελͷઃఆίʔυཧ 㱺ɹΫϥελ࡞ίʔυԽ 㱺ɹڥຖͷࠩ໌ࣔతʹॻ͘ 35
©2020 Wantedly, Inc. ಈ࡞֬ೝͷলྗԽ JOQMBDFVQHSBEFΑΓ৻ॏͳ֬ೝ͕ඞཁ w ΫϥυπʔϧͷԸܙ͕ड͚ΒΕͳ͍ w େ͖ͳมߋؚ͕·Ε͍ͯΔέʔε͕ଟ͍ 㱺ɹݕূڥͱͷࠩҟग़དྷΔݶΓݮΒ͢
ຊ൪͚ͩͰى͖ΔΛચ͍ग़ͤΔΑ͏ʹ͢Δ 㱺ɹΫϥελͷөίʔυΛݩʹ͢Δ ҙਤ͠ͳ͍Ϧιʔεͷ࡞ΛݕͰ͖ΔΑ͏ʹ 36
©2020 Wantedly, Inc. ඇ໊લཧ ෳΫϥελӡ༻Λߟྀ͢Δ w Ϋϥελ໊มߋʹैͰ͖Δঢ়ଶʹ w ΫϥελΓସ͑ΛϩʔϧόοΫखஈʹ 㱺ɹಉҰ༻్ͷϦιʔε͕ෳ࡞ΒΕΔ͜ͱΛఆ͢Δ
w ໋໊Λ͢Δ 㱺ɹ໊લͰࢀরͤͣΫογϣϯϨΠϠʔΛڬΉ w Ϣʔβʔʹݟ͑Δॴ$/".&Λ͏ w MBCFMUBHͰϦιʔεΛࢦఆ 37
©2020 Wantedly, Inc. ໋໊Λ͢Δ ಉҰ༻్ͷϦιʔε͕ෳ࡞ΒΕͯিಥ͠ͳ໊͍લ w QSPEVDUJPO 㱺ɹຊ൪ڥʹෳͷΫϥελ͕࡞ΒΕΔ͜ͱΛఆͰ͖͍ͯͳ͍ w QSPEVDUJPO
㱺ɹΛ͚Δ͜ͱͰিಥΛճආ 㱺ɹಉ͡ʹෳͷΫϥελΛӡ༻͢Δ͜ͱߟ͑ʹ͍͘ 38 ඇ໊લཧ
©2020 Wantedly, Inc. ΫογϣϯϨΠϠʔΛڬΉ %BUBEPHʹΑΔࢹ w ϝτϦΫεΞϥʔτͷઃఆʹΫϥελ໊Λ͍ͬͯͨ w DMVTUFSNJHSBUJPOΛߦ͏ͱ͖ʹஔ͖͑Δඞཁ͕͋ͬͨ 㱺ɹࠓޙಉ͡ରԠΛ͠ͳ͍Α͏ʹFOWQSPEVDUJPOͳͲͷλάͰճආ
39 ඇ໊લཧ
©2020 Wantedly, Inc. όοΫΞοϓ ϦετΞʹΑͬͯΫϥελͷதΛҠߦ w ඞཁͳϦιʔε͕ͯ͢ೖͬͨόοΫΞοϓ͕ඞཁ 㱺ɹ͍ͣΕ͔ͷํ๏ͰόοΫΞοϓΛऔ͓ͬͯ͘ 8BOUFEMZͰ7FMFSPΛར༻ IUUQTWFMFSPJP
40
©2020 Wantedly, Inc. ॏෳܽଛཧ ෳΫϥελͰͷӡ༻ʹΑΔ෭࡞༻ΛݮΒ͢ w LTॏෳΛڐ༰͢ΔϦιʔε͔͠ఆ͞Ε͍ͯͳ͍ w ॏෳΛڐ༰Ͱ͖ͳ͍Ϧιʔεઐ༻ͷखॱ͕ඞཁ 㱺ɹॏෳ͔ܽଛͷͲͪΒ͔ڐ༰Ͱ͖Δߏʹ
㱺ɹઐ༻ͷखॱ͕ඞཁͳϦιʔεʹϥϕϧΛઃఆ 㱺ɹ྆ํͱڐ༰Ͱ͖ͳ͍ϦιʔεѻΘͳ͍ 41
©2020 Wantedly, Inc. $SPO+PC w ఆظతʹόονॲཧΛ࣮ߦͤ͞ΔͨΊʹར༻ w 8BOUFEMZʹॏෳ࣮ߦ͕ڐ༰͞Εͳ͍KPC͕ଘࡏ͢Δ w ඦͷKPC͕ଘࡏͯ͢͠Λॏෳ͍͍ͯ͠ঢ়ଶʹ͢Δͷࠔ
㱺ɹܽଛΛڐ༰͢Δ࣮ߦ͞Εͳ͍έʔεΛڐ༰͢Δ چΫϥελ͔Βফ͔ͯ͠Β৽ΫϥελʹϦετΞ͢Δ 42 ॏෳΛڐ༰͠ͳ͍Ϧιʔεͷྫ ॏෳܽଛཧ
©2020 Wantedly, Inc. 3%# w ෳͷঢ়ଶ͕ଘࡏ͢ΔͱҰ؏ੑ͕อͨΕͳ͍ w ྫچΫϥελͱ৽ΫϥελͰೖ͍ͬͯΔσʔλ͕ҧ͏ w μϯλΠϜ͕͋ΔͱαʔϏεʹӨڹ͕ग़Δ
㱺ɹ,VCFSOFUFTͰཧ͠ͳ͍ 8BOUFEMZͰ"84ͷ3%4Λར༻ 43 ॏෳͱܽଛͷ྆ํΛڐ༰͠ͳ͍Ϧιʔεͷྫ ॏෳܽଛཧ
©2020 Wantedly, Inc. ࣮ࡍͷDMVTUFSNJHSBUJPOखॱͷྫ ৽ΫϥελΛ࡞ ॏෳΛڐ༰͢ΔϦιʔεΛ৽ΫϥελʹϦετΞ ॏෳΛڐ༰͠ͳ͍ϦιʔεΛچΫϥελ͔Βআ
ॏෳΛڐ༰͠ͳ͍ϦιʔεΛ৽ΫϥελʹϦετΞ ৽ΫϥελʹτϥϑΟοΫΛΓସ͑ چΫϥελআ 44
©2020 Wantedly, Inc. 45
©2020 Wantedly, Inc. 46
©2020 Wantedly, Inc. 47 ·ͱΊ $MVTUFSNJHSBUJPOͷඞཁੑ w جຊJOQMBDFVQHSBEF w
JOQMBDFVQHSBEFͰμϯλΠϜ͕ൃੜ͢Δͱ͖ʹ࣮ࢪ $MVTUFSNJHSBUJPOͷखॱ w όοΫΞοϓ͔ΒϦετΞͯ͠ϦιʔεΛҠߦ w ಉ͡ઃఆͰෳΫϥελΛӡ༻͢Δ͜ͱΛఆ͓ͯ͘͠