インフラエンジニアのための
を使った Docker 運用入門
@zembutsu
#qpstudy 2015.06 Lightning Talk
2
このスライドで得られる知識
‣ 仮想化→クラウド化→コンテナ化の潮流
これはいつか来た道と同じでは。利用者の利便性向上が勝利の鍵。一方で、Dockerの光と影、そして炎上へ。
‣ Rancherは本番環境向けDocker管理ツール
Open Sourceプロジェクトとして開発中。GitHubおよびDockerHubで
配布中。2015年6月にベータ版がリリース。Rancherは、クラウド
事業者(プロバイダ)だけでなく様々なVPSやローカル環境で動作
するDocker管理システム。Docker APIをネイティブにサポートし
ているのと、初期状態で管理画面がGUIを備えているのが特長。
ロードバランサやヘルスチェック、簡易監視、ボリューム複製等。
‣ Rancher の導入とコンテナ管理方法
インフラエンジニアのためのDocker運用入門
Summary of this slide
- Virtualization  Cloud
 Containerization
- Rancher is an infrastructure
platform for Docker in Production
!
WARNINGS
本スライドには過激な表現やネットスラング、アニメ、
ゲームなど、アキバ的文化の演出が含まれています。
!
発表は個人の自由意志によるものであり、所属組織の
意見を代表するものでもなく、特定製品やサービスに
対しての宣伝・擁護・毀損を目的とはしていません。
! 不真面目です。LTなので許してくだしあ
This slide is presentation announcement by my personal will, and that is why it is
not a thing representing the opinion of my organization and the group to belong
to, and this is not a thing aimed for advertising and comments.
一応、お約束的な。
4
自己紹介
‣ @zembutsu a.k.a. 前佛雅人
- Technology Evangelist; Creationline, Inc. – 1.5 yrs
- Data Center Operations Engineer – 15+ yrs
興味関心:運用監視自動化、趣味でOSSやクラウド系の検証・情報発信
- SlideShare http://slideshare.net/zembutsu
- Blog http://pocketstudio.jp/log3
書籍・記事
- Serf/Consulで管理を自動化! (Gihyo.jp)
http://gihyo.jp/admin/feature/01/serf-consul
- HashiCorpのツール群からみる
インフラ構築運用の未来 (Think IT)
http://thinkit.co.jp/book/2015/03/05/5700
Why am I here?
+MasahitoZembutsu
何がダメなのか探してください。
このアカウントは全否定したいと思っているものです。
このような結果になったのは、全て自分の責任です。
何かの間違いでこのアカウントやスライドを見かけた方は
「@zembutsu」の何がダメなのかを探してみてください。
そこから気づける人がひとりでもいらっしゃれば、
このスライドを出した意味があると思っています。
ISBN-10: 4774174416 ISBN-10: 4844338145 ISBN-10: 4798139785
あからさまなステマ
※ イ メ ー ジ で す 。
※ 効 用 ・ 効 果 に は 個 人 差 が あ り ま す 。https://twitter.com/zembutsu/status/611736712704712705
最近考えていること…。
6
‣ リアルタイム視聴中
シドニアの騎士 第9惑星戦役, SHOW BY ROCK!!,
Fate/stay night UBW 2nd, ガンスリンガーストラトス,
攻殻機動隊 ARISE ALTERNATIVE ARCHITECTURE
‣ 途中まで観た
響け!ユーフォニアム, プラスティック・メモリーズ, 電波教師. アルスラーン戦記. 放課後のプレアデス, えとたま,
ハロー!!きんいろモザイク. クリザイアの迷宮・楽園, ダンジョンに出会いを求めるのは間違っているだろうか, プリパラ
‣ あとで観る(録画中)
やはり俺の青春ラブコメはまちがっている 続. パンチライン, 血界戦線, レーカン!, ニセコイ, てさぐれ, 銀魂
今期観てるアニメ 2015 Spring
My Favorite Anime Series in this season.
★★★★★★
★★
★★
★★★ ★★★ ★
★★
★
★
7
‣ 観る
ミス・モノクローム-The Animation- 2, GANGSTA., 青春×機関銃,
GATE, Classroom☆Crisis, VENUS PROJECT, ワカコ酒, 監獄学園,
下ネタという概念が存在しない退屈な世界, 赤髭の白雪姫,
のんのんびより リピート, 空戦魔導士候補生の教官, Charlotte
‣ あとで観る
城下町のダンデライオン, 戦姫絶唱シンフォギアGX, うーさーのその日ぐらし夢幻編, デュラララ!!x2 転,
WORKING!!!, ガッチャマン クラウズ インサイト, ミリオンドール, オーバーロード, がっこうぐらし!,
Fate/kaleid liner プリズマ☆イリヤ ツヴァイ ヘルツ!, アイドルマスター シンデレラガールズ 2nd SEASON
来期観る予定のアニメ 2015 Summer
I should be watching in next season.
★★★
★★★★★
★★
★
★
★
★
Now, I would like to move onto the main subject.
すみません、
本題に戻ります。。
Docker will be commodity one for everyone, maybe.
Recognition of current situation
簡単に、現状における
業界動向を整理します。
CLOUDCOMPUTING!!
気がつけば、誰もが
クラウドクラウド……
こちらのクラウドでは
ありません。
The NIST Definition of Cloud Computing (NIST Special Publication 800-145)
http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
NISTによるクラウドコンピューティングの定義 米国国立標準技術研究所による推奨(IPA翻訳版)
https://www.ipa.go.jp/files/000025366.pdf
基本的な特長:
• オンデマンド・セルフサービス
• 幅広いネットワークアクセス
• リソースの共用
• スピーディーな拡張性
• サービスが計測可能であること
サービスモデル:
• SaaS ( Software as a Service )
• PaaS ( Platform as a Service )
• IaaS ( Infrastructure as a Service )
実装モデル:
• Private Cloud
• Community Cloud
• Public Cloud
• Hybrid Cloud
Amazon Web Services
Google Cloud Platform
Windows Azure
SoftLayer
Niftyクラウド
さくらのクラウド
Salesforce
Heroku
DigitalOcean
LinodeさくらのVPS
VMware
Circle CI
Jenkins
GitHub
Slack
NewRelic
Datadog
PagerDuty
Atlas
Cloud n
クラウドを取り巻く業界俯瞰図
Mackerel
OpenStack
CloudStack
ざっくり見てみましょう。
OpenStack
CloudStack
Mackerel
Amazon Web Services
Google Cloud Platform
Windows Azure
SoftLayer
Niftyクラウド
さくらのクラウド
Salesforce
Heroku
DigitalOcean
LinodeさくらのVPS
VMware
Circle CI
Jenkins
GitHub
Slack
NewRelic
Datadog
IaaS
パブリック・クラウド
日本国内
パブリック
クラウド
VPS
PagerDuty
Operations
CI
PaaS
Atlas
プライベート
クラウド
開発環境 SaaS
Cloud n
クラウドを取り巻く業界俯瞰図
Monitoring
OpenStack
CloudStack
Mackerel
Amazon Web Services
Google Cloud Platform
Windows Azure
SoftLayer
Niftyクラウド
さくらのクラウド
Salesforce
Heroku
DigitalOcean
LinodeさくらのVPS
VMware
Circle CI
Jenkins
GitHub
Slack
NewRelic
Datadog
IaaS
パブリック・クラウド
日本国内
パブリック
クラウド
VPS
Monitoring
PagerDuty
Operations
CI
PaaS
Atlas
プライベート
クラウド
開発環境 SaaS
Cloud n
Docker
( Linux Containers)
クラウドを取り巻く業界俯瞰図 突如、Dockerが現れ…
OpenStack
CloudStack
Mackerel
Amazon Web Services
Google Cloud Platform
Windows Azure
SoftLayer
Niftyクラウド
さくらのクラウド
Salesforce
Heroku
DigitalOcean
LinodeさくらのVPS
VMware
Circle CI
Jenkins
GitHub
Slack
NewRelic
Datadog
IaaS
パブリック・クラウド
日本国内
パブリック
クラウド
VPS
Monitoring
PagerDuty
Operations
CI
PaaS
Atlas
プライベート
クラウド
開発環境 SaaS
Cloud n
Docker
( Linux Containers)
クラウドを取り巻く業界俯瞰図 色々な範囲を呑み込み
領域を拡げています。
鍵になるのは、
コンテナ技術と、
可搬性(portability)と
何よりも、利便性向上。
Googleトレンドの傾向
からもDockerは上昇の
流れにあります。
仮想化(笑)
↓
クラウド(笑)
とは言え、新技術は…
仮想化(笑)
↓
クラウド(笑)
↓
コンテナ(笑) New!!
とは言え、新技術は…
※参考 http://news23.2ch.net/test/read.cgi/news/1191543787/262-300
262 : 迎撃ミサイル(樺太):2007/10/05(金) 11:19:21 ID:5rVKK9zmO
いい加減クラウドを仮想化と勘違いしている奴うぜぇ
仮想化じゃないし
S*lesforceの方がよっぽどクラウド
265 : ほうとう屋(コネチカット州):2007/10/05(金) 11:19:55 ID:Oii8adYTO
だがちょっと待って欲しい!仮想化がLXCだったら評価は変わるのではなかろうか
272 : 国連職員(岐阜県):2007/10/05(金) 11:23:52 ID:sbJDr0Yw0
>>262
仮想化よりはクラウドと勘違いされてた方が客は集まると思う
278 : 迎撃ミサイル(樺太):2007/10/05(金) 11:24:56 ID:5rVKK9zmO
アンチは的はずれな批判をしすぎ
仮想化じゃねぇって何回言わせるんだ
次クラウドは仮想化って言う奴いたらみんなでそいつを無視な
288 : 張出横綱(樺太):2007/10/05(金) 11:28:40 ID:7IVIzaH5O
仮想化じゃなかったらなんなのよ
300 : 迎撃ミサイル(樺太):2007/10/05(金) 11:31:22 ID:5rVKK9zmO
>>288
人生…かな?
俺はクラウドには萌えなんて感情は抱かないけど技術に魅入られた
割とバズワードな流行
のように思われがち。
当時は(笑)で草不可避
こんな状況でしたが、
気がつけば、あれっ?
仮想化
↓
クラナド
↓
コンテナ, Docker(笑) New!!
たぶんそこに仲間が…
お、おう
What are Docker’s benefits?
32
‣ コンテナ化とは、ホストOS上のKernel機能を使い
複数の root ファイルシステムを実行できる。
各々の root ファイルシステムの事を「コンテナ」( container ) と呼称する。
これ何て chroot?と言われる所以。
‣ 各々のコンテナは各々のリソースを持つ
プロセス(計算資源)
メモリ
デバイス
ネットワーク
そもそもコンテナって何でしたっけ?
33
‣ 開発者にとっての効率の良さ
すぐに利用できる点と、バージョン・コントロール、CI/CDの自動化。
‣ アプリケーションのポータビリティ
開発をはじめ、テストやリリースに至るまで、コンテナを通して一環したインフラ環境を利用できる。
‣ ポイント
Dockerそのものが何かするのではない(仮想化・クラウドと同じ)
Dockerは、あくまでも、利用者の利便性を向上する道具
Dockerはインフラを抽象化
--developer’s efficiency and application portability
物理時代
仮想化・クラウド時代
コンテナ時代
機
材
発
注
機
材
納
品
設
置
機
器
設
定
事
前
設
計
ク
リ
ッ
ク
見
積
も
り
O
S
設
定
環
境
構
築
試
験
利
用
開
始
試
験
開
発
試
験
運
用
利
用
開
始
…
…
事
前
設
計
ク
リ
ッ
ク
試
験
利
用
開
始
…
事
前
設
計
ク
リ
ッ
ク
試
験
利
用
開
始
…
開 発 段 階 検 証 段 階 本 番 段 階
すべてを迅速に、一貫した環境で行いやすい← New
社外開発環境 本番環境ステージング環境
社内共有開発環境
個人開発環境
社内テスト環境
社外開発環境 本番環境ステージング環境
CI/CD Docker レジストリ
Docker動作環境(docker machine)
┌──────────────────────┐
│ドッカーが あらわれた! │
│ドッカーマシーンが あらわれた! │
│コマンド? │
│ ∨ │
└━━━━━━━━━━━━━━━━━━━━━━┘
┌────┐
│ていじで │
│かえろう │
└━━━━┘
┌──────コマンド─────┐
│ たたかう じゅもん │
│ にげる げんじつとうひ │
└━━━━━━━━━━━━━━━┘
>
Dockerとツール群 (https://www.docker.com/products)
Docker Engine
Dockerコンテナの起動と実行
Docker Swarm
クラスタリングとスケジューリング
Docker Compose
複数のアプリケーションコンテナを定義
Docker Machine
共通したコンテナ実行環境
Kitematic
デスクトップ向け GUi
Docker Registry
コンテナの保管庫
Docker Hub Enterprise
□□□
□□□
□□□
物理マシン 物理マシン 物理マシン
OS OS OS
HyperVisor HyperVisor HyperVisor
VM VM VM VM VM VM
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
物理マシン 仮想マシン クラウド
OS OS OS
Docker
Engine
Docker
Engine
Docker
Engine
App App App App App App
App App App App
仮想化・クラウド Dockerのコンテナ管理
なぜコンテナ管理用のプラットフォームが必要なの??
Dockerは割と低いレイヤ。
物理マシン 物理マシン 物理マシン
OS OS OS
HyperVisor HyperVisor HyperVisor
VM VM VM VM VM VM
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
物理マシン 仮想マシン クラウド
OS OS OS
Docker
Engine
Docker
Engine
Docker
Engine
GUI
CLI
API
Docker Cluster 管理レイヤ
( Docker Swarm, rkt, Rancher …etc )
App App App App App App App App App App
xxxStack的な…
単純な話Dockerの立場は
あくまでもコンテナ管理。
コンテナ群管理は別途必要。
物理マシン 物理マシン 物理マシン
OS OS OS
HyperVisor HyperVisor HyperVisor
VM VM VM VM VM VM
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
App App App App
物理マシン 仮想マシン クラウド
OS OS OS
Docker
Engine
Docker
Engine
Docker
Engine
App App App App App App
GUI
CLI
API
Docker Cluster 管理レイヤ
( Docker Swarm, rkt, Rancher …etc )
オーケストレーション
サービス検出・クラスタ管理
もしかして:インフラエンジニアに求められている管理領域が拡大しようとしている?
かつ、Docker以外にも、
全てのインフラ抽象化たる
オーケストレーション技術。
コンテナを取り巻く業界俯瞰図
kitematic
Etcd
SkyDNS
Docker
fleet
rkt
CoreOS
Mesosphere
Apache Auora
Marathon
Kubernetes
Docker Swarm
Docker Machine
Docker Compose
Tectonic
Google Container
Engine
Amazon EC2
Container Service
IBM Containers
on Bluemix
flannel
shippable
APCERA
Cloud Foundry
コンテナ業界はこんな感じ
APCERA
Cloud Foundry
shippable
コンテナを取り巻く業界俯瞰図
開発環境
Build / Deploy
運用自動化
Orchestration
kitematic
Etcd
SkyDNS
Service Discovery
Docker
fleet
rkt
CoreOS
Tectonic
Mesosphere
Apache Auora
Marathon
Cluster Management
Kubernetes
コンテナ管理用プラットフォーム
構成管理
Docker Swarm
Docker Machine
Docker Compose
Docker特化OS
Google Container
Engine
Amazon EC2
Container Service
IBM Containers
on Bluemix
PaaS
flannel
Networking
APCERA
Cloud Foundry
shippable
Google Container
Engine
Amazon EC2
Container Service
IBM Containers
on Bluemix
コンテナを取り巻く業界俯瞰図
開発環境
Build / Deploy
運用自動化
Orchestration
kitematic
Etcd
SkyDNS
Service Discovery
Docker
fleet
flannel
rkt
CoreOS
Tectonic
Mesosphere
Apache Auora
Marathon
Cluster Management
Kubernetes
構成管理
Docker Swarm
Docker Machine
Docker Compose
Docker特化OS
PaaS
Networking
コンテナ管理用プラットフォーム
熱いのは、管理する領域。
Google Container
Engine
Amazon EC2
Container Service
IBM Containers
on Bluemix Google Kubernetes
Tectonic
CoreOS
Google Container
Engine
Amazon EC2
Container Service
IBM Containers
on Bluemix Google Kubernetes
Tectonic
CoreOS
パブリック・クラウド陣営
管理・効率化
Docker ネイティブサポート
最小環境
ざっくりこんな領域ですが、
パブリック・クラウド陣営
Google Container
Engine
Amazon EC2
Container Service
IBM Containers
on Bluemix Google Kubernetes
Tectonic
CoreOS
商用サポート/エンタープライズ
管理・効率化
Docker ネイティブサポート
最小環境
アンチ
Docker
オープンソース
コミュニティ
あっ…(察し)
What is the Docker’s problem
49
‣ せっかくDockerが使える環境なのに…
運用手法が旧態依然としていると、折角のコンテナのメリットを活かせてないのでは
‣ ツール類がまだ揃っていない
動的に変わる環境の監視や通知をどうするか?
‣ まだ運用に関する知見が足りない
オーケストレーションの活用ノウハウや経験の蓄積
そのための1ホスト1コンテナ運用は、利点を相殺していないか?
現時点でDockerが抱える課題
あの日みたコンテナの名前を僕はまだ知らない
でも、無理矢理使うと
This is Rancher’s turn!!
Containers operation in production level
運用定例会議
運用部長
運用としては開発の提案に
反対である。
production
365D 24H
プロダクション(本番)向け!!
365d
PRODUCTION
Dockerを本番で使うため。
365D 24H PRODUCTION
それが――”Rancher”。
What is Rancher?
これはロケットランチャー。
これはランサー。。
62Credit: lux5817 / PIXTA(ピクスタ)
Rancherは放牧の牧場主!
63
↓牛 (cattle)
↓牛 (cattle)
↓牛 (cattle)
↓牛 (cattle) ↓牛 (cattle)
【名詞】牧場(放牧)経営者
Credit: lux5817 / PIXTA(ピクスタ)
64
‣ Dockerを本番環境で簡単に使うプラットフォーム
RancherはDockerと同じくらいコンテナを扱うためのインフラであり、ネイティブにDocker対応し、多機能である。
‣ オープンソースのプロジェクト
Apache License, Version 2.0。現時点では、まだベータ版。
https://github.com/rancherio/rancher
‣ 開発:Rancher Labs ( http://rancher.com )
本拠地は米カリフォルニア州クパチーノ。2011年にCitrixに買収されたCloud.com開発チームが会社を設立。
設計思想は、ミッションクリティカルな本番負荷において、DevOpsチームに頼られるようなソフトウェア。
65
‣ コンテナ向けインフラを考え直した機能群
リソース管理(様々なインフラに対応)
コンテナ間オーバレイ・ネットワーク
サービス検出(DNS,ヘルスチェック)
コンテナのロードバランシング
ストレージ管理・スナップショット
複数の同居環境やユーザの管理
安全なアップグレード
例えると…
牛が一匹二匹消えても、
また増やせば良いでしょ?
的な考え。その対象が、
牛ではなくコンテナの例え。
Containers operation in production level
OS
サーバ
Docker
Rancher
Management Server
( rancher/server )
OS
サーバ
Docker
OS
サーバ
Docker
Rancher
agent
( rancher/agent )
Rancher
agent
( rancher/agent )
管
理
用
コ
ン
テ
ナ
コ
ン
テ
ナ
管
理
用
コ
ン
テ
ナ
コ
ン
テ
ナ
…
…
Amazon EC2,
Google Compute
Engine, Azure,
DigitalOcean,
SoftLayer,
Rackspace,
Openstack..etc
GUI オーバレイ・ネットワーク
10.42.0.0/16
Cloud Providers
API
API
docker-compose.yaml
rancher-compose.yml
Rancher Compose
TCP:22
TCP: 9345, 9346
UDP: 500-4500(IPsec)
OS
サーバ
Docker
OS
サーバ
Docker
Rancher
agent
( rancher/agent )
Rancher
agent
( rancher/agent )
管
理
用
コ
ン
テ
ナ
コ
ン
テ
ナ
管
理
用
コ
ン
テ
ナ
コ
ン
テ
ナ
…
コンテナ・インフラ層(オーバレイ・ネットワーク)
10.42.0.0/16
OS
サーバ
Docker
Rancher
agent
( rancher/agent )
管
理
用
コ
ン
テ
ナ
コ
ン
テ
ナ
…
サービス層
Web Database LBWordPress
インフラ層とサービス層を
相互の視点から、別々に
管理できるのが特徴。
71
‣ Linux サーバ(64bit環境)を 1 台~
‣ Docker: 1.6.0 以上
‣ OS: Ubuntu 14.04 または CoreOS 494 以上
※ Rancher Lab によってテストされていないだけで、Docker が動けば動くはず
‣ メモリ: 1GB 以上
Rancher 管理サーバの動作環境
72
‣ 1. Rancher Management Serverを準備
DockerコンテナやVagrantやPuppetを使って、管理用サーバのセットアップを行う。
‣ 2. コンテナ実行環境をホスト登録
‣ 3. GUIにログイン
‣ 4. コンテナやサービス作成 (゚д゚)ウマー
Rancher セットアップの流れ
73
‣ セットアップ
wget -qO- https://get.docker.com/ | sudo sh
sudo docker run -d --restart=always -p 8080:8080 rancher/server
sudo docker logs -f <コンテナID>
‣ ブラウザから確認
http://<host_ip>:8080/
Management Server環境
74
‣ 手動(custom) or クラウドプロバイダのAPI登録
‣ cloud
DigitalOcan … token 作成・登録
AWS
http://rancherio.github.io/rancher/docs/infrastructure/hosts/amazon/
ホスト(ノード)登録
$ docker run -e CATTLE_AGENT_IP=127.0.0.1 -d --privileged ¥
-v /var/run/docker.sock:/var/run/docker.sock rancher/agent:v0.7.9 ¥
http://127.0.0.1:8080/v1/scripts/33384C10547....
75
GitHub認証設定もあるよ
3分インフラ・Rancherクッキング!
$ ssh –l root <ip>
$ wget -qO- https://get.docker.com/ | sudo sh
$ docker run -d --restart=always -p 8080:8080 rancher/server
$ docker logs –f <コンテナID> ← Startingになるまで数分
http://<host>:8080/
セットアップはとても簡単。
まず必要なホスト登録作業。
インフラのお仕事は
衰退しました・・・。
登録後は、様々なクラウド
上でDockerが動く環境を
自動的に構築可能。
各々のコンテナの状態も
簡単に監視できます。
コンテナ追加時に、docker
起動時と同様に様々な
オプションを設定できます。
環境を視覚化するほかに、
rancher-composeを使うと
別のインフラでも環境再現
が容易になります。
82
‣ コンテナの追加(スケールさせてみたり)
‣ サービスの追加(ホストを意識しない)
‣ オーバレイ・ネットワークのテスト
‣ ロードバランサの追加(ヘルスチェックとか)
‣ Rancher compose とか…
環境が整ったら
More information is…
d o c k e r
仮想化やクラウド化、そしてコンテナ化の流れで
インフラエンジニアの職務範囲が変わりつつある。
しかし、変化を恐れる必要はない(はず)。
空の彼方にあるものは?
What lies beyond the furthest reaches of the sky?
迷い子を母の手に導くもの、エグザイル。
That which will guide the lost child back to her mother’s arms. Exile.
台地を金色に染める波。
The waves that flow and dye the land gold.
命を育む恵みの息吹、麦の大地。
The blessed breath which nurtures life. A land of wheat.
天使の降りる道。
The path the angels descend upon.
其は大いなる風の道、グランドストリーム。
The path of great winds. The Grand Stream.
記憶の彼方にあるものは
What lies in the furthest depths of one’s memory?
全てが生まれ全てが還る場所、青い星。
The place where all are born and where all will return. A blue star.
希望の道は、私達の眼前に。
進むかどうかは自分次第。
おわり、ありがとうございました。
•
みんな~
Rancher ためさなイカ
┌────┐
│おしまい │
└━━━━┘

インフラエンジニアのためのRancherを使ったDocker運用入門