小規模でもGKE - DevFest Tokyo 2016
-
Upload
lestrrat -
Category
Engineering
-
view
1.214 -
download
3
Transcript of 小規模でもGKE - DevFest Tokyo 2016
![Page 1: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/1.jpg)
小規模でもGKE!
DevFest Tokyo (Oct 9, 2016) 牧大輔 / Daisuke Maki (lestrrat)
株式会社 HDE
![Page 2: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/2.jpg)
• 牧大輔 (lestrrat)
• 株式会社 HDE
• Perl/Go/C 等, peco
• builderscon 12月3日 開催!
https://builderscon.io/
![Page 3: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/3.jpg)
=
![Page 4: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/4.jpg)
Web+DB Press 10/22
![Page 5: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/5.jpg)
GKE
![Page 6: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/6.jpg)
GCP+Containers
![Page 7: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/7.jpg)
Kubernetes
![Page 8: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/8.jpg)
GKEについて
http://www.slideshare.net/lestrrat/kubernetes-in-20-minutes-hde-monthly-technical-session-24
こちらをどうぞ
![Page 9: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/9.jpg)
GKE使ってる人?
![Page 10: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/10.jpg)
「k8s イイヨ!」
と、言い続けて幾星霜
![Page 11: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/11.jpg)
えー、でもそれって 大規模プロジェクト用でしょ〜?
![Page 12: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/12.jpg)
![Page 13: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/13.jpg)
![Page 14: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/14.jpg)
なるほど…
![Page 15: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/15.jpg)
大規模案件ばかりではない
![Page 16: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/16.jpg)
小規模でもイイヨ!
![Page 17: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/17.jpg)
背景
![Page 18: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/18.jpg)
• YAPC::Asia Tokyoというカンファレンスを
10年ほどやっていました
![Page 19: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/19.jpg)
「知らなかった、を聞く」
• 今度新しく builderscon を始めます (Dec 3)
![Page 20: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/20.jpg)
• 小規模(VPS1~2台で事足りてしまう)
• 暖かみのある手動管理が多い
• 焼き畑スタイル開発が多い
• 最低限のリソース・レンサバで運営が多い
カンファレンスサイト
![Page 21: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/21.jpg)
一人で手動運用
![Page 22: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/22.jpg)
(*) BBQ中に雨が降って絶望した時の様子
こんな事もうやりたくない!!! (10年やれば充分だ!)
![Page 23: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/23.jpg)
求められている運用
Deploying!
DEPLOYING
![Page 24: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/24.jpg)
ということで
![Page 25: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/25.jpg)
buildersconからは
GKEにしてみた
https://github.com/brendandburns/gcp-live-k8s-visualizer
![Page 27: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/27.jpg)
• 貧乏なのでミニマム構成
• g1-small x 3台
• コンテナ7個+CloudSQLv2+Storage
• Kubernetes: なるたけ最新のを追従
構成
![Page 28: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/28.jpg)
小規模構成でも 得られるメリット (1)
![Page 29: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/29.jpg)
• LBからアプリ設定まで全てYAML/JSONで記述
• 明日バスにひかれても大丈夫!
• (※)ただしタスクランナーはmake
強制的なノウハウの文章化
![Page 30: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/30.jpg)
小規模構成でも 得られるメリット (2)
![Page 31: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/31.jpg)
• K8sでは最小構成単位がPod
• Pod = 複数のコンテナ
• オーケストレーションの単位として
とても使いやすい
Podが最高すぎる
![Page 32: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/32.jpg)
container
![Page 33: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/33.jpg)
container
container
![Page 34: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/34.jpg)
container
container
container
![Page 35: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/35.jpg)
Podcontainer
container
container
![Page 36: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/36.jpg)
Podcontainer
container
container
![Page 37: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/37.jpg)
Node
Pod内のコンテナは 必ず同じ物理Nodeに 配置される!
![Page 38: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/38.jpg)
Node
Pod内のコンテナは 必ず同じ物理Nodeに 配置される!
![Page 39: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/39.jpg)
Node
Pod内のコンテナは 必ず同じ物理Nodeに 配置される!
![Page 40: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/40.jpg)
Node
Pod内のコンテナは 必ず同じ物理Nodeに 配置される!
![Page 41: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/41.jpg)
Node
Pod内のコンテナは 必ず同じ物理Nodeに 配置される!
![Page 42: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/42.jpg)
nginx
app
FROM nginx:alpine COPY /app/static-files /static-files
FROM alpine:3.4 COPY /app /app # (templates, static-files…)
![Page 43: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/43.jpg)
nginx
app
FROM nginx:alpine COPY /app/static-files /static-files
FROM alpine:3.4 COPY /app /app # (templates, static-files…)
appを変えたらnginxももう一回ビルド…! (volume container使っても結局同じ事)
![Page 44: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/44.jpg)
nginx
app
FROM nginx:alpine VOLUME [ “/var/www” ]
FROM alpine:3.4 COPY /app /app # (templates, static-files…)
/static-files
![Page 45: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/45.jpg)
nginx
app
FROM nginx:alpine VOLUME [ “/var/www” ]
FROM alpine:3.4 COPY /app /app # (templates, static-files…)
/static-files appの/app/static-filesから、Nodeのディスクに ファイルをコピーして…
![Page 46: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/46.jpg)
nginx
app
FROM nginx:alpine VOLUME [ “/var/www” ]
FROM alpine:3.4 COPY /app /app # (templates, static-files…)
/static-files Nodeのディスクの/static-filesをnginxの /var/www にマウントする
![Page 47: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/47.jpg)
小規模構成でも 得られるメリット (3)
![Page 48: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/48.jpg)
• Deploymentが「システム構成のテンプレート」
• Replica Setが「実際にデプロイされている構成」
• Replica Setは世代ごとに管理されてる
Deploymentsが最高すぎる
![Page 49: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/49.jpg)
• kubectl rollout undo
• いつでも「ひとつ前」の状態に戻れる
• 安心してデプロイ可能
Deploymentsが最高すぎる
![Page 50: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/50.jpg)
小規模構成でも 得られるメリット (4)
![Page 51: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/51.jpg)
• Let’s Encrypt対応
• 「勝手に」証明書の確認、取得、更新
• 複数ホスト名でも問題無し
• Ingressにannotationするだけ
kube-legoが最高すぎる
![Page 52: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/52.jpg)
kube-legoが最高すぎる
![Page 53: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/53.jpg)
小規模構成でも 得られるメリット (5)
![Page 54: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/54.jpg)
• Cloud LoggingやMaglev(LB)を使える
• 特にログは何もしないでも使えて最高
GCPの恩恵が受けられる
![Page 55: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/55.jpg)
小規模構成でも 得られるメリット (6)
![Page 56: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/56.jpg)
• サーバー1台でもN台でも変わらない運用
• 今後どうなっても対応可能
細やかなスケール調整
![Page 57: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/57.jpg)
• デプロイの圧倒的安心感
• デプロイの圧倒的スピード
• Googleのインフラを使いまくられる
• 複雑さが増す… が、それでもお得!
小規模でも… 総評
![Page 58: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/58.jpg)
問題点
![Page 59: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/59.jpg)
ある。が、 長くなるので続きは Web/懇親会で!
![Page 60: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/60.jpg)
builderscon、10月末まで トーク応募受け付けてます!
![Page 61: 小規模でもGKE - DevFest Tokyo 2016](https://reader034.fdocument.pub/reader034/viewer/2022051502/58f9ad75760da3da068b9867/html5/thumbnails/61.jpg)
The End