Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
kubernetesで変わる開発スタイル 〜マイクロサービスじゃなくてもいいじゃない〜
Search
CyberAgent SGE Engineer
November 02, 2016
Technology
16k
26
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kubernetesで変わる開発スタイル 〜マイクロサービスじゃなくてもいいじゃない〜
PHP Conference 2016の発表資料です
kubernetesをつかってゲーム開発の
開発スタイルを変えたお話です
CyberAgent SGE Engineer
November 02, 2016
More Decks by CyberAgent SGE Engineer
See All by CyberAgent SGE Engineer
SREチームの立ち上げから5年間とこれから
sgeengineer
0
2.6k
サムザップにおけるNotionの 活用事例とPHPでのNotionAPIを利用した仕組み構築の紹介
sgeengineer
0
2.9k
Laravel OctaneをどうしてもPharで運用したい話
sgeengineer
2
3.4k
大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd
sgeengineer
5
22k
ロボットを動かすビジュアルプログラミングでできることはPHPでもできる!
sgeengineer
0
2.5k
PHP8版!Swooleのフレームワークを比べてみた
sgeengineer
1
3.7k
「戦国炎舞 -KIZNA-」で行ったAWSのコスト最適化の話
sgeengineer
0
2.5k
AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
sgeengineer
0
5.9k
PHPでgRPCって どこまでいけるの?
sgeengineer
0
5.7k
Other Decks in Technology
See All in Technology
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
AI de Idea
kawaguti
PRO
2
120
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
0
290
あけおめLINE 傾向とその対策
nasa9084
0
110
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
840
映像変換サーバーなしで端末内でHLSを生成してライブ配信
hikarusato
0
120
おい、エージェントを使って終わらせろ
nwiizo
1
590
Reactの設計論
uhyo
24
13k
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2k
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
340
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.4k
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
14
39k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Skip the Path - Find Your Career Trail
mkilby
1
230
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Facilitating Awesome Meetings
lara
57
7.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
580
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Writing Fast Ruby
sferik
630
63k
Transcript
LVCFSOFUFTͰมΘΔ։ൃελΠϧ גࣜձࣾαΠόʔΤʔδΣϯτɹനҪɹӳ ʙϚΠΫϩαʔϏε͡Όͳ͍͍ͯ͘͡Όͳ͍ʙ QIQDPOQIQDPO
• גࣜձࣾαΠόʔΤʔδΣϯτ • 4(&౷ׅຊ෦ٕज़౷ׅࣨ$50 • നҪɹӳ • ΤϯδχΞ • 5XJUUFS
!HPPEPP • #MPH IUUQBNFCMPKQHPPEPP • %2 ͙ͪ͢Ή '# ϓΫϦϙ ཱྀܳਓ ͓લɺ୭Α
"HFOEB wϚΠΫϩαʔϏεͷ wLVCFSOFUFTʹ͍ͭͯ w͖͋ΒΊͨ͜ͱ wऔΓΜͩ͜ͱ w·ͱΊ
ϚΠΫϩαʔϏεͷ
ϚΠΫϩαʔϏεͷߟ͑ํ https://speakerdeck.com/naoya/serverless-architecture
ϚΠΫϩαʔϏεΛ༻͍ͯ͠Δ ࢥ͍ͭ͘αʔϏεɾɾɾɾ
None
Ҿ༻"CFNB57ͷಈը৴Λࢧ͑ΔαʔόʔαΠυγεςϜ http://bit.ly/2eQYBey "CFNB57ͷશମͷΞʔΩςΫνϟ
(PPHMF$POUBJOFS&OHJOF
ίϯςφͱʁ 04্ʹଞͷϓϩηε͔Βִ͞Εͨ ΞϓϦέʔγϣϯ࣮ߦڥΛߏங͢Δ͜ͱͰɺ Ծతͳಈ࡞ڥΛΑΓগͳ͍ ίϯϐϡʔλϦιʔεͰ࣮ݱ͢Δٕज़ͷ͜ͱͰ͋Δ ˞*5༻ޠࣙయΑΓҾ༻ɿίϯςφٕज़ͱʁ http://www.weblio.jp/content/ίϯςφٕज़ ɾΞϓϦέʔγϣϯίʔυͱͦͷ࣮ߦڥΛ̍ͭʹ·ͱΊΔ ɾϙʔλϒϧɿڥΛ·͍ͨͩσϓϩΠ͕༰қʹͳΔ ɹɹ։ൃڥˠεςʔδϯάڥˠຊ൪ڥ
ɾܰྔɿىಈ͕͍ ɾޮੑɿίϯϐϡʔλϦιʔεΛޮతʹར༻ ΞϓϦέʔγϣϯίʔυ ࣮ߦڥ ίϯςφΠϝʔδ
http://bit.ly/2bNDdqc ίϯςφͷཧ ɾίϯςφؒͷ௨৴ʁ ɾϗετͷαʔό͕མͪͨΒʁ ɾίϯςφͷεέʔϧʁ ɾίϯςφͷোͲ͏͢Δʁ ɾΞϓϦέʔγϣϯͷσϓϩΠʁ ΦʔέετϨʔγϣϯπʔϧ
LVCFSOFUFTʹ͍ͭͯ
ɾίϯςφͷΦʔέετϨʔγϣϯπʔϧ ɾ(PͰ͔͔ΕͨΦʔϓϯιʔε ɾσϓϩΠͷࣗಈԽ ɾΞϓϦέʔγϣϯΛεέʔϦϯά ɾγʔϜϨεʹ৽͍͠ػೳΛల։ ɾϋʔυΣΞͷ༻Λ࠷దԽ LVCFSOFUFTͱʁ
LVCFSOFUFTͷ༻ޠղઆ ɾ/PEF ϫʔΧʔϚγϯ ԾϚγϯ DMVTUFSԼͰཧ͞ΕΔ ɾ/PEF1PPM /PEFͷάϧʔϓ /PEF1PPMຖʹҟͳΔϚγϯλΠϓΛར༻Մೳ ɾDMVTUFS
/PEF /PEF1PPM ΛଋͶͨཧ୯Ґ DMPVE·ͨ͛ͳ͍ Node Node Pool cluster Node Pool Node Pool
LVCFSOFUFTͷ༻ޠղઆ ɾ1PE ίϯςφͷάϧʔϓ ࠷খཧ୯Ґ ɾ%FQMPZNFOU 1PEڥมΛཧ ঢ়ଶΛఆٛ͢Δ ɾ4FSWJDF 1PEͷΤϯυϙΠϯτ
1PEͷΞΫηεϙϦγʔΛཧ Pod Deployment Service
LVCFSOFUFTͷ༻ޠղઆ ɾ*OHSFTT ͍ΘΏΔϩʔυόϥϯαʔ -ͷϩʔυόϥϯαʔΛಁաతʹѻ͏ Πϯλʔωοτ͔Βͷ௨৴Λ ɹ4FSWJDFྲྀ͢ϧʔϧΛهड़ ϗετ໊ɺ63-ύεͰ ɹৼΓ͚Δ͜ͱ͕Մೳ Ingress
B.example.com A.example.com
ؓٳɿ&$4ͱͷ༻ޠൺֱ ECS kubernetes Task Pod Task Definition Deployment Service Service
Instance Node cluster cluster
LVCFSOFUFTͷಛ ɾ1PEͷোੑ Deployment - replicas: 2
LVCFSOFUFTͷಛ ɾ1PEͷোੑ Deployment - replicas: 2
LVCFSOFUFTͷಛ ɾ1PEͷোੑ Deployment - replicas: 2
LVCFSOFUFTͷಛ ɾ1PEͷোੑ Deployment - replicas: 2 ࣗಈͰSFQMJDBΛ̎ʹอͭΑ͏ʹ 1PE͕ੜ͞ΕΔ
LVCFSOFUFTͷಛ ɾ/PEFͷোੑ Deployment - replicas: 2 cluster - NUM_NODES:3
LVCFSOFUFTͷಛ ɾ/PEFͷোੑ Deployment - replicas: 2 cluster - NUM_NODES:3
LVCFSOFUFTͷಛ ɾ/PEFͷোੑ Deployment - replicas: 2 cluster - NUM_NODES:3
/PEF্ͷ1PEӨڹΛड͚Δ
LVCFSOFUFTͷಛ ɾ/PEFͷোੑ Deployment - replicas: 2 cluster - NUM_NODES:3
ࣗಈͰSFQMJDBΛ̎ʹอͭΑ͏ʹ 1PE͕ผͷ/PEF্ʹੜ͞ΕΔ
LVCFSOFUFTͷಛ ɾ/PEFͷোੑ Deployment - replicas: 2 cluster - NUM_NODES:3
/PEF࠶࡞͞ΕΔ
LVCFSOFUFTͷಛ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy -
type: RollingUpdate ৽͍͠ίϯςφΛద༻͢Δ kubectl apply -f new-deployment.yaml
LVCFSOFUFTͷಛ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy -
type: RollingUpdate
LVCFSOFUFTͷಛ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy -
type: RollingUpdate
LVCFSOFUFTͷಛ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy -
type: RollingUpdate
LVCFSOFUFTͷಛ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy -
type: RollingUpdate Ұʹ࡞͞ΕΔ1PEͷ ͰௐՄೳ ˞ࠓճఆ .spec.strategy.rollingUpdate.maxSurge
LVCFSOFUFTͷಛ ɾ*OHSFTTͰͷࢄ blue.example.com green.example.com Ingress - rules - host:blue.example.com
- http.paths.backend - serviceName: blue-service - host:green.example.com - http.paths.backend - serviceName: green-service Service - name: blue-service Service - name: green-service
։ൃελΠϧ
ӡ༻ཁ݅ http://bit.ly/2by3DqT ɾຊ൪ڥͱ։ൃڥͷಉҰੑͷ୲อ ɾ%FQMPZ࣌ؒͳΔ͘͘ ɾΞϓϦͷߋ৽શαʔόಉ࣌ʹ ɹ ϒϧʔάϦʔϯσϓϩΠͰՄ ɾແఀࢭӡ༻
͖͋ΒΊͨ͜ͱ
Ҿ༻"CFNB57ͷಈը৴Λࢧ͑ΔαʔόʔαΠυγεςϜ http://bit.ly/2eQYBey ϚΠΫϩαʔϏεԽ Λ͖͋ΒΊͨ
w͍͖ͳΓқ͕ߴ͍ wήʔϜϩδοΫͩͱτϥϯβΫγ ϣϯΛ༻ͯ͠ݫີʹॲཧ͍ͨ͠ ͕࣌͋Δ wϚΠΫϩαʔϏεԽ͠ͳͯ͘ಘ ΒΕΔϝϦοτ͕͋Δ
http://bit.ly/2bP11pg ΞϓϦͷߋ৽Λશαʔόಉ࣌ ʹ͢ΔͷΛ͖͋ΒΊͨ
ࢼͨ͜͠ͱ ɾ*OHSFTTͰͷସ blue.example.com Ingress - rules - host:blue.example.com -
http.paths.backend - serviceName: blue-service Service - name: blue-service
ɾ*OHSFTTͰͷସ blue.example.com Service - name: blue-service Service - name: green-service
ࢼͨ͜͠ͱ Ingress - rules - host:blue.example.com - http.paths.backend - serviceName: blue-service ৽͍͠ίϯςφΛద༻͢Δ kubectl apply -f green-service.yaml
ɾ*OHSFTTͰͷସ blue.example.com Service - name: blue-service Service - name: green-service
ࢼͨ͜͠ͱ Ingress - rules - host:blue.example.com - http.paths.backend - serviceName: green-service *OHSFTTΛߋ৽
Ͳ͏ͳΔ͔ʁ https://youtu.be/Mk-sKSp_oPU
݁Ռɿࣦഊ w͕Ͱͯ͠·ͬͨ wMJWFOFTT1SPCFɺSFBEMJOFTT1SPCFઃఆࡁΈ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-green
spec: replicas: 3 spec: containers: - name: nginx-green image: nginx ports: - containerPort: 80 livenessProbe: httpGet: path: /index.html port: 80 initialDelaySeconds: 30 timeoutSeconds: 1 readinessProbe: httpGet: path: /index.html port: 80 ˞ઃఆ্͏·͍͖ͦ͘͏Ͱ͕͢ɺͲ͔ؒ͜ҧ͍ͬͯΔͷ͔
ɾ*OHSFTTͰͷସ Service - name: blue-service Service - name: green-service ࢼͨ͜͠ͱ
green.goodoo.tech blue.goodoo.tech Ingress - rules - host:blue.goodoo.tech - http.paths.backend - serviceName: blue-service - host:green.goodoo.tech - http.paths.backend - serviceName: green-service
ɾ*OHSFTTͰͷସ blue.goodoo.tech Service - name: blue-service Service - name: green-service
ࢼͨ͜͠ͱ Ingress - rules - host:blue.goodoo.tech - http.paths.backend - serviceName: green-service - host:green.goodoo.tech - http.paths.backend - serviceName: green-service green.goodoo.tech *OHSFTTΛߋ৽
Ͳ͏ͳΔ͔ʁ https://youtu.be/4NSf-F4VYsY
݁Ռɿ-#͔ͩΒͶ wͰͳ͍Α͏ʹͰ͖ͨ wMJWFOFTT1SPCFɺSFBEMJOFTT1SPCFઃఆࡁΈ wશϦΫΤετ͕ಉ࣌ʹΓସΘΒͳ͔ͬͨ ˞σϞͰ࠶ݱͰ͖·ͤΜͰͨ͠ http://bit.ly/2c4tVlS
ɾ4FSWJDFͰͷସ ࢼͨ͜͠ͱ blue.goodoo.tech Deployment - labels: - app:nginx-blue Deployment
- labels: - app:nginx-green Service - selector - app: nginx-blue Service - selector: - app: nginx-blue
ɾ4FSWJDFͰͷସ ࢼͨ͜͠ͱ blue.goodoo.tech Deployment - labels: - app:nginx-blue Deployment
- labels: - app:nginx-green 4FSWJDFΛߋ৽ Service - selector - app: nginx-green Service - selector: - app: nginx-blue
Ͳ͏ͳΔ͔ʁ https://youtu.be/3ry2auMejKE
݁Ռɿεϐʔυૣ͍ wͰͳ͍ wΓସΘΔҰ൪͔ͬͨ wͨͩ͠ɺશϦΫΤετ͕ಉ࣌ʹΓସΘΒͳ͔ͬͨ ʢΓସΘͬͨޙલͷόʔδϣϯ͕දࣔ͞ΕΔ͕͍࣌ؒʣ http://bit.ly/2bTwRU4
औΓΜͩ͜ͱ
ຊ൪ڥͱ ։ൃڥͷಉҰੑͷ୲อ ͦͷ̍
ಉ͡ίϯςφΛ͏͜ͱͰ ڥͷಉҰੑͷ୲อ
ϩʔΧϧͷ։ൃڥ LVCFSOFUFT NJOJLVCFͰ࣮ݱ yaml ެࣜαΠτͰ Φεεϝ͞Ε͍ͯΔ ϩʔΧϧ
ϩʔΧϧͷ։ൃڥ minikube ϩʔΧϧ1$ ϗετ Service Service - name: mysql-service -
type: NodePort - ports - nodePort: 31101 192.168.99.100 192.168.99.100:31101 ϩʔΧϧ1$͔Β /PEF1PSUͰࢦఆ͞ΕͨϙʔτͰଓՄೳ ˎ7JSUVBM#PY͔ΒׂΒΕΔ mysql -h 192.168.99.100 --port 31101
ίϯςφΦϦδφϧͰͭ͘Βͳ͍ ެࣜΠϝʔδ͔Βͭ͘Δ ίϯςφ࡞ͷઓུ FROM nginx:1.10.1 RUN rm /etc/nginx/conf.d/default.conf ADD ./conf.d/
/etc/nginx/conf.d ADD ./ssl/ /etc/ssl Dockerfile wDPOGΛॻ͖͑Δఔ wϕʔεͷίϯςφͷ࡞ʹίετ Λ͔͚ͳ͍ wϕʔεͷίϯςφͷόʔδϣϯΞ οϓ͕༰қ
*OHSFTTΛ͍͢ ͦͷ
੩తΞυϨεͱυϝΠϯΛ݁ͼ͚ͭͨ͋ͱ ੩తΞυϨεͰ*OHSFTTΛϧʔςΟϯά͍ͨ͠ *OHSFTTͱυϝΠϯ ˞ී௨ͷ͜ͱͰ͕͢ɺ·ͬͨͷͰɾɾɾ λΠϓΛάϩʔόϧʹͯ͠ ੩తΞυϨεΛ༧͢Δ apiVersion: extensions/v1beta1 kind: Ingress
metadata: name: static-ip annotations: kubernetes.io/ingress.global-static-ip-name: gke-phpcon-lb Ingress.yaml BOOPUBUJPOTͰ੩తΞυϨεͷ໊લΛ ࢦఆ͢Δ
ΞϓϦͷόʔδϣϯຖʹαʔόΛΘ͚Δ Service - name: app-v2 Service - name: app-v1 *OHSFTTͰϧʔςΟϯά
goodoo.tech/v1 goodoo.tech/v2 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: routing spec: rules: - host: goodoo.tech http: paths: - path: /v1 backend: serviceName: app-v1 - path: /v2 backend: serviceName: app-v2 Ingress.yaml ϓϩάϥϜʹόʔδϣϯ͚ͷJGจ͕͍Βͳ͍
ແఀࢭ ͦͷ
LVCFSOFUFTࣗମසൟʹ όʔδϣϯ͕͕͋Δ ϲ݄ʹ̍ճϚΠφʔόʔδϣϯ͕͕͋Δʣ όʔδϣϯΞοϓ࣌ μϯλΠϜ͕ൃੜ͢ΔՄೳੑ͕͋Δʂ
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3
ࢀߟURLɿhttp://qiita.com/superbrothers/items/d9766ebaff15d6954d03
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3
৽ن/PEF1PPMΛ࡞ gcloud container node-pools create --num-nodes=2 ˞৽ن/PEF1PPM࠷৽ͷόʔδϣϯͰ࡞͞ΕΔ Node Pool v1.4
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3
ݹ͍όʔδϣϯͷ/PEF1PPMͰ ৽ن1PE͕࡞͞Εͳ͍Α͏ʹ͢Δ DPSEPO kubectl cordon node-pool-v1.3-node1 kubectl cordon node-pool-v1.3-node2 ˞/PEFຖʹࢦఆ͢Δ Node Pool v1.4
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3
/PEF্ͷ1PEΛҠಈͤ͞Δ ESBJO kubectl drain node-pool-v1.3-node1 ˞/PEFͣͭ Node Pool v1.4 drain
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3
/PEF্ͷ1PEΛҠಈͤ͞Δ ESBJO kubectl drain node-pool-v1.3-node2 ˞/PEFͣͭ Node Pool v1.4 drain drain
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3
࠷ޙʹݹ͍όʔδϣϯͷ /PEF1PPMΛআ͢Δ gcloud container node-pools delete node-pool-v1.3 Node Pool v1.4
/PEF1PPMΛ͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ όʔδϣϯΞοϓྃ Node Pool
v1.4
ϋʔυΣΞϦιʔεͷ ࠷దԽ ͦͷ
͍͘ΒίϯςφΛ͏ͱ͍ͬͯ /PEFΛීஈ༨ΒͤΔͷ͍ͬͨͳ͍ goodoo.tech Service - name: app-v1 ͬͯͳͯ͘༨͍ͬͯΔ
1PEͰඞཁͳ͚ͩͷ/PEFͰӡ༻͢Δ 1PEʹඞཁͳ͚ͩͷ/PEFʹ͢Δͱ ৽͍͠ίϯςφΛσϓϩΠ࣌ʹ /PEF͕ͨΒͳͯ͘ࠔΔ goodoo.tech Service - name: app-v1
σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ NUM_NODES=4 NUM_NODES=4 goodoo.tech Service - name: app-v1 gcloud
container clusters resize cluster-name --size 4
৽͍͠ίϯςφΛσϓϩΠ NUM_NODES=4 goodoo.tech Service - name: app-v1 Service - name:
app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏
*OHSFTTͰସ ϒϧʔάϦʔϯ NUM_NODES=4 goodoo.tech Service - name: app-v1 Service -
name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏
ݹ͍όʔδϣϯͷίϯςφΛআ NUM_NODES=4 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏
NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ ࠷ޙʹ/PEFΛͲ͢ gcloud
container clusters resize cluster-name --size 2
NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ ͋ʂ 502
NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ 1PEͷ࠶࡞͕͠Δ
NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ SFTJ[Fʹফ͢/PEF͕ࢦఆͰ͖ͳ͍
Ͳ͏͢Ε͍͍ͷʁ http://bit.ly/2bNDdqc
/PEF1PPMΛ͏ Node Pool app-v1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name:
app-v1
Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ ৽͍͠ίϯςφ༻ͷ /PEF1PPMΛ࡞͢Δ
goodoo.tech Service - name: app-v1 gcloud container node-pools create --num-nodes=2 --node-labels=app-v1.1
Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service
- name: app-v1 ৽͍͠ίϯςφΛσϓϩΠ Service - name: app-v1.1
Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service
- name: app-v1 Service - name: app-v1.1 *OHSFTTͰସ ϒϧʔάϦʔϯ
Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service
- name: app-v1.1 ݹ͍όʔδϣϯͷίϯςφΛআ
Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service
- name: app-v1.1 /PEF1PPMΛআ gcloud container node-pools delete node-pool-app-v1
Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1.1
ྃʂ
ཧମܥ ͦͷ
cluster production.goodoo.tech Service - name: staging DMVTUFSڥຖʹΘ͚Δ EFW TUBHJOH QSPEVDUJPO
Service - name: production production staging staging.goodoo.tech dev.goodoo.tech dev Service - name: dev ˞/BNFTQBDF͑Δ͕ࠓճ͔ͭΘͳ͍
ΞϓϦͷόʔδϣϯຖʹΘ͚Δ Service - name: app-v2 Service - name: app-v1 NodePool
goodoo.tech/v1 goodoo.tech/v2 Node Pool app-v2 Node Pool app-v1 ϒϧʔάϦʔϯσϓϩΠ࣌ ͷϚΠφʔόʔδϣϯ͕ ͕͋Δͱ͖ಉ༷
·ͱΊ
wϚΠΫϩαʔϏεԽ͖͋ΒΊͨ wͦΕͰLVCFSOFUFTͷϝϦοτ ΛڗडͰ͖Δ ຊ൪ڥͱ։ൃڥͷಉҰੑͷ୲อ ແఀࢭӡ༻ ϋʔυΣΞͷ࠷దԽ wLVCFSOFUFT͍͍Α
w 4FSWFSMFTT"SDIJUFDUVSF - https://speakerdeck.com/naoya/serverless-architecture w "CFNB57ͷಈը৴Λࢧ͑ΔαʔόʔαΠυγεςϜ - http://www.slideshare.net/yuichironakazawa2/abematv w XFCσβΠφʔϓϩάϥϚͷͨΊͷ%PDLFSೖ
- https://docs.com/asashiho/4719/web-docker w (,&!"CFNB57 - https://speakerdeck.com/strsk8/gke-at-abematv w Google Container Engine Ͱ৽͍͠ϊʔυʹμϯλΠϜθϩͰҠߦ͢Δ - http://qiita.com/superbrothers/items/d9766ebaff15d6954d03 ࢀߟจݙ XFC
w (,&Ͱӡ༻ͯ͠Έͨ - http://www.slideshare.net/katsutoshinagaoka/gke-57322091 w ,VCFSOFUFT5IF-BUFTUBOE(SFBUFTU - https://speakerdeck.com/ianlewis/kubernetes-the-latest-and-greatest w ,VCFSOFUFT6QEBUF!($16('VLVPLB
- https://speakerdeck.com/ianlewis/kubernetes-1-dot-4-update-at- gcpug-fukuoka-number-4 ࢀߟจݙ XFC
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
None