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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Daiki Hirakata
April 05, 2018
Technology
0
270
Road to k8s
2018/4/5に表参道.rbでLTしたときの資料です。
Daiki Hirakata
April 05, 2018
Tweet
Share
More Decks by Daiki Hirakata
See All by Daiki Hirakata
Firestoreコスト圧縮の旅
bigplants
0
45
Rails on Docker
bigplants
2
570
Next Level Git
bigplants
0
650
AWSを使っているならOpsWorksでDevOpsしよう!
bigplants
1
1.8k
Other Decks in Technology
See All in Technology
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
240
Context Engineeringの取り組み
nutslove
0
360
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
590
配列に見る bash と zsh の違い
kazzpapa3
3
160
Red Hat OpenStack Services on OpenShift
tamemiya
0
120
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
620
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
310
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
820
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
So, you think you're a good person
axbom
PRO
2
1.9k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Un-Boring Meetings
codingconduct
0
200
30 Presentation Tips
portentint
PRO
1
220
Optimizing for Happiness
mojombo
379
71k
Speed Design
sergeychernyshev
33
1.5k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
The browser strikes back
jonoalderson
0
390
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
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Θ͚Δ ͠ • ։ൃڥͷίϯςφ։ൃ͍͢͠Α͏ʹ͢ Δ • ެ։ڥͷίϯςφඞཁͳͷ͚ͩʹ͢Δ