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.3k
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
はじめよう Kubernetes PersistentVolume のバックアップ
ysakashita
2
350
2022年コンテナ/Kubernetes向けストレージ技術の最新動向
ysakashita
8
4.1k
Cloud Nativeに向けた考えるべきポイント
ysakashita
1
120
ステートフルアプリ on Kubernetesの現在と今後の展望
ysakashita
2
490
VM時代からコンテナ時代へストレージ管理の移り変わり
ysakashita
9
6.4k
Kubernetes時代のストレージ
ysakashita
1
530
Persistent Volumeのはじめの一歩
ysakashita
2
640
ストレージの基礎
ysakashita
54
19k
ヤフー/ゼットラボのステートフルアプリケーションへの挑戦(前半)
ysakashita
5
4.8k
Other Decks in Technology
See All in Technology
SmartHRからOktaへのSCIM連携で作り出すHRドリブンのアカウント管理
jousysmiler
1
120
NGINXENG JP#2 - 2-NGINXの動作の詳細
hiropo20
1
140
ユーザーテストガイドライン VERSION 2.0
kouzoukaikaku
0
1.3k
IoTを始めたきっかけの話と個人でできるIoTの今後 / 新年LT会「私の愛するIoT 2023」
you
0
230
Raspberry Pi Camera 3 介紹
piepie_tw
PRO
0
150
PHPのimmutable arrayとは
hnw
1
160
JAWS-UG 横浜 #54 資料
takakuni
0
210
USB PD で迎える AC アダプター大統一時代
puhitaku
2
1.9k
PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf
cvmlexpertguide
0
170
金属加工屋の営業マンがSTマイクロで・・・
usashirou
0
160
私見「UNIXの考え方」/20230124-kameda-unix-phylosophy
opelab
0
160
Pentesting Password Reset Functionality
anugrahsr
0
470
Featured
See All Featured
Done Done
chrislema
178
14k
BBQ
matthewcrist
75
8.1k
Documentation Writing (for coders)
carmenintech
51
2.9k
4 Signs Your Business is Dying
shpigford
171
20k
A Tale of Four Properties
chriscoyier
149
21k
Statistics for Hackers
jakevdp
785
210k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Three Pipe Problems
jasonvnalue
89
8.9k
Why Our Code Smells
bkeepers
PRO
326
55k
The Pragmatic Product Professional
lauravandoore
21
3.4k
No one is an island. Learnings from fostering a developers community.
thoeni
12
1.5k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
13
5.4k
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
[email protected]
[F
[email protected]
@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"} ྫ
[email protected]
@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“sda”,instance=“demo-test-worker-default-efe1dfcc-bn6q7”…} ྫ
[email protected]
@
[email protected]
@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"} ྫ
[email protected]
@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“sda”,instance=“demo-netapptest-worker-default-efe1dfcc-bn6q7”, …} ྫ
[email protected]
@
[email protected]
@UPUBM
ղܾҊ ‣
[email protected]
@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"} ྫ
[email protected]
@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“sda”,instance=“demo-test-worker-default-efe1dfcc-bn6q7”…} ྫ
[email protected]
@
[email protected]
@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"...} ྫ
[email protected]
@
[email protected]
݁Ռ 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"}
ྫ
[email protected]
@JOGP &MFNFOU 7BMVF node_disk_written_bytes_total{…,device=“dm-0”,instance=“demo-test-worker-default-efe1dfcc-bn6q7”…} ྫ
[email protected]
@
[email protected]
@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"...} ྫ
[email protected]
@
[email protected]
54
ղܾҊ ‣
[email protected]
ͷ*TTVFΛௐࠪˠະղܾ IUUQTHJUIVCDPNQSPNFUIFVT
[email protected]
JTTVFT ‣ /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