Upload
minehiko-nohara
View
181
Download
0
Embed Size (px)
Citation preview
2
[1] 19:00 - 19:40 基本解説 Dockerとは? - テクノロジー概要 - 技術バックグラウンドおよび、Docker利用のメリット - 周辺テクノロジーの紹介 (Rancher、CoreOS、Docker Registry) [2] 19:40 - 20:00 休憩 [3] 20:00 - 21:00 実践!簡易Dockerクラウド構築 - ハンズオン - Docker Host構築 - Dockerの利用(WordPress構築) - Dockerコマンドの操作 - 管理サーバー(Rancher)の設定 - (カタログおよびリポジトリの登録) [4] 21:00 - 21:30 懇親会 (軽食あり)
なまえ: 野原 峰彦
2006年にマクニカグループに入社 自社SaaSサービス開発担当
Eメールアーカイブ製品担当
Web Analytics製品担当
仮想分散型Firewall製品担当
オーバーレイ型SDN製品担当
Hyper Converged System製品担当 他
現在はWeb分離製品のMenlo Securityと、Identity Federation製品のPing Identityを担当
3
なまえ: 野原 峰彦
2006年にマクニカグループに入社 自社SaaSサービス開発担当
Eメールアーカイブ製品担当
Web Analytics製品担当
仮想分散型Firewall製品担当
オーバーレイ型SDN製品担当
Hyper Converged System製品担当 他
現在はWeb分離製品のMenlo Securityと、Identity Federation製品のPing Identityを担当
4
一緒に働いていただける方、絶賛募集中!
多くの製品のサポートにおいて、解析ツール、監視ツールなどの環境が必要 2006年ごろは毎回サーバーを物理で構築してアプリをインストール (1日がかりの作業)
2010年ごろから仮想マシンで運用を開始するも、スケールや
バックアップ、リストア、利用可能なリソースなど、まだ課題は多かった
2015年ごろより、徐々に環境をDockerに移行
Zabbix、Nagiosなどの運用監視サーバー
Webサーバー
Squidサーバー
各種DBサーバーなど
取り扱い製品の一部をDockerイメージ化
5
8
[Graphite]
JSON形式でデータをリアルタイム
に収集し、グラフ化してくれる
ツール
[Grafana]
さまざまなデータをきめ細かに視
覚化し、アラート(4.0以降)を設定
することが可能なツール。
Graphiteのデータを直接参照する
ことが可能。
DotCloud社(現Docker社)が2013年のPyCon(Python Conference)で発表。その時点でのユーザーは5人。
コンテナを利用するための統合管理ツールであり、従来のLXCにさまざまな付加価値を追加して提供している。
オープンソースソフトウェアの「Docker」として公開され、その使い勝手の良さから、多くの開発者、IT部門の管理者で利用されはじめ、特に2015年以降、爆発的にユーザーが増加している。 10
LXCはLinuxカーネル上の隔離空間でアプリケーションプロセスを実行するテクノロジー(cgroups、namespaceを利用)
OS系のリソースは個別に消費する必要なし
通常のプロセスと同等のリソース消費のため、非常に軽量
11
一般的な仮想化 LXCを用いた仮想化
一般的な仮想環境では、まずHypervisor、ホストOSを構築し、その中に仮想マシンのOSをインストールする。
アプリケーションは仮想マシンの分離によって隔離された環境での動作を実現する。
LXCではLinux OS上に、cgroupやnamespaceを用いてリソースの隔離空間を構築する。OS環境は共有しつつ、アプリケーションを隔離空間で動作させる。
ポータブルデプロイ
アプリケーションの依存関係をすべて単一のオブジェクトに同梱
アプリケーション用の汎用パッケージングフォーマット
Dockerのコンテナはアプリケーションのデプロイに最適化した構造を提供
自動ビルド
ホスト環境に依存しない同梱のビルドツール、外部ツールとの連携サポート
バージョニング
GIT同様のバージョン管理機能を提供
コンポーネントの再利用
細分化されたイメージを再利用することができる
イメージ共有
パブリックリポジトリ(Docker Hub)の利用
エコシステム
隔離空間で動作するコンテナへの軽量かつHigh-level APIを提供
12
GitHubのように、Dockerのイメージを共有するためのパブリックレジストリー。
さまざまなメーカーがオフィシャルなイメージを公開しているほか、全ユーザーがイメージを公開し、共有できるクラウドサービス。
メジャーなアプリケーションの多くがイメージ化され公開されている。
13
Docker Hub
Auto build & Push
git add
Push Pull
GitHub など
GitHubのように、Dockerのイメージを共有するためのパブリックレジストリー。
さまざまなメーカーがオフィシャルなイメージを公開しているほか、全ユーザーがイメージを公開し、共有できるクラウドサービス。
メジャーなアプリケーションの多くがイメージ化され公開されている。
14
Docker Hub
Auto build & Push
git add
Push Pull
GitHub など
Docker Containerのダウンロード数: 80億+ Docker Hubのアプリ数: 50万+ Dockerを使った3rdパーティプロジェクト数: 10万+ (※ 2017年1月現在のデータ)
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
9,000,000,000
直近のDocker Container ダウンロード数の伸び Docker Container Downloads ※ データはHP上の2015年11月以降
15
Docker リリース
16
サーバーハードウェア サーバーハードウェア
OS OS
Hypervisor Docker Engine
Guest OS
Guest OS
Guest OS
Bin/libs
Bin/libs
Bin/libs
Bin/libs Bin/libs
App A App A* App B
App A App A* App B
とにかく軽量!
コンテナ
VMs
17
サーバーハードウェア
Ubuntu
Docker Engine
Bin/libs Bin/libs
App A App A* App B
サーバーハードウェア
CentOS
Docker Engine
Bin/libs Bin/libs
App A App A* App B
実行環境、Dependency問題を気にしない ポータビリティ
18
非常に豊富なアプリケーションとエコシステム
• Docker Hub上には50万+のイメージを保存(2017/1現在)
• 探せばかなりのアプリケーションが見つかる
• メーカーオフィシャルな物も豊富 • タグによりバージョン管理 • 自分自身のイメージを公開可能 • Docker Hub利用のためのさまざまな
APIやツールが提供されている • Docker連携の製品も非常に豊富
19
Docker Container
Base Image
FS Layer
FS Layer
FS Layer
FS Layer
FS Layer
FS Layer
FS Layer
Dockerコンテナは小さいイメージの集合体 による、パッケージ化されたアプリ実行環境
Docker Container
Doker0 (Linux Bridge)
20
Linux OS 192.168.0.1
Iptables (SNAT/DNAT) -- $ sudo iptables -t nat -L –n
DNAT tcp -- anywhere anywhere tcp dpt:13306 to:172.17.0.3:3306 DNAT tcp -- anywhere anywhere tcp dpt:10080 to:172.17.0.2:80 DNAT tcp -- anywhere anywhere tcp dpt:8080 to:172.17.0.1:80
App1 172.17.0.1 (Zabbix:80)
App2 172.17.0.2
(Mediawiki:80)
App3 172.17.0.3 (mysql:3306)
192.168.0.1:8080 App2
192.168.0.1:10080 App1
192.168.0.1:13306 App3
特定サービスの軽量化 アプリケーションのコアサービスやDBのインターフェイスをコンテナで提供する 全体のリソースを削減 インストールの簡素化 容易なスケール、迅速なフェイルオーバーと再起動
Web Server/スマホアプリ アクセスの上下 変動が激しく、画一サービスを提供するコンテンツ 軽量なため、数百、数千単位までスケールさせて利用することも可能 レスポンスが悪くなったものは随時削除とリビルドを行う
試験用、評価用ツールとして すぐに使ってみたいアプリケーションをイメージからインポート 短時間で簡単に構築。リソース消費も極すくない バックアップも容易に小容量で取得。マイグレーションも容易。
21
セキュリティ
Docker Hubのイメージ管理 36%のイメージは脆弱性をもつとの統計情報も。
マルウェア感染時の対策
アクセス時のオーバーヘッド
※ 現在はさまざまなソリューションが出始めています。
22
Docker for Windows
Docker for Mac
Docker Swarm Machine dockerのコンテナのスケールやクラスタ内のFailOverが、3rdパーティソフトや拡張機能を用いることなく管理・実現可能に。
23
24
Docker OpenSourceのコンテナ管理ツール。現在のコンテナブームの火付け役
rkt セキュリティや効率、構築のしやすさが重視されるアプリケーションに適したコンテナのランタイムApplication Container(appc)specに準拠
Apache Mesos 元々は分散したリソースを統合利用するツールとして有名。 Dockerのコンテナをジョブで管理、運用する分散処理フレームワーク
runC 2015にDockerconで発表された新しいコンテナRuntime runCはDocker Engineと同じ技術であるlibcontainer上に実装 従来のDockerイメージはそのまま実行可能 コンテナはrunCの子プロセスとして起動するためデーモンが不要 WindowsとLinuxをネイティブにサポートする
Docker Swarm 複数のDockerホストをクラスタ化するためのツール
Kubernetes 複数のDockerホストをクラスタ化し、Podというコンテナグループのスケール管理を行うツール
Open Container INITIATIVE コンテナ技術の統一化を目指すプロジェクト runCをベーステクノロジとしている Open Container ProjectからOPEN CONTAINER INITIATIVEに改名。OCPだと混乱のもとになるため。
Kuryr OpenStackのコンテナ用API Libertyより実装し、MitakaからNeutronと統合
25
CoreOS Docker、rktなどをネイティブでサポート CoreOS同士でのクラスタ構成に利用可能なFleetをデフォルトでサポート コンテナの起動専用にデザインされた非常に軽量なOS
Tectonic Kubernetesに特化したUI付のOS (By CoreOS) 非常に注目度が高い。そして、コストも高め・・
Atomic Host Red HatによるDocker専用OS 内部テクノロジーは殆どTectonicと同じ サポートが充実
Photon OS VMWareによるコンテナ専用OS NSXなど、独自のSDNソリューションとの連携あり
Rancher / Rancher OS Dockerの統合管理用OSS 高機能なコンテナ運用UIを提供する Rancher OSというDocker専用OSもある
OpenStack Magnum Docker Swarm、Kubernetes、Mesosをサポート OpenStackのHeat機能を用いてコンテナインフラストラクチャを自動構築
Docker Registry Docker HUBの機能をオンプレミスで提供するOSS
パブリックに公開できないイメージをオンプレミスのみで管理する
Rancher
Dockerの統合管理用OSS
高機能なコンテナ運用UIを提供する
最新版では日本語もサポート
CoreOS
Docker、rktなどをネイティブでサポート
CoreOS同士でのクラスタ構成に利用可能なFleetをデフォルトでサポート
コンテナの起動専用にデザインされた非常に軽量なOS
Docker Registry
Docker HUBの機能をオンプレミスで提供するOSS
パブリックに公開できないイメージをオンプレミスのみで管理する
26
28
担当中の製品がSSOに対応したからPingFederate使いたいんだけど、どうやって構築したらいいの・・?
Dockerクラウドにありますよー!
ログ解析でたまーにSplunk使いたいんだけど、構築するのが面倒なんだよねー。
Dockerクラウドで一時的な利用も可能ですよ。
MySQLのサーバー持ってない?
Dockerクラウドなら2分で起動しますよ。
社員A
社員B
社員C
29
Pythonの実行環境で「Jupiter」使いたいんだ
けど、いろんな環境にコピーしないといけないし、構築が結構面倒なんですよ。。
これもイメージ追加しときましたよー!
はい。ありますよー。
社員A
社員B
社員C
イメージ追加しときましたよー。
今回CitrixがCPXっていうコンテナ型LBをリ
リースしたんだけど、デモ用で簡単に構築できる環境ないかな。
「graphite」ってソフトと「grafana」ってソフトを使いたいんだけど・・
ユーザーインターフェイスはRancher1.1を利用 (現在1.5xへの移行テスト中)
Appカタログは、Privateカタログを利用 信頼されたOfficialイメージはDocker HUBより取得 オリジナルのイメージは原則オンプレのDockerレジストリより取得 ※ これにより、問題のあるアプリの利用を極力避ける
Docker HostはCoreOSの1298.6.0を利用(Stable最新版。Docker versionは1.12.6) Quota(リソース制限)を目的として、Docker Hostはユーザーごとに独立したものを提供
仮想環境上に構築しているため、リソースはオーバーコミット前提
バックアップはNutanixのスナップショット機能を利用 Rancherサーバーの監視は、現状はwgetの401応答を5分間隔で実施
30
カタログ2
31
社員A 社員B 社員C 社員D
自社作成イメージ系 信頼性の高いオフィシャルなイメージなど
イメージ取得 イメージ取得
カタログ1
Docker Registry
CoreOS CoreOS CoreOS CoreOS
Backup
Backup
GitHub Enterprise
Prism + vSphere
HUB
利用者Aさん アプリをデプロイする手間がほとんどなくなった。
使いたいアプリをすぐ使えるのがとても良い!
利用者Bさん
都度初期化をして使っていたようなアプリがあったが、その手順も楽になった。
LBなどの設定も簡単利用できるので、助かっている。
利用者Cさん
自社取り扱い製品のアプリもオンデマンド利用が可能に。Dockerを意識せずに普通に使えている。 リリースバージョンごとに一時的なUI確認や評価に利用できて、非常に便利。
設定ファイルを変えるために都度Namespace入る必要がない。
32
CoreOSでDockerサービスが意図せず停止する CoreOS自動アップデートが原因と判明。(製品コンセプト)
必要な箇所は自動アップデートの停止を実装。
RancherへのDocker Hostの複数登録で問題が出る Rancherのアップデート(1.3以降)で解決。
RancherのExecute shell画面が開かなくなる Rancherのアップデート(1.3以降)で解決。
RancherのUIが英語 Rancherのアップデート(1.2以降)で日本語対応済み。
アカウント管理が煩雑 社内AD連携のテスト実施中。
HA構成の実装 現状は未構成。将来的に実装を検討中。
33
ほとんどのアプリケーションは物理にインストールしても仮想環境でもDockerでも同じように使えます。
Dockerによって環境構築の手間は飛躍的に削減できます。
さまざまな3rd パーティ製品との組み合わせで、さらに便利に利用することができるようになります。
34
Dockerオフィシャルサイト https://www.docker.com/
Rancherオフィシャルサイト http://rancher.com/
CoreOSオフィシャルサイト https://coreos.com/
Docker Registry公式ドキュメント https://docs.docker.com/registry/
GitHub Enterprise https://enterprise.github.com/home
Citrix NetScalar CPX Expressについて https://www.microloadbalancer.com/
35
DockerやDockerを用いた製品は、よくROIにクローズアップして紹介されます。 しかし、ROIだけではなく、Time To Market
を格段に早め、企業の競争力を高めるための強力なツールとして利用されるケースも多くなっています。
36
お手元の”ハンズオン情報(UserXX)”に記載のWifiに接続してください
今回のハンズオン環境はAWS上に構築しており、このWifi以外からのアクセスは許可されておりません。
ドキュメント共有サイト(OwnCloud)に接続し、Keypairをダウンロードしてください。
ハンズオン用のホストへのSSHアクセスにはKeypairが必要です。
37