小規模でもgke - devfest tokyo 2016

61
小規模でもGKE! DevFest Tokyo (Oct 9, 2016) 牧大輔 / Daisuke Maki (lestrrat) 株式会社 HDE

Upload: lestrrat

Post on 21-Apr-2017

1.214 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: 小規模でもGKE - DevFest Tokyo 2016

小規模でもGKE!

DevFest Tokyo (Oct 9, 2016) 牧大輔 / Daisuke Maki (lestrrat)

株式会社 HDE

Page 2: 小規模でもGKE - DevFest Tokyo 2016

• 牧大輔 (lestrrat)

• 株式会社 HDE

• Perl/Go/C 等, peco

• builderscon 12月3日 開催!

https://builderscon.io/

Page 3: 小規模でもGKE - DevFest Tokyo 2016

=

Page 4: 小規模でもGKE - DevFest Tokyo 2016

Web+DB Press 10/22

Page 5: 小規模でもGKE - DevFest Tokyo 2016

GKE

Page 6: 小規模でもGKE - DevFest Tokyo 2016

GCP+Containers

Page 7: 小規模でもGKE - DevFest Tokyo 2016

Kubernetes

Page 8: 小規模でもGKE - DevFest Tokyo 2016

GKEについて

http://www.slideshare.net/lestrrat/kubernetes-in-20-minutes-hde-monthly-technical-session-24

こちらをどうぞ

Page 9: 小規模でもGKE - DevFest Tokyo 2016

GKE使ってる人?

Page 10: 小規模でもGKE - DevFest Tokyo 2016

「k8s イイヨ!」

と、言い続けて幾星霜

Page 11: 小規模でもGKE - DevFest Tokyo 2016

えー、でもそれって 大規模プロジェクト用でしょ〜?

Page 12: 小規模でもGKE - DevFest Tokyo 2016
Page 13: 小規模でもGKE - DevFest Tokyo 2016
Page 14: 小規模でもGKE - DevFest Tokyo 2016

なるほど…

Page 15: 小規模でもGKE - DevFest Tokyo 2016

大規模案件ばかりではない

Page 16: 小規模でもGKE - DevFest Tokyo 2016

小規模でもイイヨ!

Page 17: 小規模でもGKE - DevFest Tokyo 2016

背景

Page 18: 小規模でもGKE - DevFest Tokyo 2016

• YAPC::Asia Tokyoというカンファレンスを

10年ほどやっていました

Page 19: 小規模でもGKE - DevFest Tokyo 2016

「知らなかった、を聞く」

• 今度新しく builderscon を始めます (Dec 3)

Page 20: 小規模でもGKE - DevFest Tokyo 2016

• 小規模(VPS1~2台で事足りてしまう)

• 暖かみのある手動管理が多い

• 焼き畑スタイル開発が多い

• 最低限のリソース・レンサバで運営が多い

カンファレンスサイト

Page 21: 小規模でもGKE - DevFest Tokyo 2016

一人で手動運用

Page 22: 小規模でもGKE - DevFest Tokyo 2016

(*) BBQ中に雨が降って絶望した時の様子

こんな事もうやりたくない!!! (10年やれば充分だ!)

Page 23: 小規模でもGKE - DevFest Tokyo 2016

求められている運用

Deploying!

DEPLOYING

Page 24: 小規模でもGKE - DevFest Tokyo 2016

ということで

Page 25: 小規模でもGKE - DevFest Tokyo 2016

buildersconからは

GKEにしてみた

https://github.com/brendandburns/gcp-live-k8s-visualizer

Page 26: 小規模でもGKE - DevFest Tokyo 2016

It’s on Github…

https://github.com/builderscon

Page 27: 小規模でもGKE - DevFest Tokyo 2016

• 貧乏なのでミニマム構成

• g1-small x 3台

• コンテナ7個+CloudSQLv2+Storage

• Kubernetes: なるたけ最新のを追従

構成

Page 28: 小規模でもGKE - DevFest Tokyo 2016

小規模構成でも 得られるメリット (1)

Page 29: 小規模でもGKE - DevFest Tokyo 2016

• LBからアプリ設定まで全てYAML/JSONで記述

• 明日バスにひかれても大丈夫!

• (※)ただしタスクランナーはmake

強制的なノウハウの文章化

Page 30: 小規模でもGKE - DevFest Tokyo 2016

小規模構成でも 得られるメリット (2)

Page 31: 小規模でもGKE - DevFest Tokyo 2016

• K8sでは最小構成単位がPod

• Pod = 複数のコンテナ

• オーケストレーションの単位として

とても使いやすい

Podが最高すぎる

Page 32: 小規模でもGKE - DevFest Tokyo 2016

container

Page 33: 小規模でもGKE - DevFest Tokyo 2016

container

container

Page 34: 小規模でもGKE - DevFest Tokyo 2016

container

container

container

Page 35: 小規模でもGKE - DevFest Tokyo 2016

Podcontainer

container

container

Page 36: 小規模でもGKE - DevFest Tokyo 2016

Podcontainer

container

container

Page 37: 小規模でもGKE - DevFest Tokyo 2016

Node

Pod内のコンテナは 必ず同じ物理Nodeに 配置される!

Page 38: 小規模でもGKE - DevFest Tokyo 2016

Node

Pod内のコンテナは 必ず同じ物理Nodeに 配置される!

Page 39: 小規模でもGKE - DevFest Tokyo 2016

Node

Pod内のコンテナは 必ず同じ物理Nodeに 配置される!

Page 40: 小規模でもGKE - DevFest Tokyo 2016

Node

Pod内のコンテナは 必ず同じ物理Nodeに 配置される!

Page 41: 小規模でもGKE - DevFest Tokyo 2016

Node

Pod内のコンテナは 必ず同じ物理Nodeに 配置される!

Page 42: 小規模でもGKE - DevFest Tokyo 2016

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

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

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

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

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

小規模構成でも 得られるメリット (3)

Page 48: 小規模でもGKE - DevFest Tokyo 2016

• Deploymentが「システム構成のテンプレート」

• Replica Setが「実際にデプロイされている構成」

• Replica Setは世代ごとに管理されてる

Deploymentsが最高すぎる

Page 49: 小規模でもGKE - DevFest Tokyo 2016

• kubectl rollout undo

• いつでも「ひとつ前」の状態に戻れる

• 安心してデプロイ可能

Deploymentsが最高すぎる

Page 50: 小規模でもGKE - DevFest Tokyo 2016

小規模構成でも 得られるメリット (4)

Page 51: 小規模でもGKE - DevFest Tokyo 2016

• Let’s Encrypt対応

• 「勝手に」証明書の確認、取得、更新

• 複数ホスト名でも問題無し

• Ingressにannotationするだけ

kube-legoが最高すぎる

Page 52: 小規模でもGKE - DevFest Tokyo 2016

kube-legoが最高すぎる

Page 53: 小規模でもGKE - DevFest Tokyo 2016

小規模構成でも 得られるメリット (5)

Page 54: 小規模でもGKE - DevFest Tokyo 2016

• Cloud LoggingやMaglev(LB)を使える

• 特にログは何もしないでも使えて最高

GCPの恩恵が受けられる

Page 55: 小規模でもGKE - DevFest Tokyo 2016

小規模構成でも 得られるメリット (6)

Page 56: 小規模でもGKE - DevFest Tokyo 2016

• サーバー1台でもN台でも変わらない運用

• 今後どうなっても対応可能

細やかなスケール調整

Page 57: 小規模でもGKE - DevFest Tokyo 2016

• デプロイの圧倒的安心感

• デプロイの圧倒的スピード

• Googleのインフラを使いまくられる

• 複雑さが増す… が、それでもお得!

小規模でも… 総評

Page 58: 小規模でもGKE - DevFest Tokyo 2016

問題点

Page 59: 小規模でもGKE - DevFest Tokyo 2016

ある。が、 長くなるので続きは Web/懇親会で!

Page 60: 小規模でもGKE - DevFest Tokyo 2016

builderscon、10月末まで トーク応募受け付けてます!

Page 61: 小規模でもGKE - DevFest Tokyo 2016

The End