俺とdockerとtdiaryとkubernetes

23
俺とDockerとtDiaryとKubernetes 2014-12-20 kanazawa.rb PhalanXware 加藤真透

Upload: masayuki-katoh

Post on 18-Jul-2015

352 views

Category:

Software


1 download

TRANSCRIPT

Page 1: 俺とDockerとtDiaryとkubernetes

俺とDockerとtDiaryとKubernetes2014-12-20 kanazawa.rb PhalanXware 加藤真透

Page 2: 俺とDockerとtDiaryとkubernetes

ProfileName ふぁらお加藤 / @PharaohKJ

Hobby PENTAX K-5 / subculture

Job & Works PhalanXware (Freelancer)

OCR system .com / .net

ISDB-T MFC / Linux C++

Social Game PHP / Java

3D Tool OpenGLES(Mali)

ERP+CRM AngularJS / Cordova

Page 3: 俺とDockerとtDiaryとkubernetes

tDiary 2.1でましためでたい

Page 4: 俺とDockerとtDiaryとkubernetes

だがしかしカテゴリ周りでエラー。 どうもRuby 1.9系でJSONライブラリの非互換性で動かない模様。 ※現状(2014-12-20現在)ではなおっている模様

Page 5: 俺とDockerとtDiaryとkubernetes

もちろん俺のサーバはRuby1.9.3さくらVPS CentOS 6

Page 6: 俺とDockerとtDiaryとkubernetes

Ruby 1.9系 (笑)ぐぬぬ

Page 7: 俺とDockerとtDiaryとkubernetes

他のWebAppもRuby 2系要対応他にもいっぱい動いてて困った・・・。

Page 8: 俺とDockerとtDiaryとkubernetes

共存する仕組みrbenv、rvm、gemならbundler、、、、。 いろいろあるけど、あきらかに現環境を保ってだと考慮する必要がある。

Page 9: 俺とDockerとtDiaryとkubernetes

そうだ俺たちにはDockerがある

Page 10: 俺とDockerとtDiaryとkubernetes

Dockerコンテナの管理ソフト

Page 11: 俺とDockerとtDiaryとkubernetes

What is コンテナ「ハイパーバイザー型の仮想化」に対して、「コンテナー型の仮想化」

http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html

Page 12: 俺とDockerとtDiaryとkubernetes

超ウルトラハイパーデラックスざっくり言うとハイパーバイザー型 まず仮想マシンプロセスを動かす→その上にOSを入れる→その上でアプリを動かす

コンテナ型 OSも含めて全部一発でプロセス

Page 13: 俺とDockerとtDiaryとkubernetes

作ったhttps://registry.hub.docker.com/u/pharaohkj/tdiary/

ubuntu base GFM-Style Ready tDiary version 4.1.0.20141126 Powered by Ruby version 2.1.5-p273

docker run -p 80:19292 pharaohkj/tdiary

Page 14: 俺とDockerとtDiaryとkubernetes

Dockerfileで定義 しdocker runでインスタンスを作るみたいな感じ

Page 15: 俺とDockerとtDiaryとkubernetes

そのコンテナにどうやって引数を渡すの?docker run時にいろいろ引数を設定して渡す。 例えば、ポートとか、ディスクとか、接続にいく外部サービスとか。 docker run -e “SERVICE_PORT=100” など

Page 16: 俺とDockerとtDiaryとkubernetes

俺のtDiaryコマンドdocker run -p 10080:19292 -v /Users/pharaohkj/dockerwork/tdiary/data/tdata_gem:/var/www/data -t -i pharaohkj/tdiary

Dockerコンテナ上で動いている19292を俺のポート10080で設定し ディスクは~rdata_gemをコンテナ上のdataにマウントする

Page 17: 俺とDockerとtDiaryとkubernetes

そもそもコンテナってプロセスぽいので1サービス、1コンテナという感じ

Page 18: 俺とDockerとtDiaryとkubernetes

http + KVS + DB 3コンテナは普通いるよねJK的にはこの3コンテナはいるでしょ。

Page 19: 俺とDockerとtDiaryとkubernetes

コンテナ相互の情報や依存、パラメータ、、、それぞれの起動時のパラメータや、動いているの思い出したりして 管理するの無理っす。キツイっす。

Page 20: 俺とDockerとtDiaryとkubernetes

KubernetesGoogleがオープンソースとして公開したDockerを管理するフレームワーク

http://kubernetes.io より

Page 21: 俺とDockerとtDiaryとkubernetes

コンテナ運用をJSONで定義してAPIで叩けるつまり、どういうことなんです?

Page 22: 俺とDockerとtDiaryとkubernetes

つまりそのJSONを管理すればコードで、 インフラを定義できる。

コンテナの型はDockerfileでコード化し インフラはKubernetesでコード化できる。

やったね。

Page 23: 俺とDockerとtDiaryとkubernetes

2014-12-20 kanazawa.rb PhalanXware ふぁらお加藤

ご清聴ありがとうございました