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
530
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
470
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
910
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
660
どうやればインシデント対応能力を鍛えられるのか? / 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
システム監視を 「システムを監視するだけ」で 終わらせないために
seiud
0
160
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
5
1.5k
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
200
20260724 情シスAI #1 「全従業員をAIネイティブにする」ために情シスがやっていること(公開版)
frtckty
0
130
VPCセキュリティ対応の最新事情
nagisa53
2
350
AI研修(Day2)【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
1.6k
ガバメントクラウドでのランサムウェア対策
techniczna
1
470
plamo-3-translateの開発
pfn
PRO
0
230
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
7
3k
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
610
AIで楽になるはずが、なぜ疲れる?
kinopeee
0
150
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
400
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Become a Pro
speakerdeck
PRO
31
6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Designing Experiences People Love
moore
143
24k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Are puppies a ranking factor?
jonoalderson
1
3.7k
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)