Suche senden
Hochladen
Dockerの利用事例
•
3 gefällt mir
•
3,080 views
M
maebashi
Folgen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 44
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Kubernetesを触ってみた
Kubernetesを触ってみた
Kazuto Kusama
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
masaki nakayama
Kubernetes超入門 with java
Kubernetes超入門 with java
Yasunari Tanaka
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
Yuya Ohara
Docker超入門
Docker超入門
VirtualTech Japan Inc.
Empfohlen
Kubernetesを触ってみた
Kubernetesを触ってみた
Kazuto Kusama
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
masaki nakayama
Kubernetes超入門 with java
Kubernetes超入門 with java
Yasunari Tanaka
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
Yuya Ohara
Docker超入門
Docker超入門
VirtualTech Japan Inc.
IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Etsuji Nakai
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較
cloudconductor
Kubernetes introduction
Kubernetes introduction
DAEBUM LEE
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Kazuto Kusama
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
Emma Haruka Iwao
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Dockerについて
Dockerについて
74th
Using LXC on Production
Using LXC on Production
Isao Shimizu
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
zaru sakuraba
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Emma Haruka Iwao
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
Works Applications
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門
KokiMakita1
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
VirtualTech Japan Inc.
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCI
shigeyuki azuchi
Weitere ähnliche Inhalte
Was ist angesagt?
IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Etsuji Nakai
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較
cloudconductor
Kubernetes introduction
Kubernetes introduction
DAEBUM LEE
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Kazuto Kusama
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
Emma Haruka Iwao
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Dockerについて
Dockerについて
74th
Using LXC on Production
Using LXC on Production
Isao Shimizu
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
zaru sakuraba
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Emma Haruka Iwao
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
Works Applications
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門
KokiMakita1
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
VirtualTech Japan Inc.
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
Was ist angesagt?
(20)
IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較
Kubernetes introduction
Kubernetes introduction
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
GKEで半年運用してみた
GKEで半年運用してみた
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Dockerについて
Dockerについて
Using LXC on Production
Using LXC on Production
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Andere mochten auch
捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCI
shigeyuki azuchi
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
モニタリングシステムのこれまでとこれから (2015-01-30)
モニタリングシステムのこれまでとこれから (2015-01-30)
YOSHIKAWA Ryota
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
Light and shadow of microservices
Light and shadow of microservices
Nobuhiro Sue
Andere mochten auch
(6)
捕鯨!詳解docker
捕鯨!詳解docker
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCI
Drone.io のご紹介
Drone.io のご紹介
モニタリングシステムのこれまでとこれから (2015-01-30)
モニタリングシステムのこれまでとこれから (2015-01-30)
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Light and shadow of microservices
Light and shadow of microservices
Ähnlich wie Dockerの利用事例
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi
Daisuke Nagao
Docker registry入門 第五回コンテナ型仮想化の情報交換会
Docker registry入門 第五回コンテナ型仮想化の情報交換会
Kengo Okitsu
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
Toshikazu Ichikawa
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
Masafumi Noguchi
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Shinichiro Arai
Docker活用ソリューション紹介
Docker活用ソリューション紹介
Mitsutoshi Kiuchi
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
Yoshio Terada
ACI Kubernetes Integration
ACI Kubernetes Integration
Takehiro Yokoishi
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
Amazon Web Services Japan
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-
CASAREAL, Inc.
OpenStack概要
OpenStack概要
Akira Yoshiyama
Google Compute EngineとPipe API
Google Compute EngineとPipe API
maruyama097
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
maruyama097
Ähnlich wie Dockerの利用事例
(20)
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi
Docker registry入門 第五回コンテナ型仮想化の情報交換会
Docker registry入門 第五回コンテナ型仮想化の情報交換会
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Docker活用ソリューション紹介
Docker活用ソリューション紹介
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
ACI Kubernetes Integration
ACI Kubernetes Integration
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-
OpenStack概要
OpenStack概要
Google Compute EngineとPipe API
Google Compute EngineとPipe API
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
Kürzlich hochgeladen
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Kürzlich hochgeladen
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Dockerの利用事例
1.
© 2015 Internet Initiative
Japan Inc. Docker の利用事例紹介 ~ 商用サービスの基盤として利用 ~ maebashi @ IIJ
2.
© 2015 Internet Initiative
Japan Inc. 2 本日の話 「IIJ GIOストレージ&アナリシスサー ビス」という商用サービスでDocker を使ってみた
3.
© 2015 Internet Initiative
Japan Inc. サービス概要
4.
© 2015 Internet Initiative
Japan Inc. 4 IIJ GIOストレージ&アナリシスサービス • http://www.iij.ad.jp/biz/storage/ • REST API(AWS S3互換)を持つクラ ウドストレージサービス • Hadoop/Hiveを用いたデータ解析機能 (オプション) +
5.
© 2015 Internet Initiative
Japan Inc. 5 サービス全体図 storage API ストレージ ノード analysis API ユーザー data query IIJ GIO ストレージ&アナリシスサービス 計算 ノード container data data data
6.
© 2015 Internet Initiative
Japan Inc. 6 計算ノード • Hiveを使用 – 複数ノードで分散処理 • マルチテナント – 複数物理ホストを複数ユーザで共有
7.
© 2015 Internet Initiative
Japan Inc. 7 計算ノード(図) analysis API query Hive NN RM DN NM metastore task storage API DN NM task ユーザ毎に用意 NN: Name Node RM: Resouce Manager DN: Data Node NM: Node Manager ノード ノード ノード
8.
© 2015 Internet Initiative
Japan Inc. 8 計算ノード部分 要件 • ユーザ毎に実行環境が隔離されてい ること • 公平なリソースの共有 • ノードはユーザにより増減可能なこ と
9.
© 2015 Internet Initiative
Japan Inc. 9 サービス検討時の候補 • Hypervisor型仮想マシンによる隔離 – 隔離という面では一番確実 – 起動が遅い、オーバーヘッドがある • コンテナによる隔離 • アプリケーションレベルでの隔離 – Hiveだけ(UDF禁止)等、やれることを限 定すれば可能
10.
© 2015 Internet Initiative
Japan Inc. 10 仮想マシン vs コンテナ Server Host OS Hypervisor Guest OS Bins/Libs App A Guest OS Bins/Libs App B Server Host OS Docker Engine Bins/Libs App A Bins/Libs App B Hypervisor型仮想マシン Dockerコンテナ Dockerコンテナは、隔離 された単なるプロセス ゲスト毎に任意のOS使用可 高い隔離性 オーバヘッドが少ない 起動が速い こちらを採用
11.
© 2015 Internet Initiative
Japan Inc. 11 実際のサービスの制限 • 現時点では、ユーザが任意の MapReduceプログラムを動かすこと はできない – 使えるのはHiveQLのみ • Dockerによる隔離は将来への布石
12.
© 2015 Internet Initiative
Japan Inc. Dockerを商用サービスの基盤に 使うにあたって
13.
© 2015 Internet Initiative
Japan Inc. 13 Dockerが向いていること • 単体のホスト上での開発・ビルド・ テスト環境 • 環境のパッケージングと配布
14.
© 2015 Internet Initiative
Japan Inc. 14 Dockerの課題 • 複数ホスト上の多数のコンテナの管 理(オーケストレーション) • 複数ホストをまたいだネットワーク • ログの管理 • 監視、モニタリング
15.
© 2015 Internet Initiative
Japan Inc. コンテナの管理
16.
© 2015 Internet Initiative
Japan Inc. 16 doma(docker manager)とは? • 独自開発 • 多数のDockerコンテナを管理する – 複数ホストをリソースプールとする – analysis APIからの要求によりプールか ら必要数のコンテナを自動確保し起動 • 類似品 – Mesos, Kubernetes, fleet, Swarm, ...
17.
© 2015 Internet Initiative
Japan Inc. 17 doma 構成図 Docker daemon Container slave 構成情報DB (MySQL MHA) master request / response Docker Remote API master API docker ホスト群 使用可能ホスト リソース空き情報 IPアドレス空き情報 etc LB(nginx) HTTP slave API HTTP HTTP over Unix domain socket analysis API
18.
© 2015 Internet Initiative
Japan Inc. 18 master • 多数のコンテナをクラスタ単位で管 理 – クラスタ = コンテナの集合 • クラスタ操作 – 予約、アップデート、起動、停止、再 起動、解放(削除) • Ruby + Rack + EventMachine
19.
© 2015 Internet Initiative
Japan Inc. 19 クラスタ • 互いに通信できるコンテナの集合 – 1つのクラスタは1つのユーザに属する – 別のクラスタとは通信できない Docker Daemon Docker Daemon Docker Daemon 空き Container Container Container Container Container Container Container Container クラスタ1 クラスタ2 クラスタ3 Host
20.
© 2015 Internet Initiative
Japan Inc. 20 コンテナの種類 • グレード – 性能を決める(CPUコア数、メモリ量) • タイプ – dockerイメージ名に対応 – アプリケーション毎に複数用意されて いる
21.
© 2015 Internet Initiative
Japan Inc. 21 masterが管理するもの • ホスト – dockerが動く物理ホスト – CPU、メモリ割当て状況 • IPアドレス – コンテナは1個ずつ(プライベート)IPア ドレスを持つ
22.
© 2015 Internet Initiative
Japan Inc. 22 slave • Docker daemonのwrapper (reverse proxy) – masterからは、ほぼDocker daemonに 見える – いくつかAPIを拡張 • Goで記述 Docker daemon slave Docker Remote API HTTP HTTP over Unix domain socket master
23.
© 2015 Internet Initiative
Japan Inc. 23 Docker Remote API • HTTP、REST、JSONベース • dockerコマンドはすべてこのAPIを経 由している Host Docker daemon docker pull docker run docker ... container container container Docker client HTTP over Unix domain socket または TCP Docker Remote API
24.
© 2015 Internet Initiative
Japan Inc. 24 slave追加機能 • コンテナ起動関連 – サイズ制限されたディスク領域提供 – ネットワーク設定 – iptablesチェイン設定 • コンテナのメトリクス取得 • コンテナ内にファイルを送り込む • コンテナ非同期削除
25.
© 2015 Internet Initiative
Japan Inc. コンテナのリソース制限
26.
© 2015 Internet Initiative
Japan Inc. 26 リソース制限概略 • 主にcgroupを使う • CPU – cpuset • メモリ – memory • ディスク使用量 – cgroupではできない
27.
© 2015 Internet Initiative
Japan Inc. 27 CPU制限 • (Docker Remote API経由で)cgroupの cpuset.cpusを使う – コンテナのプロセスが実行されるCPU コアの番号を指定 – 例: "CpusetCpus":"0-2,7" • 各コンテナおよびシステムプロセス それぞれが使うCPUコアを分離
28.
© 2015 Internet Initiative
Japan Inc. 28 ディスク使用量制限 • 特定サイズのloopbackデバイス用 ファイルを作って、それをmount – あらかじめmkfs済sparseイメージ入り tarファイルを用意 – コンテナ起動時にそれを展開して mount(0.1∼0.2秒くらい) – コンテナ解放時はファイルを1個削除す るだけ
29.
© 2015 Internet Initiative
Japan Inc. ネットワーク
30.
© 2015 Internet Initiative
Japan Inc. 30 通常のDockerのネットワーク docker0 NIC IPマスカレード 仮想ネットワーク インターフェース (veth) container network namespace eth0 vethA コンテナA eth0 vethB コンテナB host network namespace ホスト 仮想ブリッジ
31.
© 2015 Internet Initiative
Japan Inc. 31 通常のDockerのネットワーク docker0 NIC IPマスカレード eth0 vethA コンテナA eth0 vethB コンテナB ホスト1 docker0 NIC IPマスカレード eth0 vethC コンテナC eth0 vethD コンテナD ホスト2 ホストをまたいだコンテナ間通信は困難 (ポートが固定されていればEXPOSEでできるが Hadoopと相性が悪い)
32.
© 2015 Internet Initiative
Japan Inc. 32 解決策 • pipework, weave, flannel 等を使う • または独自に頑張る こちらを採用
33.
© 2015 Internet Initiative
Japan Inc. 33 本サービスのネットワーク • dockerのネットワーク設定は使用せ ず("NetworkDisabled": true) • 代わりにslaveがコンテナ起動時に ネットワーク設定をする
34.
© 2015 Internet Initiative
Japan Inc. 34 NIC 本サービスのネットワーク docker0 NIC IPマスカレード eth0 vethA bridge0 host-geth host-veth ホスト 通常のdockerの ネットワーク container network namespace コンテナA eth0 vethB コンテナB eth0 vethA コンテナA eth0 vethB コンテナB 本サービスの ネットワーク host network namespace ホスト
35.
© 2015 Internet Initiative
Japan Inc. 35 論理的にはこんな感じ eth0 コンテナA eth0 コンテナB host-geth ホスト1 eth0 コンテナC eth0 コンテナD host-geth ホスト2 (コンテナのIPアドレスはmasterが決定しslaveが設定する)
36.
© 2015 Internet Initiative
Japan Inc. 36 ネットワークの隔離 • クラスタ間はiptablesで隔離 – コンテナはCAP_NET_RAWを禁止
37.
© 2015 Internet Initiative
Japan Inc. その他
38.
© 2015 Internet Initiative
Japan Inc. 38 Dockerイメージ • Docker HUBのイメージは使用せず – 同じrepository名:tag名でも内容が変 わっていることがある • 独自にOSイメージ作成 – febootstrap で CentOS 6ベースで作成 • そのOSイメージからJDK, Hive, Hadoop入りなどをDockerfileで生成
39.
© 2015 Internet Initiative
Japan Inc. 39 ログの管理 • コンテナ内の各種ログは、コンテナ 内の特定ディレクトリに一時保存 • ホスト上(コンテナ外)のfluentdで外に 飛ばす • 本サービスのストレージ部分(管理用) に保存
40.
© 2015 Internet Initiative
Japan Inc. 40 監視 • ホストが障害を起こしたらdomaはコ ンテナ割り当て対象から除外 – 障害コンテナを別ホストに自動移動し たり再起動はしない • コンテナのアプリケーションレイヤ の監視はanalysis APIが行っている
41.
© 2015 Internet Initiative
Japan Inc. 41 コンテナのモニタリング • slaveに、コンテナ単位のメトリクス を返す機能追加 • cgroupの統計情報と、コンテナ内の / proc/net/dev等からメトリクスを得る (今なら cAdvisor を使えば良いと思う)
42.
© 2015 Internet Initiative
Japan Inc. 42 slaveはメトリクスをJSON形式で返す "memory": { "failcnt": 0, "stats": { "unevictable": 0, "total_unevictable": 0, "total_swap": 0, "total_rss": 380928, "total_pgpgout": 681084, "total_pgpgin": 697086, "total_mapped_file": 1433600, "total_inactive_file": 38936576, "mapped_file": 1433600, "inactive_file": 38936576, "inactive_anon": 0, "hierarchical_memsw_limit": 9223372036854776000, "hierarchical_memory_limit": 9223372036854776000, "cache": 102838272, "active_file": 63901696, "active_anon": 380928, "pgpgin": 697086, "pgpgout": 681084, "rss": 380928, "swap": 0, "total_active_anon": 380928, "total_active_file": 63901696, "total_cache": 102838272, "total_inactive_anon": 0 }, "max_usage": 139268096, "usage": 104189952 }, "interfaces": { "outpackets.0": 3021223, "inbytes.0": 8228044607, "indrop.0": 0, "inerrs.0": 0, "inpackets.0": 6429687, "name.0": "eth0", "outbytes.0": 199687042, "outdrop.0": 0, "outerrs.0": 0 }, "cpuacct": { "throlling_data": {}, "cpu_usage": { "usage_in_usermode": 2.668e+10, "usage_in_kernelmode": 8.181e+10, "percpu_usage": [ 22599918565, 987624379, 65146098, 36705600, 18221767943, 5890326, 22768005795, 4033968, 218211598, 4302652, 5437296326, 23781278563, 18992360915, 18712487134, 55742891, 18522722054 ] } }
43.
© 2015 Internet Initiative
Japan Inc. 43 ↓CPU Accounting Memory→ ↓Network traffic 定期的にメトリクスを収集して Grafanaでグラフ化
44.
© 2015 Internet Initiative
Japan Inc. 44 まとめ • Hadoop/Hiveをマルチテナントで動か すためにDockerを採用 • Dockerは多数のコンテナを扱うには 課題がある – 解決のためいくつかのツール類を開発 – 今ならもっと楽な方法があるはず
Jetzt herunterladen