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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Akihiro Ikezoe
January 09, 2019
Technology
2.4k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KubeCon+CNConに見るetcdの未来
Akihiro Ikezoe
January 09, 2019
More Decks by Akihiro Ikezoe
See All by Akihiro Ikezoe
Kubernetesコントローラーのパフォーマンスチューニング
zoetrope
4
2.2k
Kubernetes Admission Webhook Deep Dive
zoetrope
8
1.6k
Kubernetesオペレータのアンチパターン&ベストプラクティス
zoetrope
11
4.9k
Production-Ready Kubernetesに至るまでの3年間とこれから
zoetrope
4
950
オンプレKubernetesでMySQLクラスタの運用を自動化するためにOperatorを自作している話
zoetrope
5
2.5k
サイボウズを支える技術~インフラ刷新プロジェクトNecoを中心に紹介~
zoetrope
1
1.3k
Kuebernetesクラスタのマルチテナンシーベストプラクティス
zoetrope
8
6.9k
クラウドネイティブなチームづくり
zoetrope
7
4k
Open Policy Agent / Gatekeeper 勉強会
zoetrope
5
3k
Other Decks in Technology
See All in Technology
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
9.8k
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
300
RAG を使わないという選択肢
tatsutaka
1
170
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
24k
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
750
Android の公式 Skill / Android skills
yanzm
0
120
JSAI2026 オーガナイズドセッションOS-27「不動産とAI」趣旨説明 / JSAI2026 Organized Session OS-27 “Real Estate and AI”: Statement of Purpose
ykiyota
0
230
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
200
Chainlitで作るお手軽チャットUI
ynt0485
0
190
Snowflakeと仲良くなる第一歩
coco_se
4
420
手塩にかけりゃいいってもんじゃない
ming_ayami
0
250
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
290
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
11
38k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
How to build a perfect <img>
jonoalderson
1
5.6k
Everyday Curiosity
cassininazir
0
230
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Between Models and Reality
mayunak
4
330
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
330
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
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