Top Banner
Container Tech Night -- 第一回勉強会 2017/3/29 @minepicco 1
38

20170329 container technight-第一回勉強会

Apr 06, 2017

Download

Technology

Minehiko Nohara
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 20170329 container technight-第一回勉強会

Container Tech Night -- 第一回勉強会

2017/3/29

@minepicco

1

Page 2: 20170329 container technight-第一回勉強会

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 懇親会 (軽食あり)

Page 3: 20170329 container technight-第一回勉強会

なまえ: 野原 峰彦

2006年にマクニカグループに入社 自社SaaSサービス開発担当

Eメールアーカイブ製品担当

Web Analytics製品担当

仮想分散型Firewall製品担当

オーバーレイ型SDN製品担当

Hyper Converged System製品担当 他

現在はWeb分離製品のMenlo Securityと、Identity Federation製品のPing Identityを担当

3

Page 4: 20170329 container technight-第一回勉強会

なまえ: 野原 峰彦

2006年にマクニカグループに入社 自社SaaSサービス開発担当

Eメールアーカイブ製品担当

Web Analytics製品担当

仮想分散型Firewall製品担当

オーバーレイ型SDN製品担当

Hyper Converged System製品担当 他

現在はWeb分離製品のMenlo Securityと、Identity Federation製品のPing Identityを担当

4

一緒に働いていただける方、絶賛募集中!

Page 5: 20170329 container technight-第一回勉強会

多くの製品のサポートにおいて、解析ツール、監視ツールなどの環境が必要 2006年ごろは毎回サーバーを物理で構築してアプリをインストール (1日がかりの作業)

2010年ごろから仮想マシンで運用を開始するも、スケールや

バックアップ、リストア、利用可能なリソースなど、まだ課題は多かった

2015年ごろより、徐々に環境をDockerに移行

Zabbix、Nagiosなどの運用監視サーバー

Webサーバー

Squidサーバー

各種DBサーバーなど

取り扱い製品の一部をDockerイメージ化

5

Page 6: 20170329 container technight-第一回勉強会

6

Dockerをご存知ですか?

Dockerを使っている or 使ったことはありますか?

Page 7: 20170329 container technight-第一回勉強会

メーカーがシステム監視にGraphite/Grafanaを利用を推奨

7

サポートのため、マクニカでも環境を構築することに。

面倒くさそう・・・

そうだ、Dockerを使おう!

Page 8: 20170329 container technight-第一回勉強会

8

[Graphite]

JSON形式でデータをリアルタイム

に収集し、グラフ化してくれる

ツール

[Grafana]

さまざまなデータをきめ細かに視

覚化し、アラート(4.0以降)を設定

することが可能なツール。

Graphiteのデータを直接参照する

ことが可能。

Page 9: 20170329 container technight-第一回勉強会

ご安心を!どんどん便利になっています。詳細は後程・・

9

Page 10: 20170329 container technight-第一回勉強会

DotCloud社(現Docker社)が2013年のPyCon(Python Conference)で発表。その時点でのユーザーは5人。

コンテナを利用するための統合管理ツールであり、従来のLXCにさまざまな付加価値を追加して提供している。

オープンソースソフトウェアの「Docker」として公開され、その使い勝手の良さから、多くの開発者、IT部門の管理者で利用されはじめ、特に2015年以降、爆発的にユーザーが増加している。 10

Page 11: 20170329 container technight-第一回勉強会

LXCはLinuxカーネル上の隔離空間でアプリケーションプロセスを実行するテクノロジー(cgroups、namespaceを利用)

OS系のリソースは個別に消費する必要なし

通常のプロセスと同等のリソース消費のため、非常に軽量

11

一般的な仮想化 LXCを用いた仮想化

一般的な仮想環境では、まずHypervisor、ホストOSを構築し、その中に仮想マシンのOSをインストールする。

アプリケーションは仮想マシンの分離によって隔離された環境での動作を実現する。

LXCではLinux OS上に、cgroupやnamespaceを用いてリソースの隔離空間を構築する。OS環境は共有しつつ、アプリケーションを隔離空間で動作させる。

Page 12: 20170329 container technight-第一回勉強会

ポータブルデプロイ

アプリケーションの依存関係をすべて単一のオブジェクトに同梱

アプリケーション用の汎用パッケージングフォーマット

Dockerのコンテナはアプリケーションのデプロイに最適化した構造を提供

自動ビルド

ホスト環境に依存しない同梱のビルドツール、外部ツールとの連携サポート

バージョニング

GIT同様のバージョン管理機能を提供

コンポーネントの再利用

細分化されたイメージを再利用することができる

イメージ共有

パブリックリポジトリ(Docker Hub)の利用

エコシステム

隔離空間で動作するコンテナへの軽量かつHigh-level APIを提供

12

Page 13: 20170329 container technight-第一回勉強会

GitHubのように、Dockerのイメージを共有するためのパブリックレジストリー。

さまざまなメーカーがオフィシャルなイメージを公開しているほか、全ユーザーがイメージを公開し、共有できるクラウドサービス。

メジャーなアプリケーションの多くがイメージ化され公開されている。

13

Docker Hub

Auto build & Push

git add

Push Pull

GitHub など

Page 14: 20170329 container technight-第一回勉強会

GitHubのように、Dockerのイメージを共有するためのパブリックレジストリー。

さまざまなメーカーがオフィシャルなイメージを公開しているほか、全ユーザーがイメージを公開し、共有できるクラウドサービス。

メジャーなアプリケーションの多くがイメージ化され公開されている。

14

Docker Hub

Auto build & Push

git add

Push Pull

GitHub など

Docker Containerのダウンロード数: 80億+ Docker Hubのアプリ数: 50万+ Dockerを使った3rdパーティプロジェクト数: 10万+ (※ 2017年1月現在のデータ)

Page 15: 20170329 container technight-第一回勉強会

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 リリース

Page 16: 20170329 container technight-第一回勉強会

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

Page 17: 20170329 container technight-第一回勉強会

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問題を気にしない ポータビリティ

Page 18: 20170329 container technight-第一回勉強会

18

非常に豊富なアプリケーションとエコシステム

• Docker Hub上には50万+のイメージを保存(2017/1現在)

• 探せばかなりのアプリケーションが見つかる

• メーカーオフィシャルな物も豊富 • タグによりバージョン管理 • 自分自身のイメージを公開可能 • Docker Hub利用のためのさまざまな

APIやツールが提供されている • Docker連携の製品も非常に豊富

Page 19: 20170329 container technight-第一回勉強会

19

Docker Container

Base Image

FS Layer

FS Layer

FS Layer

FS Layer

FS Layer

FS Layer

FS Layer

Dockerコンテナは小さいイメージの集合体 による、パッケージ化されたアプリ実行環境

Docker Container

Page 20: 20170329 container technight-第一回勉強会

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

Page 21: 20170329 container technight-第一回勉強会

特定サービスの軽量化 アプリケーションのコアサービスやDBのインターフェイスをコンテナで提供する 全体のリソースを削減 インストールの簡素化 容易なスケール、迅速なフェイルオーバーと再起動

Web Server/スマホアプリ アクセスの上下 変動が激しく、画一サービスを提供するコンテンツ 軽量なため、数百、数千単位までスケールさせて利用することも可能 レスポンスが悪くなったものは随時削除とリビルドを行う

試験用、評価用ツールとして すぐに使ってみたいアプリケーションをイメージからインポート 短時間で簡単に構築。リソース消費も極すくない バックアップも容易に小容量で取得。マイグレーションも容易。

21

Page 22: 20170329 container technight-第一回勉強会

セキュリティ

Docker Hubのイメージ管理 36%のイメージは脆弱性をもつとの統計情報も。

マルウェア感染時の対策

アクセス時のオーバーヘッド

※ 現在はさまざまなソリューションが出始めています。

22

Page 23: 20170329 container technight-第一回勉強会

Docker for Windows

Docker for Mac

Docker Swarm Machine dockerのコンテナのスケールやクラスタ内のFailOverが、3rdパーティソフトや拡張機能を用いることなく管理・実現可能に。

23

Page 24: 20170329 container technight-第一回勉強会

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と統合

Page 25: 20170329 container technight-第一回勉強会

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

パブリックに公開できないイメージをオンプレミスのみで管理する

Page 26: 20170329 container technight-第一回勉強会

Rancher

Dockerの統合管理用OSS

高機能なコンテナ運用UIを提供する

最新版では日本語もサポート

CoreOS

Docker、rktなどをネイティブでサポート

CoreOS同士でのクラスタ構成に利用可能なFleetをデフォルトでサポート

コンテナの起動専用にデザインされた非常に軽量なOS

Docker Registry

Docker HUBの機能をオンプレミスで提供するOSS

パブリックに公開できないイメージをオンプレミスのみで管理する

26

Page 27: 20170329 container technight-第一回勉強会

マクニカではRancherが提供するWeb UI をもちいたDockerクラウドを提供

27

Page 28: 20170329 container technight-第一回勉強会

28

担当中の製品がSSOに対応したからPingFederate使いたいんだけど、どうやって構築したらいいの・・?

Dockerクラウドにありますよー!

ログ解析でたまーにSplunk使いたいんだけど、構築するのが面倒なんだよねー。

Dockerクラウドで一時的な利用も可能ですよ。

MySQLのサーバー持ってない?

Dockerクラウドなら2分で起動しますよ。

社員A

社員B

社員C

Page 29: 20170329 container technight-第一回勉強会

29

Pythonの実行環境で「Jupiter」使いたいんだ

けど、いろんな環境にコピーしないといけないし、構築が結構面倒なんですよ。。

これもイメージ追加しときましたよー!

はい。ありますよー。

社員A

社員B

社員C

イメージ追加しときましたよー。

今回CitrixがCPXっていうコンテナ型LBをリ

リースしたんだけど、デモ用で簡単に構築できる環境ないかな。

「graphite」ってソフトと「grafana」ってソフトを使いたいんだけど・・

Page 30: 20170329 container technight-第一回勉強会

ユーザーインターフェイスは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

Page 31: 20170329 container technight-第一回勉強会

カタログ2

31

社員A 社員B 社員C 社員D

自社作成イメージ系 信頼性の高いオフィシャルなイメージなど

イメージ取得 イメージ取得

カタログ1

Docker Registry

CoreOS CoreOS CoreOS CoreOS

Backup

Backup

GitHub Enterprise

Prism + vSphere

HUB

Page 32: 20170329 container technight-第一回勉強会

利用者Aさん アプリをデプロイする手間がほとんどなくなった。

使いたいアプリをすぐ使えるのがとても良い!

利用者Bさん

都度初期化をして使っていたようなアプリがあったが、その手順も楽になった。

LBなどの設定も簡単利用できるので、助かっている。

利用者Cさん

自社取り扱い製品のアプリもオンデマンド利用が可能に。Dockerを意識せずに普通に使えている。 リリースバージョンごとに一時的なUI確認や評価に利用できて、非常に便利。

設定ファイルを変えるために都度Namespace入る必要がない。

32

Page 33: 20170329 container technight-第一回勉強会

CoreOSでDockerサービスが意図せず停止する CoreOS自動アップデートが原因と判明。(製品コンセプト)

必要な箇所は自動アップデートの停止を実装。

RancherへのDocker Hostの複数登録で問題が出る Rancherのアップデート(1.3以降)で解決。

RancherのExecute shell画面が開かなくなる Rancherのアップデート(1.3以降)で解決。

RancherのUIが英語 Rancherのアップデート(1.2以降)で日本語対応済み。

アカウント管理が煩雑 社内AD連携のテスト実施中。

HA構成の実装 現状は未構成。将来的に実装を検討中。

33

Page 34: 20170329 container technight-第一回勉強会

ほとんどのアプリケーションは物理にインストールしても仮想環境でもDockerでも同じように使えます。

Dockerによって環境構築の手間は飛躍的に削減できます。

さまざまな3rd パーティ製品との組み合わせで、さらに便利に利用することができるようになります。

34

Page 35: 20170329 container technight-第一回勉強会

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

Page 36: 20170329 container technight-第一回勉強会

DockerやDockerを用いた製品は、よくROIにクローズアップして紹介されます。 しかし、ROIだけではなく、Time To Market

を格段に早め、企業の競争力を高めるための強力なツールとして利用されるケースも多くなっています。

36

Page 37: 20170329 container technight-第一回勉強会

お手元の”ハンズオン情報(UserXX)”に記載のWifiに接続してください

今回のハンズオン環境はAWS上に構築しており、このWifi以外からのアクセスは許可されておりません。

ドキュメント共有サイト(OwnCloud)に接続し、Keypairをダウンロードしてください。

ハンズオン用のホストへのSSHアクセスにはKeypairが必要です。

37

Page 38: 20170329 container technight-第一回勉強会

Thank you @minepicco

38