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.1k
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
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
5.5k
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
230
AndroidデバイスにFTPサーバを建立する
e10dokup
0
240
自動テストの世界に、この5年間で起きたこと
autifyhq
10
7.6k
10分で紹介するAmazon Bedrock利用時のセキュリティ対策 / 10-minutes introduction to security measures when using Amazon Bedrock
hideakiaoyagi
0
170
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1.2k
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
3
310
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
600
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
740
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
1
120
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
300
Googleマップ/Earthが一般化した 地図タイルのイマ
mapconcierge4agu
1
200
Featured
See All Featured
Designing Experiences People Love
moore
139
23k
Writing Fast Ruby
sferik
628
61k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Code Review Best Practice
trishagee
66
17k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
How to Ace a Technical Interview
jacobian
276
23k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Docker and Python
trallard
44
3.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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