Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PersistentVolumeの一歩進んだ使い方
Search
Yukinori Sakashita
September 09, 2020
Technology
1.9k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PersistentVolumeの一歩進んだ使い方
CloudNative Days Tokyo2020 での発表資料です。
https://event.cloudnativedays.jp/cndt2020/talks/13
Yukinori Sakashita
September 09, 2020
More Decks by Yukinori Sakashita
See All by Yukinori Sakashita
ゼットラボにおける一歩進んだ Kubernetes向けストレージ管理方法
ysakashita
0
400
Kubernetes Persistent Volume向け ゾーン障害への備え
ysakashita
0
2.3k
はじめよう Kubernetes PersistentVolume のバックアップ
ysakashita
3
1.5k
2022年コンテナ/Kubernetes向けストレージ技術の最新動向
ysakashita
9
5.5k
Cloud Nativeに向けた考えるべきポイント
ysakashita
1
380
ステートフルアプリ on Kubernetesの現在と今後の展望
ysakashita
2
930
VM時代からコンテナ時代へストレージ管理の移り変わり
ysakashita
9
8.4k
Kubernetes時代のストレージ
ysakashita
1
750
Persistent Volumeのはじめの一歩
ysakashita
2
1.1k
Other Decks in Technology
See All in Technology
SDDの運用にめげずに向き合った話
sansantech
PRO
0
130
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
190
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
130
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
200
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
330
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
370
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.6k
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
260
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
290
AIアプリを使い分けるための共通ツール基盤を考えてみる#devio2026
osawa
0
240
SREでアラート疲れを 解決しよう!
kairim0
1
190
The Maintainer Container - remaining a saner maintainer
ennael
PRO
1
100
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
GitHub's CSS Performance
jonrohan
1033
470k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
460
Writing Fast Ruby
sferik
630
63k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
Ethics towards AI in product and experience design
skipperchong
2
410
Unsuck your backbone
ammeep
672
58k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Statistics for Hackers
jakevdp
799
230k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
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