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.4k
KubeCon+CNConに見るetcdの未来
Akihiro Ikezoe
January 09, 2019
Tweet
Share
More Decks by Akihiro Ikezoe
See All by Akihiro Ikezoe
Kubernetesコントローラーのパフォーマンスチューニング
zoetrope
4
2k
Kubernetes Admission Webhook Deep Dive
zoetrope
8
1.5k
Kubernetesオペレータのアンチパターン&ベストプラクティス
zoetrope
11
4.7k
Production-Ready Kubernetesに至るまでの3年間とこれから
zoetrope
4
910
オンプレKubernetesでMySQLクラスタの運用を自動化するためにOperatorを自作している話
zoetrope
5
2.4k
サイボウズを支える技術~インフラ刷新プロジェクトNecoを中心に紹介~
zoetrope
1
1.2k
Kuebernetesクラスタのマルチテナンシーベストプラクティス
zoetrope
8
6.8k
クラウドネイティブなチームづくり
zoetrope
7
3.9k
Open Policy Agent / Gatekeeper 勉強会
zoetrope
5
2.9k
Other Decks in Technology
See All in Technology
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
130
Oracle Cloud Infrastructure:2025年12月度サービス・アップデート
oracle4engineer
PRO
0
150
M&Aで拡大し続けるGENDAのデータ活用を促すためのDatabricks権限管理 / AEON TECH HUB #22
genda
0
310
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
AWS re:Inventre:cap ~AmazonNova 2 Omniのワークショップを体験してきた~
nrinetcom
PRO
0
120
Redshift認可、アップデートでどう変わった?
handy
1
120
日本Rubyの会: これまでとこれから
snoozer05
PRO
6
250
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
1.2k
Introduce marp-ai-slide-generator
itarutomy
0
160
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
240
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
620
技術選定、下から見るか?横から見るか?
masakiokuda
0
170
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Making Projects Easy
brettharned
120
6.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
96
Un-Boring Meetings
codingconduct
0
170
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
Believing is Seeing
oripsolob
0
18
4 Signs Your Business is Dying
shpigford
187
22k
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