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.8k
Kubernetes Cluster Migration
Atsushi Tanaka
March 26, 2020
Tweet
Share
More Decks by Atsushi Tanaka
See All by Atsushi Tanaka
bgpat
2
630
bgpat
0
350
bgpat
0
400
bgpat
0
1k
bgpat
5
2.5k
bgpat
3
720
bgpat
2
1.1k
Other Decks in Programming
See All in Programming
sisshiki1969
1
220
hiro_y
1
440
drumato
1
220
chatii
2
270
dora1998
0
160
yattom
30
10k
yoshiken
1
220
bkuhlmann
4
290
patorash
0
120
thatjeffsmith
0
610
ickx
3
590
hr01
0
1.9k
Featured
See All Featured
paulrobertlloyd
71
3.7k
dougneiner
56
5.4k
brianwarren
82
4.8k
tenderlove
53
3.5k
philhawksworth
192
8.9k
destraynor
146
19k
imathis
479
150k
malarkey
392
61k
orderedlist
PRO
330
36k
keithpitt
402
20k
addyosmani
494
110k
qrush
285
19k
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 ಉ͡ઃఆͰෳΫϥελΛӡ༻͢Δ͜ͱΛఆ͓ͯ͘͠