Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
PersistentVolumeの一歩進んだ使い方
Yukinori Sakashita
September 09, 2020
Technology
3
1.2k
PersistentVolumeの一歩進んだ使い方
CloudNative Days Tokyo2020 での発表資料です。
https://event.cloudnativedays.jp/cndt2020/talks/13
Yukinori Sakashita
September 09, 2020
Tweet
Share
More Decks by Yukinori Sakashita
See All by Yukinori Sakashita
Cloud Nativeに向けた考えるべきポイント
ysakashita
0
36
ステートフルアプリ on Kubernetesの現在と今後の展望
ysakashita
2
410
VM時代からコンテナ時代へストレージ管理の移り変わり
ysakashita
9
6k
Kubernetes時代のストレージ
ysakashita
1
480
Persistent Volumeのはじめの一歩
ysakashita
2
530
ストレージの基礎
ysakashita
54
19k
ヤフー/ゼットラボのステートフルアプリケーションへの挑戦(前半)
ysakashita
5
4.7k
入門、Kubernetes Persistent Volume
ysakashita
15
4.9k
失敗しない!Kubernetes向けストレージ選び5つのポイント
ysakashita
7
4k
Other Decks in Technology
See All in Technology
Power AutomateでのAdaptive Cards-基本編
miyakemito
1
270
Retca Cloud
bau
0
450
JJUG2022_spring_Keycloak (Red Hat Single Sign-on)
tinoue
0
200
Istio入門
nutslove
15
4.9k
JAWS-UG re:Habilitaion 報告 / JAWS-UG OITA rehabilitation
hiranofumio
0
120
HoloLens2とMetaQuest2どちらも動くWebXRアプリをBabylon.jsで作る
iwaken71
0
180
RDRA + JavaによるレジャーSaaSプロダクトの要件定義と実装のシームレスな接続
jjebejj
PRO
3
520
UWBを使ってみた
norioikedo
0
400
Data in Google I/O - IO Extended GDG Seoul
kennethanceyer
0
150
How to start with DDD when you have a Monolith
javujavichi
0
260
OpsJAWS Meetup21 システム運用アンチパターンのすすめ
yoshiiryo1
0
1.4k
MoT TechTalk #12 タクシーアプリ『GO』大規模トラフィックを捌く分析データ基盤の全容に迫る!
mot_techtalk
0
360
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
780
250k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Designing the Hi-DPI Web
ddemaree
272
32k
Thoughts on Productivity
jonyablonski
43
2.3k
Designing Experiences People Love
moore
130
22k
Infographics Made Easy
chrislema
233
17k
Bash Introduction
62gerente
597
210k
The Illustrated Children's Guide to Kubernetes
chrisshort
15
36k
Robots, Beer and Maslow
schacon
152
7.1k
Code Reviewing Like a Champion
maltzj
506
37k
5 minutes of I Can Smell Your CMS
philhawksworth
196
18k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
Transcript
1FSTJTUFOU7PMVNFͷ ҰาਐΜ͍ͩํ :VLJOPSJ4BLBTIJUB
ࣗݾհ ‣ٕज़ݚڀΤϦΞ ӡ༻ཧٕज़ Ϋϥυ αʔόετϨʔδ ࣗಈࣗίϯϐϡʔςΟϯά
"*.- // ).. #BZFTJBO/FUXPSL ‣લ৬ ཱ࡞ॴ 㾎தԝݚڀॴԣݚڀॴ ओݚڀһ 㾎ւ֎ݚڀॴ!γϦίϯόϨʔ ϥϘ αʔόϕϯμʔ ςΫχΧϧ4& 2 ࡔԼಙ ത࢜ :VLJOPSJ4BLBTIJUB 1I% ‣ ϠϑʔגࣜձࣾθοτϥϘגࣜձࣾ ‣ 4/*"ຊࢧ෦ٕज़ҕһձ෭ҕһ ‣ 4/*"5FDIOJDBM$PVODJM"EWJTPS
ओͳॻ੶8FCهࣄߨԋ ‣ ॻ੶,VCFSOFUFT࣮ફೖ ग़൛ ‣ 8FCهࣄ5IJOL*5 ίϯςφΛಋೖ͠ͳ͍ͱɺͲͷΑ͏ͳະདྷ͕ ͍ͬͯͨͷ͔
ݱͰཱͭ5JQT͕Γͩ͘͞Μ ,VCFSOFUFTͷΞϨίϨ ‣ ߨԋ ߴՊେֶใֶ܈ಛผߨٛʮσʔλͷരൃత૿ՃΛ ࢧ͑ΔετϨʔδͷઌٕज़ͱࠃࡍඪ४Խʯ ,VCF'FTU5PLZPʮϠϑʔθοτϥϘͷ εςʔτϑϧΞϓϦέʔγϣϯͷઓʯ 3
"HFOEB ‣ ,VCFSOFUFTͰΞϓϦέʔγϣϯΛ࣮ߦ͢ΔϢʔβ͚ 7PMVNF&YQBOTJPO 7PMVNF4OBQTIPU 7PMVNF$MPOJOH ‣
,VCFSOFUFTΛఏڙ͢Δཧऀ͚ 5PQPMPHZ .VMUJ";3FHJPO .POJUPSJOH 4 ؔ࿈ൃද,VCFSOFUFT.FFUVQ5PLZPlೖɺ,VCFSOFUFT1FSTJTUFOU7PMVNFz IUUQTTQFBLFSEFDLDPNZTBLBTIJUBSVNFOLVCFSOFUFTQFSTJTUFOUWPMVNF
7PMVNF&YQBOTJPO Ϣ ʔ β ͚
7PMVNF&YQBOTJPOͱ ‣ 1FSTJTUFOU7PMVNF 17 ͷαΠζΛ૿͢ػೳ ॖখෆՄ ‣ ετϨʔδͷ7PMVNFͷαΠζͱ'JMF4ZTUFNͷαΠζΛಉ࣌ʹ֦ு ‣
4UPSBHF$MBTTʹBMMPX7PMVNF&YQBOTJPOUSVFΛઃఆ ‣ 1PEͷ࠶࡞͕ෆཁͳ0OMJOF ‣ 1PEͷ࠶࡞͕ඞཁͳ0⒐JOF 6 ( ( BQJ7FSTJPOTUPSBHFLTJPW LJOE4UPSBHF$MBTT ʜ BMMPX7PMVNF&YQBOTJPOUSVF 4UPSBHF$MBTTͷઃఆྫ
มߋՕॴ ‣ 1FSTJTUFOU7PMVNF$MBJN 17$ ͷαΠζΛมߋ 7 BQJ7FSTJPOW LJOE1FSTJTUFOU7PMVNF$MBJN NFUBEBUB OBNFQWD
TQFD TUPSBHF$MBTT/BNFTUBOEBSE BDDFTT.PEFT 3FBE8SJUF0ODF SFTPVSDFT SFRVFTUT TUPSBHF(J BQJ7FSTJPOW LJOE1FSTJTUFOU7PMVNF$MBJN NFUBEBUB OBNFQWD TQFD TUPSBHF$MBTT/BNFTUBOEBSE BDDFTT.PEFT 3FBE8SJUF0ODF SFTPVSDFT SFRVFTUT TUPSBHF(J
࣮ߦྫ 8 $ kubectl get pvc NAME STATUS VOLUME CAPACITY
・・・ test-pvc Bound pvc-5452b84e-56e0-43cf-ada9-7491fd3ae2d4 10Gi $ kubectl patch pvc test-pvc -p "{\"spec\":{\"resources\":{\"requests\":{\"storage\": \"50Gi\"}}}}" $ kubectl get pvc NAME STATUS VOLUME CAPACITY ・・・ test-pvc Bound pvc-5452b84e-56e0-43cf-ada9-7491fd3ae2d4 50Gi มߋ
9 ҰาਐΜͩ
4UBUFGVM4FUͰཁҙ ‣ 7PMVNF$MBJN5FNQMBUF͔Β࡞͞Εͨ17$ͷαΠζมߋՄೳ ‣ ͔͠͠ɺσϓϩΠ͞Εͨ4UBUFGVM4FUͷ7PMVNF$MBJN5FNQMBUFTมߋෆՄ ‣ (JU)VCͳͲͰ.BOJGFTUΛཧ͍ͯ͠Δ߹ζϨ͕ੜ͡ͳ͍Α͏ʹҙ 10 BQJ7FSTJPOBQQTW LJOE4UBUFGVM4FU
ʜ WPMVNF$MBJN5FNQMBUFT NFUBEBUB OBNFCMPDL TQFD BDDFTT.PEFT<3FBE8SJUF0ODF> TUPSBHF$MBTT/BNFTUBOEBSE SFTPVSDFT SFRVFTUT TUPSBHF( มߋ͍ͨ͠ "QQMZ ࢀߟ ,&1IUUQTHJUIVCDPNLVCFSOFUFTFOIBODFNFOUTJTTVFT *TTVFIUUQTHJUIVCDPNLVCFSOFUFTLVCFSOFUFTJTTVFT
8PSLBSPVOE ‣ 4UBUFGVM4FUΛDBTDBEFΦϓγϣϯͰҰ࣌আ ‣ खॱྫ LVCFDUMQBUDIίϚϯυͳͲͰطଘͷ17$ͷαΠζΛมߋ 4UBUFGVM4FUͷ.BOJGFTUϑΝΠϧͷWPMVNF$MBJN5FNQMBUFTͷαΠζΛ खॱͱಉ͡αΠζʹมߋ
DBTDBEFΦϓγϣϯͰ4UBUFGVM4FUΛҰ࣌আ ࡞ࡁΈͷ1PE 17$ 17আ͞Εͳ͍ ࠶ɺखॱͰมߋͨ͠.BOJGFTUϑΝΠϧΛ"QQMZ 11 $ kubectl delete sts —cascade=false <StatefulSet name>
8PSLBSPVOE ҙ ‣ खॱͱͷؒ4UBUFGVM4FUͷϦιʔε͕ଘࡏ͠ͳ͍ ‣ ͜ͷؒʹো͕ൃੜ͢ΔͱηϧϑώʔϦϯάͰͷ෮چ͠ͳ͍ ‣ खॱͱؒೖΕͣʹ࣮ߦ͢Δͷ͕͓קΊ 12
8PSLBSPVOE ‣ 7PMVNF$MBJN5FNQMBUFTͰࣗಈੜ͞ΕΔ17$ͱ ಉ໊͡લͷ17$ͷ.BOJGFTUϑΝΠϧΛ༻ҙ ‣ 17$ͷ.BOJGFTUϑΝΠϧͰαΠζΛมߋ ‣ 4UBUFGVM4FUͷ7PMVNF$MBJN5FNQMBUFTͷαΠζมߋ͠ͳ͍ͨΊɺ ৽نʹ࡞͞ΕΔ17$17ݩͷαΠζͷͨΊཁҙ ‣
17$ͷ.BOJGFTUϑΝΠϧΛผ్࡞͢Δඞཁ͕͋Γ 4UBUFGVM4FUͷ7PMVNF$MBJN5FNQMBUFTͷϝϦοτ͕ݮ 13
17ͷ҆શͳαΠζ ‣ 7PMVNF&YQBOTJPOɺ࠷ऴखஈ͙Β͍ͷҙࣝͰαΠζΛࣄલʹઃܭ ‣ ετϨʔδͰ5IJO1SPWJTJPOJOH͕αϙʔτͷ߹ɺαΠζͷେ͖ͳ17 Λ༧Ί࡞ 5IJO1SPWJTJPOJOH࣮ࡍͷॻ͖ࠐ·ΕͨྖҬͷΈ ཧϝσΟΞ 44%ɺ)%%
Λফඅ ‣ 4UBUFGVM4FUͰͷ7PMVNF&YQBOTJPO8PSLBSPVOE͕͓קΊ 8PSLBSPVOEͷ࣮ࢪத(JU0QT่͕Εͯ͠·͏͕ɺҎ߱(JU0QT͕ܧଓ 8PSLBSPVOE4UBUFGVM4FUͰεέʔϧΞτલʹ17$ͷ.BOJGFTUΛ࡞ ͢Δඞཁ͋Γ ΕΔͱ17ͷσʔλᷓΕͷࣄނʹͭͳ͕ΔϦεΫ͋Γ 14
7PMVNF4OBQTIPU Ϣ ʔ β ͚
4OBQTIPUͱ ετϨʔδͷࣝ ‣ 4OBQTIPUΛ࡞ͨ࣌͠ࠁͷσʔλΛอଘ͢Δػೳ 16 " 5JNF # # "`
$ $ "Λ"`ʹ ॻ͖͑ 4OBQTIPU 7PMVNF " " # $ " # $ #` "` 4OBQTIPU࡞ 4PVSDF 4OBQTIPU࡞ #Λ#`ʹ ॻ͖͑ ࠩσʔλͷ อଘྖҬ $P8 $PQZPO8SJUF ʹ ΑΔࠩόοΫΞοϓ "`
,VCFSOFUFTͷ7PMVNF4OBQTIPU ‣ 7PMVNF4OBQTIPUͭͷϦιʔεͰදݱ 7PMVNF4OBQTIPU4OBQTIPUͷཁٻ༷ 7PMVNF4OBQTIPU$POUFOU4OBQTIPUͷίϯςϯπ ࠩσʔλͷू߹
7PMVNF4OBQTIPU$MBTT4OBQTIPU༻ͷ4UPSBHF$MBTT ͷΑ͏ͳͷ ‣ 7PMVNF4OBQTIPUϦιʔεΛ࡞͢Δ͜ͱͰετϨʔδͰ4OBQTIPU͕࣮ߦ ‣ 7PMVNF4OBQTIPU$POUFOUϦιʔεࣗಈੜ 17
7PMVNF4OBQTIPU 18 BQJ7FSTJPOTOBQTIPUTUPSBHFLTJPWCFUB LJOE7PMVNF4OBQTIPU NFUBEBUB OBNFTOBQTIPUQWD TQFD WPMVNF4OBQTIPU$MBTT/BNFDTJTOBQTIPU TPVSDF QFSTJTUFOU7PMVNF$MBJN/BNFUFTUQWD
UFTUQWD TOBQTIPUQWD ࢦఆ .BOJGFTUͷ"QQMZ 4OBQTIPU࣮ߦ
3FTUPSF ‣ 7PMVNF4OBQTIPU͔Βͷ3FTUPSF17$Λ࡞͢Δ͜ͱͰ࣮ࢪ 19 BQJ7FSTJPOW LJOE1FSTJTUFOU7PMVNF$MBJN NFUBEBUB OBNFQWDGSPNTOBQTIPU TQFD BDDFTT.PEFT
3FBE8SJUF0ODF TUPSBHF$MBTT/BNFTUBOEBSE SFTPVSDFT SFRVFTUT TUPSBHF(J EBUB4PVSDF BQJ(SPVQTOBQTIPUTUPSBHFLTJP LJOE7PMVNF4OBQTIPU OBNFTOBQTIPUQWD QWDGSPNTOBQTIPU TOBQTIPUQWD .BOJGFTUͷ"QQMZ 3FTUPSF࣮ߦ
20 ҰาਐΜͩ
ݩͷ17ͷඞཁੑ ‣ ετϨʔδͷ4OBQTIPUࠩσʔλͷΈอଘ ‣ 4OBQTIPUதͷࠩσʔλͷΞΫηεݪଇ3FBE0OMZ ‣ ݩͷ7PMVNFΛআ͢Δͷ/( ‣ ,VCFSOFUFTͷ7PMVNF4OBQTIPUʹ͓͍ͯݩͷ17$17আͯ͠/( ‣
3FTUPSFͨ͠ޙͰ͋ΕɺΘͳ͘ͳͬͨݩͷ17$17আͯ͠ྑ͍͔ʁ 21
ݩͷ17ͷඞཁੑ ଓ͖ ‣ ͑ ར༻͢ΔετϨʔδʹΑΓ·͢ 22 # "` $
" 3FBE8SJUF 3FBE8SJUF # "` $ " ݩͷ7PMVNF 4OBQTIPU 3FBE8SJUF 3FBE # "` $ " 3FBE8SJUF 3FBE8SJUF # $ 4OBQTIPUத 8SJUBCMF4OBQTIPUΛ༻ $MPOFͰ৽ن7PMΛ࡞ ݩͷ17 আ/( ݩͷ17 আ0, 3FTUPSF " 3FBE
7PMVNF$MPOJOH Ϣ ʔ β ͚
$MPOFͱ ετϨʔδͷࣝ ‣ ݩͷ7PMVNFͷෳ Ϋϩʔϯ Λ࡞ ‣ ݩͷ7PMVNFΑΓখ͞ͳ7PMVNF$MPOFͰ͖ͳ͍ ‣ ετϨʔδͰߦΘΕΔͨΊɺαʔόͷ$16.FNPSZ/FUXPSLΛΘͳ͍
24 # $ " # $ " 7PMVNF" 7PMVNF"` $MPOJOH
,VCFSOFUFTͷ7PMVNF$MPOJOH ‣ 17$ͷEBUB4PVSDFʹΫϩʔϯݩͷ17$Λࢦఆ ‣ όοΫΞοϓ༻్ͳͲʹར༻ 25 BQJ7FSTJPOW LJOE1FSTJTUFOU7PMVNF$MBJN NFUBEBUB OBNFQWD
TQFD BDDFTT.PEFT 3FBE8SJUF0ODF TUPSBHF$MBTT/BNFTUBOEBSE SFTPVSDFT SFRVFTUT TUPSBHF(J EBUB4PVSDF LJOE1FSTJTUFOU7PMVNF$MBJN OBNFQWD .BOJGFTUͷ"QQMZ $MPOJOH࣮ߦ QWD QWD
26 ҰาਐΜͩ
4UBUFGVM"QQͷεέʔϧΞτ ‣ σʔλΛ࣋ͭεςʔτϑϧΞϓϦͷεέʔϧΞτͰ σʔλಉظʹ͏ίϐʔ͕ൃੜ͢Δέʔε͕͋Δ ‣ 7PMVNF$MPOJOHେྔͷσʔλΛ࣋ͭεςʔτϑϧΞϓϦΛ εέʔϧΞτͤ͞Δͷʹ༗ޮ /PEFͷ$16.FNPSZ/FUXPSLΛΘͳ͍ͨΊσʔλίϐʔʹΑΔ ੑೳӨڹΛ͑ΒΕΔ
ߴ 27
.Z42-ͷεέʔϧΞτͷྲྀΕ 28 4PVSDF 3FQMJDB 4PVSDF ৽͍͠.Z42-ͷ1PEΛ࡞ /FX 4PVSDF
όοΫΞοϓΛऔಘ /FX #BDLVQ -PH1PTJUJPO 4PVSDF όοΫΞοϓΛΠϯϙʔτ /FX #BDLVQ -PH1PTJUJPO 4PVSDF 3FQMJDBͱͯ͠ىಈ 3FQMJDB ࢀরܥ42- ߋ৽ܥ42- .Z42-$MJFOUT .Z42-Ϛϧνߏ εέʔϧΞτ࣌ͷ3FQMJDB૿ઃεςοϓ 4UPSBHF
.Z42-ͷεέʔϧΞτ 29 ‣ .Z42-ͷόοΫΞοϓσʔλͷड͚͠ʹ௨Γͷํ๏͕͋Γ 4PVSDF /FX #BDLVQ /'4PS0CKFDU4UPSBHF ํ๏ ํ๏
ํ๏ 4PVSDF /FX #BDLVQ 4PVSDF /FX $MPOJOH
ํ๏ͱํ๏ͷҧ͍ 30 4UPSBHF 4UPSBHF ํ๏ 4FSWFS$PQZ ํ๏ 7PMVNF$MPOJOH σʔλͷྲྀΕ
4FSWFS$PQZͰͷεέʔϦϯάྫ ‣ JOJU$POUBJOFSͰεΫϦϓτΛ࣮ߦ͠όοΫΞοϓΛίϐʔ ‣ αΠυΧʔͰεΫϦϓτΛ࣮ߦ͠όοΫΞοϓΛΠϯϙʔτˍ ϩάͷϙδγϣϯΛઃఆͨ͠ޙɺ3FQMJDBͱͯ͠.Z42-Λىಈ ‣ શ.BOJGFTUҎԼΛࢀর IUUQTLVCFSOFUFTJPKBEPDTUBTLTSVOBQQMJDBUJPOSVOSFQMJDBUFETUBUFGVMBQQMJDBUJPO 31
JOJU$POUBJOFST ʜ DPNNBOE CBTI ʜ # Get data from previous peer. ncat --recv-only mysql-$(($ordinal-1)).mysql 3307 | xbstream -x -C /var/lib/mysql # Prepare the backup. xtrabackup --prepare --target-dir=/var/lib/mysql
7PMVNF$MPOJOHͷεέʔϦϯάྫ 32 BQJ7FSTJPOW LJOE1FSTJTUFOU7PMVNF$MBJN NFUBEBUB OBNFEBUBNZTRM TQFD ʜ apiVersion: apps/v1
kind: StatefulSet metadata: name: mysql … volumeClaimTemplates: - metadata: name: data … dataSource: kind: PersistentVolumeClaim name: data-mysql-0 ‣ 4PVSDFͱͳΔ.Z42-ͷ1PE NZTRM ͷ17$ࣄલʹ࡞ ͜ͷͱ͖ͷ17$໊7PMVNF$MBJN5FNQMBUFTͰࣗಈੜ͞ΕΔ໊લ ‣ 4UBUFGVM4FUͷ7PMVNF$MBJN5FNQMBUFͰEBUB4PVSDFʹ্ه17$Λࢦఆ ‣ .Z42-ͷίϯςφͰεΫϦϓτΛ࣮ߦ͠ϩάͷϙδγϣϯΛઃఆޙɺ3FQMJDB ͱͯ͠.Z42-Λىಈ
4FSWFS$PQZWT7PMVNF$MPOJOH ‣ 4FSWFS$PQZͱ7PMVNF$MPOJOHΛͬͨ߹ͷੑೳͷҧ͍ʁ 33
ੑೳଌఆڥ ‣ ,VCFSOFUFTW XPSLFSY W$16Y .FNPSZ.# ‣ /FU"QQ0/5"1W
/FU"QQ5SJEFOU ‣ .Z42- SFTPVSDFTSFRVFTUTDQVN NFNPSZ(J ‣ TZTCFODIʹͯ4PVSDFͷ.Z42-ࣄલʹϨίʔυΛొ .Z42-ͷϨίʔυ ԯϨίʔυɺ(# ‣ 4UBUFGVM4FUͷ3FQMJDBTΛ͔ΒεέʔϧΞτͤ͞ଌఆ 34 TZTCFODIECESJWFSNZTRMNZTRMIPTUNZTRMNZTRMNZTRMVTFSSPPUa UBCMF@TJ[FPMUQ@SFBE@POMZQSFQBSF LVCFDUMTDBMFSFQMJDBTTUBUFGVMTFUNZTRM
ଌఆ݁Ռ 35 εέʔϧΞτʹཁͨ͠૯࣌ؒ 3FQMJDBTˠ 1PE͋ͨΓͷੜ࣌ؒ ฏۉ ˞ TFD1PE TFD1PE 7PMVNF$MPOJOH
4FSWFS$PQZ 5JNF 4FD 4FSWFS$PQZ 7PMVNF$MPOJOH ˞1PEͷίϯςφ͕શͯىಈ͢Δ·Ͱͷ࣌ؒ
ଌఆ݁Ռ 36 7PMVNF $MPOJOH 4FSWFS $PQZ $16 /FUXPSL
7PMVNF$MPOJOHͷҙ 37 ‣ %#ͷεέʔϧ࣌Ճɾߋ৽ͷτϥϯβΫγϣϯ͕ೖΒͳ͍Α͏ʹ 8SJUFϩοΫΛ࣮ߦ͕Ұൠత %#ͷ੩ࢭԽ ‣ 4FSWFS$PQZ1PEͰ࣮ߦ͢ΔεΫϦϓτͰόοΫΞοϓલʹ࣮ࢪՄೳ ‣
7PMVNF$MPOJOHͰ1PEͷੜલʹσʔλͷίϐʔ͕ऴΘ͍ͬͯΔͨΊɺ1PEͰ ࣮ߦ͢ΔεΫϦϓτͰ͍ ࣄલʹखಈͰ42-࣮ߦPSผ1PE͔Β࣮ߦͳͲ 4PVSDF 3FQMJDB σʔλͷແ͍ 17$17Λ࡞ εΫϦϓτ࣮ߦ σʔλίϐʔ .Z42-ىಈ σʔλίϐʔࡁΈͷ 17$17Λ࡞ εΫϦϓτ࣮ߦ .Z42-ىಈ $MPOJOHJO4UPSBHF 4PVSDF 3FQMJDB 4FSWFS$PQZ 7PMVNF$MPOJOH %#ͷ੩ࢭԽ ࣮ࢪ %#ͷ੩ࢭԽ ࣮ࢪ
5PQPMPHZ .VMUJ";3FHJPO ཧ ऀ ͚
;POFΛҙ͍ࣝͯ͠ͳ͍ஔ ‣ 1PEΛ5PQPMPHZ4QSFBE$POTUSBJOUTͰ;POFΛҙࣝͨ͠ஔ ‣ ͔͠͠ɺ7PMVNFͷஔͷߟྀ͕࿙Ε͍ͯΔͱোରࡦͱͯ͠ยखམͪ 39 ,VCFSOFUFT 4UPSBHF "; ";
Ͳͷ";ͷཧϝσΟΞ ͔Β7PMVNF͕ ੜ͞Ε͍ͯΔͷͩΖ͏ʁ " # $ " # $
$4*ͷ5PQPMPHZ"XBSF ‣ 4UPSBHF$MBTTʹͯ;POFΛࢦఆ͠17 7PMVNF ͷੜݩΛࢦఆ 40 "; "; ";༻ ";༻
40 LJOE4UPSBHF$MBTT ʜ BMMPXFE5PQPMPHJFT NBUDI-BCFM&YQSFTTJPOT LFZGBJMVSFEPNBJOLVCFSOFUFTJP[POF WBMVFT "; LJOE4UPSBHF$MBTT ʜ BMMPXFE5PQPMPHJFT NBUDI-BCFM&YQSFTTJPOT LFZGBJMVSFEPNBJOLVCFSOFUFTJP[POF WBMVFT "; ৄࡉͳಈ࡞ݕূͪ͜ΒΛࢀর IUUQTRJJUBDPNZTBLBTIJUBJUFNTCBBDBEDF
41 ҰาਐΜͩ
.VMUJ";3FHJPOোରԠ 42 ‣ ετϨʔδσʔλΛࣦΘͳ͍͜ͱ͕ϛογϣϯͷΠϯϑϥػث ‣ ";3FHJPOোͷରࡦํ๏උ͍͑ͯΔ͜ͱ͕ଟ͍ %JTBTUFS3FDPWFSZରԠ ͲͪΒ͕͑Δ͔ετϨʔδ࣍ୈ
.JSSPS ಉظඇಉظ 4UPSBHF" 4UPSBHF# "; "; # $ " # $ " "; "; %BUB/PEF" #` $` " %BUB/PEF# # $`` "` %BUB/PEF$ #`` $ "`` ϛϥʔʹΑΔোରࡦ σʔλϨϓϦέʔγϣϯʹΑΔࢄஔ # $ "
,VCFSOFUFTͰͷઃܭࢦ 43 ‣ બࢶେ͖ͭ͘ Ϣʔβ͕";3FHJPOΛҙࣝͯ͠17࡞ Ϣʔβʹ";3FHJPOΛҙࣝͤͣ͞ʹ17࡞
Ϣʔβ͕";Λҙࣝͯ͠17࡞ 44 ‣ ";3FHJPOো࣌ͷσʔλফࣦϢʔβ ‣ $4*ͷ5PQPMPHZΛར༻ "; "; ";༻ ";༻
Ϣʔβʹ";Λҙࣝͤͣ͞ʹ17࡞ 45 ‣ ";3FHJPOো࣌ͷσʔλফࣦΠϯϑϥཧऀͷ ‣ ετϨʔδͷػೳΛ׆༻ ϛϥʔPSσʔλϨϓϦέʔγϣϯ ‣ ύϒϦοΫΫϥυͷ߹ɺ4%4ΛηοτΞοϓ͠ߏங͢Δํ๏͋Γ
"; "; "; "; %BUB/PEF" %BUB/PEF# %BUB/PEF$
.POJUPSJOH ཧ ऀ ɾ Ϣ ʔ β
͚
1SPNFUIFVTͷϝτϦΫεࢹ ‣ ετϨʔδͷ7PMVNF͕ͲͷΑ͏ʹίϯςφʹϚϯτ͞Ε͍ͯΔͷ͔Λཧղ ‣ 17ͷϝτϦΫε/PEFͱ֎෦ετϨʔδͷ྆ํ͔Βͷࢹ͕ϕλʔ /PEF ετϨʔδ ωοτϫʔΫͷͲ͜ʹϘτϧωοΫ͕͋Δ͔Λੳ σΟϨΫτϦ
σόΠε EFWTEC NOUEBUB WBSMJCLVCFMFUQPET1PEͷNFUBEBUBVJEWPMVNFTLVCFSOFUFTJPdDTJ17ͷNFUBEBUBOBNFNPVOU EFWTEB /PEFFYQPSUFSͷϞχλϦϯάൣғ LVCFMFUͷϞχλϦϯάൣғ D"EWJTPSͷϞχλϦϯάൣғ ֎෦ετϨʔδ ଂσΟεΫ $POUBJOFS <ࢀߟใετϨʔδؔ࿈ͷϝτϦΫεҰཡ> IUUQTRJJUBDPNZTBLBTIJUBJUFNTDCBCD
48 ҰาਐΜͩ
17$17ࢹͷੑೳࢹ ‣ 17$ 17ͷใLVCFTUBUFNFUSJDTͷϝτϦΫε ੑೳใͳ͠ αΠζɺͳͲ ‣ ੑೳใ/PEFFYQPSUFS
D"EWJTPSͷϝτϦΫε JPTUBU૬ͷใΛऔಘ 49 &MFNFOU 7BMVF kube_persistentvolumeclaim_info{…,namespace=“default”,persistentvolumeclaim=“block-pv- test-0”,storageclass=“standard”,...,volumename="pvc-9639e9ae-de8b-4f24-86f6-72273a74329b"} ྫ LVCF@QFSTJTUFOUWPMVNFDMBJN@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“sda”,instance=“demo-test-worker-default-efe1dfcc-bn6q7”…} ྫ OPEF@EJTL@XSJUUFO@CZUFT@UPUBM
17$ࢹͰͷੑೳࢹͷམͱ݀͠ ‣ (SBGBOB1SPNFUIFVTͰ17$໊17໊ͰੑೳࢹΛ͍ͨ͠ ‣ ϝτϦΫε͕୯७ʹ࿈݁Ͱ͖ͳ͍ LVCFTUBUFNFUSJDTͷϝτϦΫεͷWPMVNFOBNF17໊ͷΈ /PEFFYQPSUFS D"EWJTPSͷϝτϦΫεͷσόΠε໊04Ͱೝࣝͨ͠ͷ
50 &MFNFOU 7BMVF kube_persistentvolumeclaim_info{…,namespace=“default”,persistentvolumeclaim=“block-pv- test-0”,storageclass=“standard”,...,volumename="pvc-9639e9ae-de8b-4f24-86f6-72273a74329b"} ྫ LVCF@QFSTJTUFOUWPMVNFDMBJN@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“sda”,instance=“demo-netapptest-worker-default-efe1dfcc-bn6q7”, …} ྫ OPEF@EJTL@XSJUUFO@CZUFT@UPUBM
ղܾҊ ‣ OPEF@pMFTZTUFN@999ͷϝτϦΫεΛؒʹڬΈղܾ NPVOUQPJOU͔Β17໊ WPMVNFOBNF Λநग़͠࿈݁ 51 &MFNFOU 7BMVF
kube_persistentvolumeclaim_info{…,namespace=“default”,persistentvolumeclaim=“block-pv- test-0”,storageclass=“standard”,...,volumename="pvc-9639e9ae-de8b-4f24-86f6-72273a74329b"} ྫ LVCF@QFSTJTUFOUWPMVNFDMBJN@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“sda”,instance=“demo-test-worker-default-efe1dfcc-bn6q7”…} ྫ OPEF@EJTL@XSJUUFO@CZUFT@UPUBM &MFNFOU 7BMVF node_filesystem_avail_bytes{…,device=“/dev/sda”,fstype=“ext4”,instance="demo-test-worker-default- efe1dfcc-bn6q7",mountpoint="/var/lib/kubelet/pods/d1267489-a972-414a-9b38-987d3a7ea28c/volumes/ kubernetes.io~csi/pvc-9639e9ae-de8b-4f24-86f6-72273a74329b/mount"...} ྫ OPEF@pMFTZTUFN@BWBJM@CZUFT
݁Ռ 52 sum(irate(node_disk_read_bytes_total[5m])) by (device, instance) + on(device, instance) group_left
(persistentvolume, persistentvolumeclaim, namespace) label_replace(label_replace(node_filesystem_size_bytes{mountpoint=~"/var/lib/kubelet/pods/[^/]*/volumes/ kubernetes.io~csi/[^/]*/mount", fstype=~"ext4|xfs"}, "device", "$1", "device", "/dev/(.*)"), "persistentvolume", "$1", "mountpoint", "/var/lib/kubelet/pods/[^/]*/volumes/kubernetes.io~csi/([^/]*)/mount")*0 * on (persistentvolume) group_left (persistentvolumeclaim, namespace) label_replace(kube_persistentvolumeclaim_info, "persistentvolume", "$1", "volumename", "(.+)") ྫΫΤϦʔ
53 ͏ҰาਐΜͩ
Ϛϧνύε-7.Ͱͷམͱ݀͠ ‣ Ϛϧνύε-7.ͰσόΠε໊͕ஔ͖͑ΒΕΔͨΊ࿈݁Ͱ͖ͳ͍ ઌఔͷྫγϯάϧύεͷΈ༗ޮ 54 &MFNFOU 7BMVF kube_persistentvolumeclaim_info{…,namespace=“default”,persistentvolumeclaim=“block-pv- test-0”,storageclass=“standard”,...,volumename="pvc-fdcf278e-7ba0-44da-831b-2092ffcb2589"}
ྫ LVCF@QFSTJTUFOUWPMVNFDMBJN@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“dm-0”,instance=“demo-test-worker-default-efe1dfcc-bn6q7”…} ྫ OPEF@EJTL@XSJUUFO@CZUFT@UPUBM &MFNFOU 7BMVF node_filesystem_avail_bytes{…,device=“”/dev/mapper/mpatha”,fstype=“ext4”,instance="demo-test-worker- default-efe1dfcc-bn6q7",mountpoint="/var/lib/kubelet/pods/d1267489-a972-414a-9b38-987a407bb12f/ volumes/kubernetes.io~csi/pvc-fdcf278e-7ba0-44da-831b-2092ffcb2589/mount"...} ྫ OPEF@pMFTZTUFN@BWBJM@CZUFT 54
ղܾҊ ‣ OPEF@FYQPSUFSͷ*TTVFΛௐࠪˠະղܾ IUUQTHJUIVCDPNQSPNFUIFVTOPEF@FYQPSUFSJTTVFT ‣ /PEFFYQPSUFSͷUFYUpMFDPMMFDUPSΛ։ൃ 55 # HELP
x_node_mountpoints_info Information about mountpoint in node # TYPE x_node_mountpoints_info gauge x_node_mountpoints_info{mountpoint="/", devname="/dev/vda1", device="vda1", fstype="ext4"} 1 x_node_mountpoints_info{mountpoint="/var/lib/kubelet", devname="/dev/vda1", device="vda1", fstype="ext4"} 1 x_node_mountpoints_info{mountpoint="/var/lib/kubelet/pods/d1267489-a972-414a-9b38-987d3a7ea28c/volumes/ kubernetes.io~csi/pvc-9639e9ae-de8b-4f24-86f6-72273a74329b/mount", devname="/dev/mapper/mpatha", device=“dm-0", fstype="ext4"} 1 ։ൃͨ͠textfile collectorͷग़ྗྫ
݁Ռ 56 sum(irate(node_disk_written_bytes_total[5m])) by (device, instance) + on (device, instance)
group_left (volumename, persistentvolumeclaim, namespace) label_replace(node_filesystem_avail_bytes{fstype=~"ext4|xfs"}, "volumename", "$1", "mountpoint", "/var/lib/ kubelet/pods/[^/]*/volumes/kubernetes.io~csi/([^/]*)/mount") * 0 * on(mountpoint, instance) group_left(device, persistentvolumeclaim, namespace) x_node_mountpoints_info{fstype=~"ext4|xfs"} * on (volumename) group_left (persistentvolumeclaim, namespace) kube_persistentvolumeclaim_info ྫΫΤϦʔ
·ͱΊ ‣ Ϣʔβ͚ʹҰาਐΜͩ17ͷ͍ํΛհ 7PMVNF&YQBOTJPO 7PMVNF4OBQTIPU 7PMVNF$MPOJOH ‣
ཧऀ͚ʹҰาਐΜͩ17Λࢧ͑Δڥߏஙʹ͍ͭͯհ 5PQPMPHZ .POJUPSJOH 57