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
Road to k8s
Search
Daiki Hirakata
April 05, 2018
Technology
280
0
Share
Road to k8s
2018/4/5に表参道.rbでLTしたときの資料です。
Daiki Hirakata
April 05, 2018
More Decks by Daiki Hirakata
See All by Daiki Hirakata
Firestoreコスト圧縮の旅
bigplants
0
51
Rails on Docker
bigplants
2
580
Next Level Git
bigplants
0
660
AWSを使っているならOpsWorksでDevOpsしよう!
bigplants
1
1.8k
Other Decks in Technology
See All in Technology
JJUG CCC 2026 Spring AI時代の開発こそ標準化を武器に! ― 方式・プロセス・プラットフォームの標準化
s27watanabe
2
630
組織の中で自分を経営する技術
shoota
0
230
layerx-fde-practices
cipepser
6
2.9k
Diagnosing performance problems without the guesswork
elenatanasoiu
0
130
OpenClawとHermesAgentでAI新入社員を作った話
takanoriyanada
0
150
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
190
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
400
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
130
Kiro CLI v2.0.0がやってきた!
kentapapa
0
220
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
250
APIテストとは?
nagix
0
160
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
710
Accessibility Awareness
sabderemane
1
130
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
How to Ace a Technical Interview
jacobian
281
24k
Designing Powerful Visuals for Engaging Learning
tmiket
1
390
エンジニアに許された特別な時間の終わり
watany
107
240k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Chasing Engaging Ingredients in Design
codingconduct
0
200
Transcript
Road to k8s @bigplants Apr 5th 2018 @Omotesando.rb
Who am I ? • Daiki Hirakata (36) • Software
Engineer • Main Programing Languages: PHP, Ruby • Primary interests: DevOps, Docker, Kubernetes, Microservice Architecture, GCP @bigplants
ͪΐͬͱ͚ͩએ
ઈࢍ։ൃऀืूதʂ • ϓϩμΫτ໊: ALL-IN • اۀ׆ಈͰඞཁͳશͯͷ πʔϧ͕ೖ͍ͬͯΔ • Rails, Angular,
AWS • גࣜձࣾϏδωεόϯΫ άϧʔϓ
ࠓɺRailsͷdockerҠߦͷ Λ͠·͢ɻ
Agenda • ݱঢ়ͷ՝ • Dockerɺk8sͷ • ࠓޙͷϩʔυϚοϓ
ݱঢ়ͷ՝ͦͷ̍
͜ΕԿͷࣈͰ͠ΐ͏ʁ 3/6
ਖ਼ղɺ ฐࣾͰ̍͜͜ʙ̎ϲ݄ʹ vagrantͷ։ൃڥ͕յΕͨ ਓͷ
ݱঢ়ͷ՝ͦͷ̎
σϓϩΠɺεέʔϧΞτ ͕༰қͰͳ͍
ݱঢ়ͷDevOpsपΓͷཧ • ChefͰϓϩϏδϣχϯά • CapistranoͰRailsΞϓϦΛσϓϩΠ • ShellscriptͰϑϩϯτΤϯυͷAngularΛσϓ ϩΠ
DevOpsͷ՝ • ֤ఔ͕அ͞Ε͍ͯͯγʔϜϨεʹσϓϩΠ Ͱ͖ͳ͍(ख͕૿͑Δ) • Αͬͯzero-downtimeͷσϓϩΠ͕Ͱ͖ͳ͍ • σϓϩΠ͔͔࣌ؒΔ(30min - 3h)
• ChefͰႈੑͷ୲อ͕༰қͰͳ͍
ͦ͏ͩʂίϯςφ͓͏ʂ
ίϯςφͷϝϦοτ • σϓϩΠ͕ߴɻίϯςφΠϝʔδΛ෮ݩ͢ Δ͚ͩɻ • ͳͷͰ։ൃڥ͕յΕͨͱͯ͠࡞Γ͢ͷ ͕͍ɻ • σϓϩΠ͕ίϯςφΛஔ͖͑ΔҙຯʹͳΔ ͷͰႈੑͷ୲อ͕͍͢͠ɻ
յΕ͍͍ͨͬͯ͡Όͳ͍͔ ίϯςφͩͷ
ίϯςφ ΦʔέετϨʔγϣϯɺ k8s (Kubernetes)Ͱʂ
k8sͷϝϦοτ • ίϯςφͷӡ༻ࣗಈԽͷΈ͕͍ͬͯΔ • Φʔτεέʔϧ (ίϯςφɺϊʔυ) • ࣗಈϦΧόϦ • σϓϩΠํ๏ͷબࢶ͕͋Δ
ϩʔϦϯάΞοϓσʔτɺΧφϦΞϦϦʔε • ίϛϡχςΟ͕׆ൃ • Ϋϥυϕϯμʹґଘ͠ͳ͍ • ڠࢍاۀɺஂମ͕ࢁ <- CNCF Λࢀর
Docker, k8sͷ • ඞཁͳίϯςφ • docker-composeͱk8s • Dockerfile
ඞཁͳίϯςφ • App1(rails) • Worker(rails) • App2(Node.js) • App3(Node.js) •
App4(Node.js) • Nginx • Redis • MySQL • Elasticsearch
docker-composeͱk8s • ։ൃڥͱެ։ڥΛͲͬͪk8sͰΓൈ͘ ͷਏ͍ɻ • ։ൃڥ docker-compose • ެ։ڥ k8s
Ͱ͍͘
Dockerfile • ։ൃڥͱެ։ڥͰDockerfileҰॹʹͰ͖ ͳ͍ɻ • ཧ༝ɺެ։ڥ༻ͷdocker imageσϦόϦ Մೳ(ιʔείʔυؚΊ͕ͯ͢ύοΫ͞Εͨঢ় ଶ)Ͱͳ͚Ε͍͚ͳ͍ɻ •
͕ɺ։ൃڥͦΕͩͱ͍উख͕ѱ͗͢Δɻ
։ൃڥͷDockerfile • ࣮ߦ͢Δඞཁͷ͋Δπʔϧͯ͢Πϯετʔ ϧ ruby, bundle, elasticsearch, nodeͳͲ • ىಈ࣌ʹඞཁͳ࡞ۀEntrypointͰ࣮ߦ
։ൃڥͷDockerfileͷҰ෦ൈਮ
ެ։ڥͷDockerfile • ඞཁͳπʔϧ ruby, bundler, node • ඞཁͳ͍πʔϧ elasticsearch •
ιʔείʔυΛؚΊΔ
ެ։ڥͷDockerfileͷҰ෦ൈਮ
͞Βʹ͔͜͜Β
Docker Multi-stage build • ҰͭͷDockerfileʹෳͷFROM۟ΛೖΕΒΕΔ • npm, bower, bundlerඞཁͳ࠷ऴతʹు͖ग़͞Εͨ ϑΝΠϧ͚ͩΛ֤εςʔδ͔Βίϐʔ͢Δࣄ͕Ͱ͖Δ
• bundler, node(ͦΕͧΕͷґଘͨ͠native lib)image ͔Β֎ͤΔ • ͜ΕͰimage͕ܰྔԽͰ͖Δ
ࠓޙͷϩʔυϚοϓ • ։ൃ༻ίϯςφ४උ • ެ։༻ίϯςφ४උ <- ΠϚίί • GKEʹσϓϩΠ •
CI/CDύΠϓϥΠϯͷඋ • ୭Ͱ͓खܰʹk8sΫϥελʹڥߏங&σϓϩΠͰ͖Δ Α͏ʹ͢Δ
·ͨਐḿڞ༗͠·͢
ࠓͷ·ͱΊ • ։ൃڥͱެ։ڥͰDockerfileΘ͚Δ ͠ • ։ൃڥͷίϯςφ։ൃ͍͢͠Α͏ʹ͢ Δ • ެ։ڥͷίϯςφඞཁͳͷ͚ͩʹ͢Δ