Your SlideShare is downloading. ×
新しいOpenShiftのしくみを調べてみた
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

新しいOpenShiftのしくみを調べてみた

2,099
views

Published on

第22回 PaaS勉強会で発表した資料です

第22回 PaaS勉強会で発表した資料です

Published in: Technology

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,099
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
31
Comments
0
Likes
15
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 新しいOpenShiftのしくみを 調べてみた 第22回PaaS勉強会
  • 2. @jacopen Kazuto Kusama
  • 3. PaaS NTT Communications Cloudn
  • 4. Based on
  • 5. 2012/06/21 第7回 Cloud Foundry輪読会 http://www.slideshare.net/jacopen/openshift-13407714
  • 6. 2013/08/23 第13回 Cloud Foundry輪読会 http://www.slideshare.net/jacopen/open-shift-25522848
  • 7. 日本で一番最初にOpenShiftの 勉強会をやったのは、 Cloud Foundry輪読会!
  • 8. クラウドファウンドリーとオープンシフトゎ…… ズッ友だょ……!!
  • 9. Kubernetes
  • 10. Kubernetes • Googleが開発したコンテナ管理ツール • 複数ホストに渡るコンテナの管理ができる • PaaSではなく、あくまでもScheduler
  • 11. Software Design 2014年12月号に Kubernetesの記事かきました
  • 12. PaaSはデベロッパーのワークフローを助ける Kubernetesには… • 書いたコードをDockerイメージにする仕組みが無い • チームコラボレーションの機能が無い。そもそも複数 ユーザーで使えない • ログ収集の機能が弱い • メトリクス収集機能が弱い あくまでもSchedulerであり、PaaSではない。弱いとこ ろをカバーしたPaaSがあればいいのにな。
  • 13. 第20回の懇親会で 某氏「そういえば新しいOpenShiftは試しました?あ れ、かなりKubernetesですよ」 ぼく「え、マジっすか。じゃあ次回やります」
  • 14. というわけでやります
  • 15. 新しいOpenShift !? V4 → V3?
  • 16. OpenShift Origin Release 4 2.x Architecture https://github.com/openshift/origin-server
  • 17. OPENSHIFT v3
  • 18. OpenShift v3 Platform • OpenShiftの3代目アーキテクチャ • Docker, Kubernetes, Atomicを取り込んだ、まったく 新しいアーキテクチャになった • これまでのOriginとは別リポジトリで開発されている • Golang! https://github.com/openshift/origin
  • 19. まだまだalpha
  • 20. 動かしてみよう
  • 21. セットアップ ソースからビルド $ hack/build-go.sh #goの実行環境が必要 or precompile済バイナリのダウンロード $ wget https://github.com/openshift/origin/releases/download/v0.1/ openshift-origin-v0.1-deef796-linux-amd64.tar.gz
  • 22. セットアップ 起動 $ openshift start これだけで、OpenShift / Kubernetes / etcdなど必要な ものが全て立ち上がります。(バイナリ1個なのに・・・)
  • 23. セットアップ Vagrantを使う手も $ export OPENSHIFT_DEV_CLUSTER=true $ vagrant up
  • 24. DEMO
  • 25. OpenShiftコマンド $ openshift start [master|node] #サーバーが起動する $ openshift kube #Kubernetesのkubecfg 今の所、openshiftのバイナリ1つでサーバーにもクライ アントにもなる。
  • 26. かなりKubernetes
  • 27. Kubernetesの構成 Proxy pod pod pod docker Kubelet Container Container Container API Server Scheduler Kube Controller Replication Controller etcd Kubernetes Master Kubernetes Node (Minion)
  • 28. OpenShiftの構成 Build Controller Kubernetes masterを OpenShift masterがラップ Proxy pod pod pod docker Kubelet Container Container Container API Server Deployment Controller OpenShift Master etcd API Server Scheduler Kube Controller Replication Controller Kubernetes Master Kubernetes Node (Minion)
  • 29. API(抜粋) OpenShift API http://localhost:8080/osapi/v1beta1/builds http://localhost:8080/osapi/v1beta1/deployments http://localhost:8080/osapi/v1beta1/routes http://localhost:8080/osapi/v1beta1/projects http://localhost:8080/osapi/v1beta1/users http://localhost:8080/osapi/v1beta1/accessTokens Kubernetes API http://localhost:8080/api/v1beta2/pods http://localhost:8080/api/v1beta2/services http://localhost:8080/api/v1beta2/replicationControllers
  • 30. DEMO
  • 31. 概念 Kubernetesの概念はそのまま残ります • Pod • Service • ReplicationController
  • 32. 概念 OpenShiftによって追加されるもの • Build • Template • Deployment • Route • Project • User • Image/ImageRepository
  • 33. 全部解説すると時間が かかりすぎるので
  • 34. Request Routing Router Router State API Router State Kubernetes (Scheduler) URLに応じて、振り先のコンテナを変えるリクエスト ルータ。ステートの追加・削除・変更を行うAPIも。
  • 35. Image build Router Router State API Router State Kubernetes (Scheduler) Source Repo API Git Repositories Image Builds Image Reposigories 2.xと同じように、Gitによるデプロイが可能。 コードからDocker Imageを作成(Image build)
  • 36. Docker repository Router Router State API Router State Kubernetes (Scheduler) Source Repo API Git Repositories Image Builds Image Reposigories 生成されたDocker Imageは、内部のDocker Repository に保存される。作ったイメージを公開もできるらしい
  • 37. Multi tenancy Router Router State API Router State Kubernetes (Scheduler) Source Repo API Git Repositories Image Builds Image Reposigories Account Project Role 複数ユーザーで使える機能(PaaSなので必須だよね!) Account(User?),Project,Rolesなどの概念を持つ
  • 38. Event Router Router State API Router State Kubernetes (Scheduler) Source Repo API Git Repositories Image Builds Image Reposigories Account Project Role Event aggregator API Event Bus Policy Engine クラスタ内の様々なイベント(ホストに繋がらない、ルー タのエラー、nodeの削除等々)を収集。Policy Engineで アクションの規定などができる
  • 39. Logging / Metrics Router Router State API Router State Kubernetes (Scheduler) Source Repo API Git Repositories Image Builds Image Reposigories Account Project Role Event aggregator API Event Bus Policy Engine Logging Resouce Usage Metrics Application Metrics コンテナのログ収集や、リソースのメトリクス収集の 仕組みもできるようだ(journaldを使う)
  • 40. 2.xのカートリッジはどうなるの?
  • 41. OpenShift on OpenShift OpenShiftで必要なコンポーネントは、OpenShiftと同じイ ンフラで動き、管理される。Kubernetesが管理するコンテ ナとして各コンポーネントが動作する ⇒ PaaSを運用している身からすると、すごくいい考えだと 思う。PaaSを提供するためのコンポーネント運用は結構大 変
  • 42. まとめ • OpenShift v3は、まだま始まったばかり。すぐに使える というものではない • Kubernetesをコアに据えるなど、上手くDockerの流れに 乗ろうとしているなという印象 • Flynn や Deisと比べて、出来ることはあまり変わらない が、開発力が圧倒的なので最有力候補か? • まだモノが出来上がっていなくて消化不良なので、継続 して追っていきたい