小規模でもgke - devfest tokyo 2016

Post on 21-Apr-2017

1.214 Views

Category:

Engineering

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

小規模でもGKE!

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

株式会社 HDE

• 牧大輔 (lestrrat)

• 株式会社 HDE

• Perl/Go/C 等, peco

• builderscon 12月3日 開催!

https://builderscon.io/

=

Web+DB Press 10/22

GKE

GCP+Containers

Kubernetes

GKEについて

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

こちらをどうぞ

GKE使ってる人?

「k8s イイヨ!」

と、言い続けて幾星霜

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

なるほど…

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

小規模でもイイヨ!

背景

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

10年ほどやっていました

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

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

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

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

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

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

カンファレンスサイト

一人で手動運用

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

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

求められている運用

Deploying!

DEPLOYING

ということで

buildersconからは

GKEにしてみた

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

It’s on Github…

https://github.com/builderscon

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

• g1-small x 3台

• コンテナ7個+CloudSQLv2+Storage

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

構成

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

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

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

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

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

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

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

• Pod = 複数のコンテナ

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

とても使いやすい

Podが最高すぎる

container

container

container

container

container

container

Podcontainer

container

container

Podcontainer

container

container

Node

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

Node

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

Node

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

Node

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

Node

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

nginx

app

FROM nginx:alpine COPY /app/static-files /static-files

FROM alpine:3.4 COPY /app /app # (templates, static-files…)

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使っても結局同じ事)

nginx

app

FROM nginx:alpine VOLUME [ “/var/www” ]

FROM alpine:3.4 COPY /app /app # (templates, static-files…)

/static-files

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のディスクに ファイルをコピーして…

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 にマウントする

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

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

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

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

Deploymentsが最高すぎる

• kubectl rollout undo

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

• 安心してデプロイ可能

Deploymentsが最高すぎる

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

• Let’s Encrypt対応

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

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

• Ingressにannotationするだけ

kube-legoが最高すぎる

kube-legoが最高すぎる

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

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

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

GCPの恩恵が受けられる

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

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

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

細やかなスケール調整

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

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

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

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

小規模でも… 総評

問題点

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

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

The End

top related