Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KubeCon+CNConに見るetcdの未来
Search
Akihiro Ikezoe
January 09, 2019
Technology
10
2.3k
KubeCon+CNConに見るetcdの未来
Akihiro Ikezoe
January 09, 2019
Tweet
Share
More Decks by Akihiro Ikezoe
See All by Akihiro Ikezoe
Kubernetesコントローラーのパフォーマンスチューニング
zoetrope
4
1.2k
Kubernetes Admission Webhook Deep Dive
zoetrope
8
1.4k
Kubernetesオペレータのアンチパターン&ベストプラクティス
zoetrope
11
4.4k
Production-Ready Kubernetesに至るまでの3年間とこれから
zoetrope
4
830
オンプレKubernetesでMySQLクラスタの運用を自動化するためにOperatorを自作している話
zoetrope
5
2.3k
サイボウズを支える技術~インフラ刷新プロジェクトNecoを中心に紹介~
zoetrope
1
1.1k
Kuebernetesクラスタのマルチテナンシーベストプラクティス
zoetrope
8
6.7k
クラウドネイティブなチームづくり
zoetrope
7
3.8k
Open Policy Agent / Gatekeeper 勉強会
zoetrope
5
2.7k
Other Decks in Technology
See All in Technology
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
Larkご案内資料
customercloud
PRO
0
650
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.6k
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.2k
アジャイル開発とスクラム
araihara
0
170
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
340
MC906491 を見据えた Microsoft Entra Connect アップグレード対応
tamaiyutaro
1
530
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
8
1.4k
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
140
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
6.1k
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
1.1k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Six Lessons from altMBA
skipperchong
27
3.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
The Cult of Friendly URLs
andyhume
78
6.2k
Speed Design
sergeychernyshev
27
790
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
How STYLIGHT went responsive
nonsquared
98
5.4k
Transcript
KubeCon + CNCon ʹݟΔ etcd ͷະདྷ Cloud Native Meetup Tokyo
#6 20191݄9 ఴ ໌
• Akihiro IKEZOE (@zoetro) • αΠϘζגࣜձࣾۈ • Πϯϑϥ৽ϓϩδΣΫτ • ࣗࣾσʔληϯλʔʹKubernetesΫϥελΛߏங
• αʔόʔػࡐͷϥΠϑαΠΫϧཧͷࣗಈԽɺKubernetesΫϥελͷӡ༻ࣗ ಈԽπʔϧΛ։ൃ͍ͯ͠Δ 2 ࣗݾհ
KubeCon + CloudNativeCon North America 2018 • αΠϘζ͔Β7໊ͰࢀՃ͠·ͨ͠ɻ • KubeCon
+ CloudNativeCon North America 2018 ݱϨϙʔτ • IUUQTCMPHDZCP[VJPFOUSZ • IUUQTCMPHDZCP[VJPFOUSZ • IUUQTCMPHDZCP[VJPFOUSZ • IUUQTCMPHDZCP[VJPFOUSZ 3
etcdؔ࿈ηογϣϯ • Keynote: 5 Years of etcd: Past, Present, and
Future • What's Next for etcd Cluster Management? • Intro: Cluster Lifecycle SIG • Debugging etcd • Deep Dive: etcd 4
etcd • CoreOSࣾ(ݱRed Hatࣾ)͕։ൃ͢ΔࢄΩʔόϦϡʔετΞ • ಛ • )JHI"WBJMBCMF • 4USPOH$POTJTUFODZ.PEFM
• 3BGUʹΑΔࢄ߹ҙ • 5SBOTBDUJPO 8BUDI -FBTF • ϦʔμʔΤϨΫγϣϯͳͲࢄγεςϜʹඞཁͳػೳΛఏڙ • Kubernetes, Vitess, CoreDNSͳͲଟ͘ͷࢄγεςϜͷόο ΫΤϯυͱͯ͠ར༻͞Ε͍ͯΔɻ 5
etcdͷະདྷ Keynote: 5 Years of etcd: Past, Present, and Future
CoreOSࣾͷOSSͲ͏ͳΔͷ͔ʁ • CoreOS͕Red Hatʹങऩ͞ΕɺRed HatIBMʹങऩ͞ΕΔ༧ఆɻ • Container Linux • 'FEPSB$PSF04͕ޙܧͱͳΔɻ
• ͍ͬͺ͍ϝϯςφϯε͞ΕΔ༧ఆɻ • rkt • 3FE )BUͱͯ͠։ൃܧଓ͠ͳ͍ɻ'FEPSB$PSF04ʹࡌ͞Εͳ͍ɻ • etcd • Ͳ͏ͳΔʁ 7
https://www.cncf.io/blog/2018/12/11/cncf-to-host-etcd/ 8
etcd͕CNCFϓϩδΣΫτʹ • Red Hat͔ࣾΒCNCFʹدଃ͞Εͨɻ • etcdͷϝϯςφͱͱCoreOSͷ֎ͷਓ͕ଟ͍ͷͰɺ ։ൃମ੍ʹେ͖ͳมԽͳͦ͞͏ɻ • ࠓޙ͍҆͢͞ఆੑੑೳͷվળͳͲ͕த৺ɻ •
υΩϡϝϯτͷඋظ͞ΕΔɻ 9
etcdͷ৽ػೳ What's Next for etcd Cluster Management?
ࠓޙetcdʹಋೖ͞ΕΔػೳ • 3BGU-FBSOFS FUDEW • FUDEPQFSBUPS1FSTJTUFOU7PMVNF4VQQPSU FUDEPQFSBUPSW •
4FSWFS%PXOHSBEF FUDEW • $MVTUFSJOJU ఏҊத 11
3BGU-FBSOFS 12
• ωοτϫʔΫஅύέοτϩεͳͲͷো͕ൃੜ͠ ͯɺσʔλͷෆ߹Λൃੜͤ͞ͳ͍͜ͱΛอূ͢Δɻ • Ϋϥελ͔ΒϦʔμʔΛબग़͢Δɻ Ϧʔμʔ͔ΒଞͷϝϯόʔʹϋʔτϏʔτΛૹ৴͠ Ϧʔμʔ͕1͔͍ͭ͠ͳ͍͜ͱΛอূ͢Δɻ • ϦʔμʔΛؚΉաͷϝϯόʔ͕߹ҙͨ͠ͱ͖ʹ σʔλΛίϛοτ͢Δ͜ͱ͕Ͱ͖Δɻ
13 Raft: etcdͷࢄ߹ҙΞϧΰϦζϜ
Network Partition (Split Brain) https://youtu.be/5kAVOQ4APok 14
• Ϋϥελʹ৽͍͠ϝϯόΛՃͨ͠ͱ͖ɺσʔλͷಉظ͕ྃ ͢Δ·Ͱʹ͕͔͔࣌ؒΔɻ • σʔλͷಉظ͕͍ྃͯ͠ͳ͍ϝϯόʔɺࢄ߹ҙͷϝϯ όʔͱͯ͠Χϯτ͞ΕΔɻ 15 ݱঢ়ͷʢલఏʣ
• σʔλಉظதI/Oෛՙ͕ߴ͍ɻϦʔμʔ͔ΒͷϋʔτϏʔτ ϦΫΤετͷλΠϜΞτ͕ൃੜ͘͢͠ͳΔɻ • σʔλಉظதʹωοτϫʔΫஅ͕ൃੜ͢ΔͱɺຊདྷͳΒো ʹ͑͏ΔέʔεͰΫϥελ่յ͕ൃੜͯ͠͠·͏ɻ • ϝϯόʔΛՃ͢Δͱ͖ʹىಈύϥϝʔλΛϛε͍ͬͯΔͱɺ Quorum Size͚ͩ૿͑ͯނোͨ͠ϝϯόʔ͕ΫϥελʹՃ͞
Εͯ͠·͏ɻ 16 ݱঢ়ͷ
17 σʔλಉظલͷωοτϫʔΫஅ https://youtu.be/5kAVOQ4APok
Raft Learner 18 https://youtu.be/5kAVOQ4APok
$MVTUFSJOJU 19
etcdͷىಈΦϓγϣϯ 20
• etcdΫϥελΛ্ཱͪ͛ΔͨΊʹɺϝϯόʔ͝ͱʹ໊લɺ Ϧοεϯ͢ΔΞυϨεɺଞͷϝϯόʔʹࠂ͢ΔURLΛࢦఆ͢ Δඞཁ͕͋Δɻ • ͜ΕΒͷύϥϝʔλΛࢦఆ͠ͳͯ͘ɺDNSΛར༻ͯ͠ɺࣗಈ తʹ໊લΞυϨεΛղܾ͢ΔΈ͕ఏҊ͞Ε͍ͯΔɻ • etcdϝϯόʔͷ্ཱ͕ͪ͛ඇৗʹ؆୯ʹͳΔʂ 21
Cluster init
etcdadm Intro: Cluster Lifecycle SIG
etcdͷӡ༻େม • etcdඇৗʹ؆୯ʹ͍࢝ΊΔ͜ͱ͕Ͱ͖Δɻ • ͔͠͠ɺຊ൪ڥͰӡ༻͠Α͏ͱࢥ͏ͱɺHAߏʹͨ͠Γɺ ূ໌ॻΛཧͨ͠ΓɺΫϥελ่͕յ͠ͳ͍Α͏ʹϝϯόΛ Ճɾআͨ͠Γɺ͍Ζ͍Ζ͍͠ɻ • ӡ༻ΛࣗಈԽ͢Δπʔϧ͕ඞཁͱͳΔ •
Kubernetes্ͷetcdΫϥελͷӡ༻ FUDEPQFSBUPS • ࣮ػVM্ͷetcdΫϥελͷӡ༻ʁ 23
etcdadm https://youtu.be/vtBc0f1ACbM 24
• ࣮ػ7.͚ͷFUDEΫϥελӡ༻ࣗಈԽπʔϧ • ,VCFSOFUFT LVCFBQJTFSWFS ͚ʹಛԽ • $MVTUFS-JGFDZDMF 4*(ʹͯఏҊத •
QMBUGPSNFUDEBEN ͱ LPQFJPFUDENBOBHFS Λϕʔεʹ࣮͕ͯ͠ਐΊΒΕΔ༧ఆɻ • FUDEΫϥελͷߏஙӡ༻ΛࣗಈԽͯ͘͠ΕΔ • ϝϯόʔͷՃআ • όοΫΞοϓͱϦετΞ σΟβελʔϦΧόϦʔ • ΞοϓάϨʔυɺμϯάϨʔυ • ূ໌ॻͷཧ 25 etcdadm
τϥϒϧγϡʔςΟϯά Debugging etcd
σόοάͷΞϓϩʔν https://youtu.be/NVMZBBQ9hsM 27
σόοάʹศརͳπʔϧ • etcdctl • FUDEΛૢ࡞͢ΔͨΊͷඪ४πʔϧɻ • auger • ,VCFSOFUFTQSPUPCVGܗࣜͰFUDEʹσʔλΛ֨ೲ͍ͯ͠Δɻ •
͜ͷσʔλΛσίʔυͯ͠දࣔͯ͘͠ΕΔπʔϧɻ • etcd-dump-logs • 8"-ͷMPHΛμϯϓͯ͠ɺFUDEʹରͯ͠ͲͷΑ͏ͳૢ࡞͕͓͜ͳΘΕ ͔ͨΛ֬ೝ͢Δ͜ͱ͕Ͱ͖Δπʔϧɻ 28
Q&Aܗࣜͷηογϣϯ Deep Dive: etcd
Deep Dive: etcd https://youtu.be/GJqO1TYzVDE 30
ؾʹͳͬͨQ&A • ͳͥσʔλαΠζʹ੍ݶ͕͋Δͷ͔ʁ • σϑΥϧτͰ2GBʢ࠷େ8GBʣͷ੍ݶ͕͋Δɻ • σʔλϕʔεϑΝΠϧΛmmap͢ΔͨΊɺσʔλྔͷϝϞϦ͕ඞཁɻ • ͳͥίϯύΫγϣϯ͕ඞཁͳͷ͔ʁ •
Ωʔ͝ͱͷཤྺΛอ͍࣋ͯ͠Δɻ • ݹ͍ཤྺΛআ͠ͳ͍ͱɺσʔλ༰ྔ͕૿͑ϦετΞ࣌ؒ૿େ͢Δɻ • ͳͥI/OϨΠςϯγʹහײͳͷ͔ʁ • ఆظతʹϦʔμʔ͔ΒϑΥϩϫʔʹϋʔτϏʔτΛૹ৴ͯ͠ɺࢄ߹ҙͷϝ λσʔλΛϑΝΠϧʹอଘ͍ͯ͠Δɻ • ϑΝΠϧॻ͖ࠐΈ͕͍ͱϋʔτϏʔτ͕λΠϜΞτ͢Δɻ(v3.4Ͱվળʁ) • ग़དྷΔ͚ͩSSDΛ͏͖ɻ 31
·ͱΊ
·ͱΊ • etcdKubernetesΛ࢝Ί͍Ζ͍Ζͳͱ͜ΖͰΘΕ͍ͯͯɺ ͳͯ͘ͳΒͳ͍ଘࡏɻ • CNCFϓϩδΣΫτʹՃΘͬͨ͜ͱ͋Γɺࠓޙͷϝϯςφϯ ε҆৺ͯ͠ྑͦ͞͏ɻ • ։ൃऀ͚ͷେ͖ͳ৽ػೳ͋·Γͳͦ͞͏͚ͩͲɺӡ༻ऀ ͚ʹخ͍͠ػೳ͕͍Ζ͍Ζग़͖ͯͦ͏ɻ
33