Início
Conheça mais
Enviar pesquisa
Carregar
Entrar
Cadastre-se
Anúncio
Check these out next
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Etsuji Nakai
Docker向け軽量os 3製品比較
cloudconductor
Kubernetes introduction
DAEBUM LEE
DockerとKubernetesが作る未来
Kazuto Kusama
GKEで半年運用してみた
Katsutoshi Nagaoka
1
de
44
Top clipped slide
Dockerの利用事例
5 de Jun de 2015
•
0 gostou
3 gostaram
×
Seja o primeiro a gostar disto
mostrar mais
•
3,069 visualizações
visualizações
×
Vistos totais
0
No Slideshare
0
De incorporações
0
Número de incorporações
0
Baixar agora
Baixar para ler offline
Denunciar
Tecnologia
maebashi
Seguir
Anúncio
Anúncio
Anúncio
Recomendados
Kubernetesを触ってみた
Kazuto Kusama
78.9K visualizações
•
36 slides
Docker & Kubernetes基礎
Daisuke Hiraoka
1.9K visualizações
•
30 slides
Dockerの仕組みとIIJ社内での利用例
maebashi
18K visualizações
•
37 slides
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
5K visualizações
•
16 slides
DockerからKubernetesへのシフト
masaki nakayama
3.3K visualizações
•
32 slides
Kubernetes超入門 with java
Yasunari Tanaka
4.6K visualizações
•
36 slides
Mais conteúdo relacionado
Apresentações para você
(20)
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
•
1K visualizações
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
•
2.3K visualizações
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
•
5K visualizações
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Etsuji Nakai
•
38.6K visualizações
Docker向け軽量os 3製品比較
cloudconductor
•
8.1K visualizações
Kubernetes introduction
DAEBUM LEE
•
3.8K visualizações
DockerとKubernetesが作る未来
Kazuto Kusama
•
30.2K visualizações
GKEで半年運用してみた
Katsutoshi Nagaoka
•
19.6K visualizações
DockerをRed Hatはどのように見ているのか
Emma Haruka Iwao
•
9.6K visualizações
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
•
29.2K visualizações
Dockerについて
74th
•
3.9K visualizações
Using LXC on Production
Isao Shimizu
•
6.5K visualizações
普通のRailsアプリをdockerで本番運用する知見
zaru sakuraba
•
31.7K visualizações
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Emma Haruka Iwao
•
36.9K visualizações
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
•
7.1K visualizações
Kubernetesにまつわるエトセトラ(主に苦労話)
Works Applications
•
29.4K visualizações
CAMPHOR- day 2020 - Docker 超入門
KokiMakita1
•
763 visualizações
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
•
31.3K visualizações
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
VirtualTech Japan Inc.
•
13.3K visualizações
試して学べるクラウド技術! OpenShift
Etsuji Nakai
•
6.4K visualizações
Similar a Dockerの利用事例
(20)
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
•
12.5K visualizações
2016 06-30-deep-learning-archi
Daisuke Nagao
•
934 visualizações
Docker registry入門 第五回コンテナ型仮想化の情報交換会
Kengo Okitsu
•
5.3K visualizações
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
•
118 visualizações
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
•
3.6K visualizações
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
Toshikazu Ichikawa
•
2.4K visualizações
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
Masafumi Noguchi
•
669 visualizações
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Shinichiro Arai
•
1.3K visualizações
Docker活用ソリューション紹介
Mitsutoshi Kiuchi
•
587 visualizações
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
•
138.9K visualizações
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
•
11.7K visualizações
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
•
766 visualizações
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
•
1.3K visualizações
AKS (k8s) Hands on Lab Contents
Yoshio Terada
•
827 visualizações
ACI Kubernetes Integration
Takehiro Yokoishi
•
2.2K visualizações
Amazon EC2 Container Service Deep dive
Amazon Web Services Japan
•
12.7K visualizações
SpringOne Platform Replay -Pivotal Cloud Foundry-
CASAREAL, Inc.
•
775 visualizações
OpenStack概要
Akira Yoshiyama
•
11.3K visualizações
Google Compute EngineとPipe API
maruyama097
•
2K visualizações
Google Compute EngineとGAE Pipeline API
maruyama097
•
3.1K visualizações
Anúncio
Último
(20)
PCベース制御による集中制御.pdf
ssusercd9928
•
19 visualizações
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
204 visualizações
通信プロトコルについて
iPride Co., Ltd.
•
6 visualizações
CDLEハッカソン2022参加報告.pdf
SHOIWA1
•
9 visualizações
Omnis
DaisukeFujita10
•
20 visualizações
TestSIP (1).pdf
DeependraSingh712859
•
2 visualizações
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 visualizações
《杨百翰大学毕业证|学位证书校内仿真版本》
d520dasw12
•
2 visualizações
HTTPの仕組みについて
iPride Co., Ltd.
•
8 visualizações
3Dプリンタって いいね
infinite_loop
•
56 visualizações
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 visualizações
20230602_enebular_meetup_kitazaki_v1.pdf
Ayachika Kitazaki
•
22 visualizações
20230523_IoTLT_vol99_kitazaki_v1.pdf
Ayachika Kitazaki
•
110 visualizações
オレオレになりがちなテスト計画を見直した話
terahide
•
36 visualizações
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
•
13 visualizações
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
57 visualizações
触感に関わる共感覚的表現と基本6感情の対応関係の検証
Matsushita Laboratory
•
14 visualizações
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
201 visualizações
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 visualizações
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
Deep Learning JP
•
34 visualizações
Dockerの利用事例
© 2015 Internet Initiative
Japan Inc. Docker の利用事例紹介 ~ 商用サービスの基盤として利用 ~ maebashi @ IIJ
© 2015 Internet Initiative
Japan Inc. 2 本日の話 「IIJ GIOストレージ&アナリシスサー ビス」という商用サービスでDocker を使ってみた
© 2015 Internet Initiative
Japan Inc. サービス概要
© 2015 Internet Initiative
Japan Inc. 4 IIJ GIOストレージ&アナリシスサービス • http://www.iij.ad.jp/biz/storage/ • REST API(AWS S3互換)を持つクラ ウドストレージサービス • Hadoop/Hiveを用いたデータ解析機能 (オプション) +
© 2015 Internet Initiative
Japan Inc. 5 サービス全体図 storage API ストレージ ノード analysis API ユーザー data query IIJ GIO ストレージ&アナリシスサービス 計算 ノード container data data data
© 2015 Internet Initiative
Japan Inc. 6 計算ノード • Hiveを使用 – 複数ノードで分散処理 • マルチテナント – 複数物理ホストを複数ユーザで共有
© 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 ノード ノード ノード
© 2015 Internet Initiative
Japan Inc. 8 計算ノード部分 要件 • ユーザ毎に実行環境が隔離されてい ること • 公平なリソースの共有 • ノードはユーザにより増減可能なこ と
© 2015 Internet Initiative
Japan Inc. 9 サービス検討時の候補 • Hypervisor型仮想マシンによる隔離 – 隔離という面では一番確実 – 起動が遅い、オーバーヘッドがある • コンテナによる隔離 • アプリケーションレベルでの隔離 – Hiveだけ(UDF禁止)等、やれることを限 定すれば可能
© 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使用可 高い隔離性 オーバヘッドが少ない 起動が速い こちらを採用
© 2015 Internet Initiative
Japan Inc. 11 実際のサービスの制限 • 現時点では、ユーザが任意の MapReduceプログラムを動かすこと はできない – 使えるのはHiveQLのみ • Dockerによる隔離は将来への布石
© 2015 Internet Initiative
Japan Inc. Dockerを商用サービスの基盤に 使うにあたって
© 2015 Internet Initiative
Japan Inc. 13 Dockerが向いていること • 単体のホスト上での開発・ビルド・ テスト環境 • 環境のパッケージングと配布
© 2015 Internet Initiative
Japan Inc. 14 Dockerの課題 • 複数ホスト上の多数のコンテナの管 理(オーケストレーション) • 複数ホストをまたいだネットワーク • ログの管理 • 監視、モニタリング
© 2015 Internet Initiative
Japan Inc. コンテナの管理
© 2015 Internet Initiative
Japan Inc. 16 doma(docker manager)とは? • 独自開発 • 多数のDockerコンテナを管理する – 複数ホストをリソースプールとする – analysis APIからの要求によりプールか ら必要数のコンテナを自動確保し起動 • 類似品 – Mesos, Kubernetes, fleet, Swarm, ...
© 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
© 2015 Internet Initiative
Japan Inc. 18 master • 多数のコンテナをクラスタ単位で管 理 – クラスタ = コンテナの集合 • クラスタ操作 – 予約、アップデート、起動、停止、再 起動、解放(削除) • Ruby + Rack + EventMachine
© 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
© 2015 Internet Initiative
Japan Inc. 20 コンテナの種類 • グレード – 性能を決める(CPUコア数、メモリ量) • タイプ – dockerイメージ名に対応 – アプリケーション毎に複数用意されて いる
© 2015 Internet Initiative
Japan Inc. 21 masterが管理するもの • ホスト – dockerが動く物理ホスト – CPU、メモリ割当て状況 • IPアドレス – コンテナは1個ずつ(プライベート)IPア ドレスを持つ
© 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
© 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
© 2015 Internet Initiative
Japan Inc. 24 slave追加機能 • コンテナ起動関連 – サイズ制限されたディスク領域提供 – ネットワーク設定 – iptablesチェイン設定 • コンテナのメトリクス取得 • コンテナ内にファイルを送り込む • コンテナ非同期削除
© 2015 Internet Initiative
Japan Inc. コンテナのリソース制限
© 2015 Internet Initiative
Japan Inc. 26 リソース制限概略 • 主にcgroupを使う • CPU – cpuset • メモリ – memory • ディスク使用量 – cgroupではできない
© 2015 Internet Initiative
Japan Inc. 27 CPU制限 • (Docker Remote API経由で)cgroupの cpuset.cpusを使う – コンテナのプロセスが実行されるCPU コアの番号を指定 – 例: "CpusetCpus":"0-2,7" • 各コンテナおよびシステムプロセス それぞれが使うCPUコアを分離
© 2015 Internet Initiative
Japan Inc. 28 ディスク使用量制限 • 特定サイズのloopbackデバイス用 ファイルを作って、それをmount – あらかじめmkfs済sparseイメージ入り tarファイルを用意 – コンテナ起動時にそれを展開して mount(0.1∼0.2秒くらい) – コンテナ解放時はファイルを1個削除す るだけ
© 2015 Internet Initiative
Japan Inc. ネットワーク
© 2015 Internet Initiative
Japan Inc. 30 通常のDockerのネットワーク docker0 NIC IPマスカレード 仮想ネットワーク インターフェース (veth) container network namespace eth0 vethA コンテナA eth0 vethB コンテナB host network namespace ホスト 仮想ブリッジ
© 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と相性が悪い)
© 2015 Internet Initiative
Japan Inc. 32 解決策 • pipework, weave, flannel 等を使う • または独自に頑張る こちらを採用
© 2015 Internet Initiative
Japan Inc. 33 本サービスのネットワーク • dockerのネットワーク設定は使用せ ず("NetworkDisabled": true) • 代わりにslaveがコンテナ起動時に ネットワーク設定をする
© 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 ホスト
© 2015 Internet Initiative
Japan Inc. 35 論理的にはこんな感じ eth0 コンテナA eth0 コンテナB host-geth ホスト1 eth0 コンテナC eth0 コンテナD host-geth ホスト2 (コンテナのIPアドレスはmasterが決定しslaveが設定する)
© 2015 Internet Initiative
Japan Inc. 36 ネットワークの隔離 • クラスタ間はiptablesで隔離 – コンテナはCAP_NET_RAWを禁止
© 2015 Internet Initiative
Japan Inc. その他
© 2015 Internet Initiative
Japan Inc. 38 Dockerイメージ • Docker HUBのイメージは使用せず – 同じrepository名:tag名でも内容が変 わっていることがある • 独自にOSイメージ作成 – febootstrap で CentOS 6ベースで作成 • そのOSイメージからJDK, Hive, Hadoop入りなどをDockerfileで生成
© 2015 Internet Initiative
Japan Inc. 39 ログの管理 • コンテナ内の各種ログは、コンテナ 内の特定ディレクトリに一時保存 • ホスト上(コンテナ外)のfluentdで外に 飛ばす • 本サービスのストレージ部分(管理用) に保存
© 2015 Internet Initiative
Japan Inc. 40 監視 • ホストが障害を起こしたらdomaはコ ンテナ割り当て対象から除外 – 障害コンテナを別ホストに自動移動し たり再起動はしない • コンテナのアプリケーションレイヤ の監視はanalysis APIが行っている
© 2015 Internet Initiative
Japan Inc. 41 コンテナのモニタリング • slaveに、コンテナ単位のメトリクス を返す機能追加 • cgroupの統計情報と、コンテナ内の / proc/net/dev等からメトリクスを得る (今なら cAdvisor を使えば良いと思う)
© 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 ] } }
© 2015 Internet Initiative
Japan Inc. 43 ↓CPU Accounting Memory→ ↓Network traffic 定期的にメトリクスを収集して Grafanaでグラフ化
© 2015 Internet Initiative
Japan Inc. 44 まとめ • Hadoop/Hiveをマルチテナントで動か すためにDockerを採用 • Dockerは多数のコンテナを扱うには 課題がある – 解決のためいくつかのツール類を開発 – 今ならもっと楽な方法があるはず
Anúncio