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
Knative Serving 入門 / kubernetes meetup 13
Search
Ryo Takaishi
September 28, 2018
Technology
1.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Knative Serving 入門 / kubernetes meetup 13
https://k8sjp.connpass.com/event/100842/
Ryo Takaishi
September 28, 2018
More Decks by Ryo Takaishi
See All by Ryo Takaishi
通知再考 ~ 最高のアラート通知を今改めて考える ~
takaishi
0
520
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
460
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
900
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
630
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
13
13k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
2.1k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.8k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
1k
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.7k
Other Decks in Technology
See All in Technology
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
180
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
400
Claude Code 珍プレー好プレー
shinyasaita
0
280
生成AI活用によるODC欠陥分析の分類高速化の実践と導入効果 / 20260703 Suguru Ishii
shift_evolve
PRO
2
100
SRE Lounge Hiroshimaへの招待
grimoh
0
360
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
2.4k
Why is RC4 still being used?
tamaiyutaro
0
300
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1.3k
生成AIの活用/high_school2026
okana2ki
0
110
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
520
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
A designer walks into a library…
pauljervisheath
211
24k
4 Signs Your Business is Dying
shpigford
187
22k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
380
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Marketing to machines
jonoalderson
1
5.6k
Transcript
∁ੴྒ / GMO Pepabo, Inc. 2018-09-28 Kubernetes Meetup #13 ,OBUJWF4FSWJOHೖ
∁ੴ ྒ / @r_takaishi TAKAISHI Ryo https://repl.info/ Belgian beer Ruby,
Go Kubernetes, OpenStack
∁ੴ ྒ / @r_takaishi TAKAISHI Ryo •ιϑτΣΞΤϯδχΞ @ GMOϖύϘ •ΣϒαʔϏεͷج൫ߏஙɾӡ༻
•࠷ۙFluentdͷϓϥάΠϯΛॻ͍͍ͯ·͢ •OpenStackΛͬͨϓϥΠϕʔτΫϥυӡ༻ •Kubernetes on OpenStackڥͷߏங •ؒืूதʂ
,OBUJWF
,OBUJWF4FSWJOH
• Knative ServingͷΞʔΩςΫνϟࢥʹ͍ͭͯ • ಛతͳػೳͷ1ͭͰ͋Δθϩɾεέʔϧʹ͍ͭͯ • ୭Λରͱͨ͠ϓϩμΫτͳͷ͔ʁզʑͲ͏͢Ε͍͍ͷ͔ʁ !6 ࠓ͢͜ͱ
• Knative Eventing • Knative Building • ෦࣮ !7 ࠓ͞ͳ͍͜ͱ
݁
• Knative ServingͷΰʔϧɺPaaS/FaaSͷ֓೦ΛؚΉαʔόʔϨεϫʔΫϩʔ υͷͨΊͷAPIͱπʔϧΛఏڙ͢Δ͜ͱ • ԠతʹΞϓϦέʔγϣϯΛىಈɾεέʔϧ͠ɺར༻͕ͳ͚Εఀࢭ͢ΔΞʔ ΩςΫνϟͰ͋Δ • 20189݄࣌ͰΞʔΩςΫνϟͱAPIͷΈఏڙ͞Ε͍ͯΔঢ়گɻʢ·ͩެ ࣜͰͳ͍͕ʣCLIπʔϧ͕ొ࢝͠Ί͍ͯΔ
• IaaSɺCaaSɺPaaSͱ͍ͬͨج൫ٕज़ͷԆઢ্ʹ͋ΔϓϩμΫτͰɺKnative Ͱͳ͍͍͕ͯ͘ߟ͑ํ͓ͬͯ͘ͱΑ͍ͱࢥ͏ !9 ݁ɿ,OBUJWF4FSWJOHͱԿͳͷ͔
,OBUJWF͕ࢦ͢ΰʔϧ
• Google Cloud Next 2018Ͱൃද͞Εͨʢ20187݄ʣ • αʔόʔϨεΛఏڙ͢ΔϓϥοτϑΥʔϜ • Kubernetes্ʹߏங !11
,OBUJWFʁ
• BuildɿίϯςφΠϝʔδΛϏϧυ͢Δ • EventingɿΠϕϯτͷσϦόϦʔΛཧ͢Δ • ServingɿϦΫΤετۦಈͰίϯςφΛىಈɾεέʔϧ͢Δ !12 ,OBUJWF
None
• Knative ServingͷΰʔϧɺαʔόʔϨεϫʔΫϩʔυͷͨΊͷ APIͱπʔϧΛఏڙ͢Δ͜ͱ • ެࣜͷCLIπʔϧɺGUI·ͩͳ͍ͬΆ͍ • cppforlife/knctlɿίϛϡχςΟϦιʔεͰ։ൃ͞Ε͍ͯΔ༷ • CLI͚ͩͰσϓϩΠτϥϑΟοΫׂ͕࣮ݱՄೳʹͳΔʁ
!14 ,OBUJWF4FSWJOH͕ࢦ͢ΰʔϧ https://github.com/knative/serving/blob/v0.1.1/docs/spec/motivation.md
αʔόʔϨεʁ
!16 • εςʔτϨεͰ͋Δ͜ͱ • ϓϩηεͷεέʔϧΞτ͕ద༻ՄೳͰ͋Δ͜ͱ • ओʹΞϓϦέʔγϣϯϨϕϧʢL7ɺྫ͑HTTPʣͷϦΫΤεττ ϥϑΟοΫʹΑͬͯۦಈ͢Δ͜ͱ αʔόʔϨεɾϫʔΫϩʔυ
• ͪΖΜବͰͳ͍ • KubernetesαʔόʔϨεϫʔΫϩʔυΛѻ͑ΔϦιʔεΛఏڙ͠ ͍ͯΔʢDeploymentɺServiceͳͲʣ • ͔͠͠ɺ͜ΕΒͷϦιʔεΞϓϦέʔγϣϯ։ൃऀ͔Βݟͨͱ͖ɺ ेʹγϯϓϧͱݴ͑ͳ͍ !17 ,VCFSOFUFTͰବͳͷ͔
• Kubernets্ͷΞϓϦέʔγϣϯϓϥοτϑΥʔϜʹڞ௨͕ଟ ͍ • Knativeڞ௨Λඪ४ԽɾΧελϜϦιʔεԽ͢Δ • ͜ΕʹΑΓΞϓϦέʔγϣϯ։ൃऀ͔ΒݟͨΠϯϑϥΛநԽ͢Δ !18 ,VCFSOFUFTͰବͳͷ͔
ߏཁૉ
• CRD(Custom Resource Definitions)Ͱఆٛ • Revision • Configuration • Route
• Service !20 ,OBUJWF4FSWJOH͕ఏڙ͢ΔϦιʔε Route Configuration Revision Service Revision Revision NBOBHFT SPVUFUSB⒏DUP SFDPSEIJTUPSZPG
• Revision • ίʔυͱઃఆͷεφοϓγϣοτ • ConfigurationʹΑͬͯ࡞ !21 ,OBUJWF4FSWJOH͕ఏڙ͢ΔϦιʔε Route Configuration
Revision Service Revision Revision NBOBHFT SPVUFUSB⒏DUP SFDPSEIJTUPSZPG
• Configuration • ࠷৽ͷRevisionʹ͍ͭͯͷهड़ • Configurationͷߋ৽ʹΑΓɺ৽͍͠ Revision͕࡞ΒΕΔ !22 ,OBUJWF4FSWJOH͕ఏڙ͢ΔϦιʔε Route
Configuration Revision Service Revision Revision NBOBHFT SPVUFUSB⒏DUP SFDPSEIJTUPSZPG
• Route • αʔϏε͚ΤϯυϙΠϯτΛఏڙ • ΤϯυϙΠϯτͷޙΖʹ1ͭҎ্ͷ Revision͕ଘࡏ • ύʔηϯςʔδϕʔεͰτϥϑΟοΫ Λׂ
!23 ,OBUJWF4FSWJOH͕ఏڙ͢ΔϦιʔε Route Configuration Revision Service Revision Revision NBOBHFT SPVUFUSB⒏DUP SFDPSEIJTUPSZPG
• Service • RouteͱConfigurationΛ࡞͢Δ • جຊతʹServiceΛ͏ͱָ • KubernetesͷDeploymentͱ ReplicaSetͷؔ !24
,OBUJWF4FSWJOH͕ఏڙ͢ΔϦιʔε Route Configuration Revision Service Revision Revision NBOBHFT SPVUFUSB⒏DUP SFDPSEIJTUPSZPG
• Blue Green DeploymentͷσϞ • ৽͍͠όʔδϣϯͷΞϓϦέʔγϣϯʹঃʑʹτϥϑΟοΫΛྲྀ͠ ͍ͯ͘ !25 %FNP
εέʔϦϯά
• Knative ServingϦΫΤετΛτϦΨʔͱͯ͠ΞϓϦέʔγϣϯΛ ىಈɾεέʔϧΞτ͢Δ • Pod1͋ͨΓͷෛՙ͕ৗʹҰఆʹͳΔΑ͏ʹPodͷΛ૿ݮ͢Δ • Horizontal Auto Scaling
• ϦΫΤετ͕Ұఆظؒͳ͍߹ɺPodͷΛ0ʹͯ͠Ϧιʔεޮ Λ্͛Δ͜ͱͰ͖Δ !27 ,OBUJWFͷεέʔϦϯάͱԿ͔
!28 ΦʔτεέʔϧͷΈ Istio Route Route Revision Pods Deployment Autoscaler Activator
inactive route active route watch first activate metrics resize create/delete
!29 ༻ޠ Knative Serving Revision ϢʔβʔͷίʔυͱઃఆͷεφοϓγϣοτΛѻ͏ΧελϜϦιʔε Knative Serving Route RevisionͷIstioͷΠϯάϨεϧʔϧΛ௨ͯ͠ΫϥΠΞϯτʹެ։͢ΔΧελϜϦιʔε
Kubernetes Deployment Podͱͯ͠ಈ͘ίϯςφͷϥΠϑαΠΫϧΛཧ͢ΔKubernetesͷϦιʔε Knative Serving Autoscaler Ϣʔβʔͷίʔυ͕ಈ͘PodͷෛՙΛࢹ͢ΔͨΊͷDeploymentɻ PodͷෛՙΛҰఆʹอͭΑ͏ʹϢʔβʔίʔυ༻ͷDeploymentͷαΠζΛ૿ݮ͢Δ Knative Serving Activator KnativeͰϦΫΤετ͕ಧ͍ͨ࣌ɺͦΕΛड͚औΔPod͕ͳ͍Մೳੑ͕͋Δɻ ͦ͏͍͏࣌ʹϦΫΤετΛड͚औΔDeploymentɻPodΛىಈ͠ɺϦΫΤετΛϑΥϫʔυ͢Δ Concurrency ॠؒॠؒͰॲཧ͍ͯ͠ΔϦΫΤετͷ
!30 1PE͕ىಈ͍ͯ͠ͳ͍߹ Istio Route Route Revision Pods Deployment Autoscaler Activator
inactive route active route watch first activate metrics PodͷىಈΛࢹ PodΛىಈ͢Δ create/delete resize
!31 1PE͕ىಈ͍ͯ͠Δ߹ Istio Route Route Revision Pods Deployment Autoscaler Activator
inactive route active route watch first activate metrics Pod͕ىಈ͍ͯ͠Δ߹ɺ ϦΫΤετPod AutoscalerPodͷ ϝτϦοΫΛࢹ create/delete resize
!32 1PEͷෛՙ͕ߴ͗͢Δ͗͢Δ߹ Istio Route Route Revision Pods Deployment Autoscaler Activator
inactive route active route watch first activate create/delete metrics resize
• Fast Brain • Pod1ຖͷಉ࣌ཁٻͷਫ४Λҡ࣋͢Δ • ྫɿPod1͕1ඵ͋ͨΓ100ϦΫΤετΛॲཧ͢ΔΑ͏Λ૿ݮ • Slow Brain
• Fast BrainͰ͏ਫ४ΛCPUϝϞϦɺϨΠςϯγͳͲͷ౷ܭʹج͍ͮͯ ఏҊ͢Δ • v0.1.1Ͱະ࣮ʢϋʔυίʔυ͞Ε͍ͯΔʣ !33 "VUPTDBMFSͭͷΛ࣋ͭ
ཧղΛਂΊΔ
Ϧιʔεͱ͔εέʔϧͷΈͱ͔ ݟͤΒΕ͚ͨͲɺ݁ہͲ͏͍͏ͷ ͳͷ
• ॏཁͳͷϦΫΤετͰۦಈ͢Δɺͱ͍͏ • ίϯςφͰநԽ͢ΕͲͪΒಉ͡Α͏ʹۦಈͰ͖Δ • ΞϓϦέʔγϣϯͷ߹ىಈޙϓϩηε͕ಈ͖ଓ͚Δ • ΞΫηε͕ͳ͚ΕϓϩηεΛऴྃ • ϑΝϯΫγϣϯϦΫΤετͰۦಈɺ࣮ߦޙऴྃ
• => FaaS༝དྷͷΠϕϯτۦಈOK !36 ,OBUJWFΞϓϦέʔγϣϯͱϑΝϯΫγϣϯΛ۠ผ͠ͳ͍
ϦΫΤετͰϓϩηε͕ىಈ ΞΠυϧঢ়ଶͳΒϓϩηεΛఀࢭ
͋Εʜʁ͜ͷΈɺ Ͳ͔͜Ͱݟͨ͜ͱ͕͋ΔΑ͏ͳʜʁ
ḪΔ͜ͱલʜ
͏গ͠ḪΖ͏
ḪΔ͜ͱલʜ
'BTU$(*
• CGIɿϦΫΤετຖʹϓϩηεੜɾഁغΛ࣮ߦ • FastCGIɿϦΫΤετຖʹϓϩηεΛੜɺ͍ճ͢͜ͱͰੑೳUpɻΞΠυ ϧঢ়ଶ͕ଓ͍ͨ߹ϓϩηεΛഁغ • KnativeɿॳճϦΫΤετ࣌ʹPodΛੜɺFunctionͰͳ͚Ε͍ճ͢ɻϦ ΫΤετ͕Ұఆظؒಧ͔ͳ͚ΕPodΛऴྃ !43 'BTU$(*
ࣅͨΈͩʂ
• ϓϩΞΫςΟϒੑ • ΞϓϦέʔγϣϯ͕͋Β͔͡Ίىಈ͓ͯ͠Γɺঢ়ଶͷଈ࣌มߋͰ͖ͳ͍͕ߴͳॲཧ͕ Մೳͳੑ࣭ • ىಈͬ͠ͺͳ͠ͳͷͰϦιʔεޮѱ͍ • ࣄલʹαʔόΛىಈͯ͠ΞΫηεʹඋ͑ΔΞϓϩʔν •
ϦΞΫςΟϒੑ • ϦΫΤετʹԠͯ͡ΞϓϦέʔγϣϯΛىಈ͢Δੑ࣭ͷ͜ͱ • ىಈͱఀࢭͷίετ͕͋Δ͕ɺϦιʔεޮΑ͍ • ΞϓϦέʔγϣϯݱ࣮తͳ࣌ؒͰىಈͯ͘͠Δ͜ͱ͕લఏ !45 ϓϩΞΫςΟϒੑͱϦΞΫςΟϒੑ
• ϓϩΞΫςΟϒੑ • ΞϓϦέʔγϣϯ͕͋Β͔͡Ίىಈ͓ͯ͠Γɺঢ়ଶͷଈ࣌มߋͰ͖ͳ͍͕ߴͳॲཧ͕ Մೳͳੑ࣭ • ىಈͬ͠ͺͳ͠ͳͷͰϦιʔεޮѱ͍ • ࣄલʹαʔόΛىಈͯ͠ΞΫηεʹඋ͑ΔΞϓϩʔν •
ϦΞΫςΟϒੑ • ϦΫΤετʹԠͯ͡ΞϓϦέʔγϣϯΛىಈ͢Δੑ࣭ͷ͜ͱ • ΞϓϦέʔγϣϯݱ࣮తͳ࣌ؒͰىಈͯ͘͠Δ͜ͱ͕લఏ • ىಈͱఀࢭͷίετ͕͋Δ͕ɺϦιʔεޮΑ͍ !46 ϓϩΞΫςΟϒੑͱϦΞΫςΟϒੑ •CGIFastCGIɺFaaS͕֘ •FastCGIϦιʔεޮͱੑೳͷཱ྆ͷͨΊҰఆظؒىಈ •FaaSϦΞΫςΟϒੑΛ࣋ͭϓϥοτϑΥʔϜͷҰͭ
• @matsumotoryʹΑΓఏҊ(2017) !47 'BTU$POUBJOFSͱ͍͏ΞʔΩςΫνϟ
• ΠϯελϯεՃॲཧ͕Ͱ͋Δ • ֎෦͔ΒͷఆظతͳࢹΛ༻͍ͨݕͱεέʔϧͩͱཻ͕ૈ͍ • VMͷ߹ɺىಈ͕ಥൃΞΫηεʹؒʹ߹Θͳ͍έʔε͕͋Δ • Ϧιʔεͷར༻ޮͷ͞ • جຊతʹΠϯελϯε͕ىಈɺϦιʔεΛ༗͠ଓ͚Δ
!48 'BTU$POUBJOFSͲͷΑ͏ͳʹର͢ΔఏҊ͔
None
• FastContainerϗεςΟϯάαʔϏεͱ͍͏ྲྀΕͷ্ʹੜ·Εͨߟ ͑ํ • KnativeKubernetesCloud Nativeͱ͍͏ྲྀΕͷ্ʹੜ·Εͨϓ ϩμΫτ • গ͠ҧ͏จ຺͔Βɺಉ͡Α͏ͳͷ͕ొ͖͍ͯͯ͠Δ •
ϦΞΫςΟϒͳϓϥοτϑΥʔϜ͕ࠓޙ૿͑Δʁ !50 ,OBUJWFͱࣅͨΞʔΩςΫνϟଞʹଘࡏ͢Δ
• KnativeԠతʢϦΞΫςΟϒʣʹΞϓϦέʔγϣϯϑΝϯΫγϣϯΛ ىಈ͠ɺෛՙʹԠͯࣗ͡ಈ૿ݮ͢Δ • ΞϓϦέʔγϣϯɺϑΝϯΫγϣϯΛΘͣϦΞΫςΟϒͳΈ͕ࠓޙ૿ ͑ͯ͘ΔͷͰͳ͍͔ʢAmazon Aurora Serverlessʣ • CGI࣌HTTPϦΫΤετ͚͕ͩͩͬͨɺݱ༷ʑͳΠϕϯτʹରͯ͠
ԠతʹॲཧΛߦ͍ͬͯ͘ʢEventingͷൣғͳͷͰׂѪʣ !51 ΞʔΩςΫνϟ·ͱΊ
ϖϧιφ
• αʔϏεΛσβΠϯ͢Δࡍɺλʔήοτͱͯ͠ఆ͢ΔՍۭ ͷϢʔβʔ૾ͷ͜ͱ • KnativeͷλʔήοτͱͳΔϢʔβʔͲ͏͍͏ਓ͔ʁͲ͏͍͏ తϞνϕʔγϣϯΛ͍࣋ͬͯΔͷ͔ • ͜͏͍͏͜ͱΛܾΊ͓ͯ͘͜ͱͰɺKnativeͷϓϩμΫτͱͯ͠ͷํ ੑ͕ϒϨͳ͍Α͏ʹ͢Δ !53
ϖϧιφʁ
• ར༻ऀͱͯ͠DeveloperͱOperatorͷ2छྨʹΘ͔Ε͍ͯΔ • Developer • Operator !54 ,OBUJWF4FSWJOHͷར༻ऀͲ͏͍͏ϖϧιφ͔
• ΠϯϑϥΛҙࣝͤͣʹεςʔτϨεͳΞϓϦέʔγϣϯΛ։ൃɾ࣮ ߦ͢ΔΤϯδχΞ • HobbyistɺBackend SWEɺFull stack SWEɺSREͳͲ • ϢʔβʔετʔϦʔྫ
• ෳͷίʔυΛσϓϩΠ • มߋͷϩʔϧόοΫ • ΞϓϦέʔγϣϯͷࢹ !55 %FWFMPQFS
• Knative ServingͱKubernetesͷಋೖɾཧ৫ϙϦγʔɺηΩϡ ϦςΟύονͷద༻ʹϑΥʔΧε • HobbyistɺCluster administratorɺSecurity EngineerͳͲ • ϢʔβʔετʔϦʔ
• Knative ServingΫϥελʔΛ࡞͢Δ • Ϧιʔεར༻ʹ੍͍ͭͯޚͨ͠Γ՝ۚ͢Δ • ΞϓϦέʔγϣϯͷࠪύονద༻ !56 0QFSBUPS
• ยํͷࢹ͕͚͍ܽͯΔͱɺยํʹෛՙ͕͔͔Δ • ΞϓϦέʔγϣϯ։ൃऀշదʹ։ൃʹઐ೦Ͱ͖Δ • ϓϥοτϑΥʔϜͷӡ༻ଆϓϥοτϑΥʔϜʹઐ೦Ͱ͖Δ !57 ྆ํͷࢹΛҙ͍ࣝͯ͠Δͷ҆৺ײ͕͋Δ
·ͱΊ
• Knative ServingͷΰʔϧɺPaaS/FaaSͷ֓೦ΛؚΉαʔόʔϨε ϫʔΫϩʔυͷͨΊͷAPIͱπʔϧΛఏڙ͢Δ͜ͱ • 20189݄࣌ͰΞʔΩςΫνϟͱAPIͷΈఏڙ͞Ε͍ͯΔঢ় گɻʢ·ͩެࣜͰͳ͍͕ʣCLIπʔϧ͕ొ࢝͠Ί͍ͯΔ • IaaSɺCaaSɺPaaSͱ͍ͬͨج൫ٕज़ͷԆઢ্ʹ͋ΔϓϩμΫτ ͰɺKnativeͰͳ͍͍͕ͯ͘ߟ͑ํ͓ͬͯ͘ͱΑ͍ͱࢥ͏
!59 ·ͱΊ
We are hiring! Senior Software Engineer Software Engineer (Site Reliability)
Senior Software Engineer (Site Reliability)