519 Views
August 29, 18
スライド概要
2018年8月29日「トレノケ雲の会」雲の通ひ路
Windows ServerでもDockerベースのコンテナが使えるようになりました。このセッションでは、Windowsで使えるコンテナの種類を説明し、選択基準を紹介します。
トレノケート株式会社で、Windows ServerとAzureを中心に技術者向けトレーニングを担当
Hyper-V、オンプレミスでもコンテナを 横山 哲也 Microsoft MVP トレノケート株式会社 (旧グローバルナレッジネットワーク) https://www.trainocate.co.jp
自社紹介: トレノケート(Trainocate) Trainocate (トレノケート) Training + Advocate(先導者) かばん語(portmanteau)の一種 2
自己紹介: 横山 哲也 (トレノケート株式会社) 2003年~ マイクロソフトMVP だいたいDirectory Servicesで受賞 2017年からはCloud and Datacenter Management 最近の著書(いずれも日経BP) ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築 改訂新版 グループポリシー逆引きリファレンス厳選98(監修・共著) ブログ: ヨコヤマ企画 http://yp.g20k.jp/ 好きなクラウドサービス: 仮想マシンテンプレート 好きなアイドル: まなみのりさ 好きなシンガーソングライター: 宮崎奈穂子 3
Agenda 今日の目標 Windowsで使えるコンテナの種類を識別する コンテナについてもっと考える Agenda Windowsで使えるコンテナ 仮想化アーキテクチャ Windowsでコンテナを使う方法 Windowsでコンテナを使う意味 そもそものコンテナの目的 結論 4
Windowsで使えるコンテナ Docker for Windows (by Docker Inc.) Hyper-Vベース WSL(Windows Subsystem for Linux)ベース Docker互換コンテナー (by Microsoft) Windowsコンテナー Hyper-Vコンテナー どれを使えばいいのか分からない まだ、これからも増えるのでは? 理屈が分かれば応用がきく 5
仮想化アーキテクチャ タイプ1仮想化 タイプ2仮想化 コンテナ 6
仮想化アーキテクチャ:タイプ1仮想化 ハードウェア仮想化 = ハイパーバイザー方式 スーパーバイザー(OS)よりもハードウェア寄り ホストとゲストを完全分離 利用例 System 370 (1972年) VMware ESXi Hyper-V (物理OSは親パーティションとなる) ホスト OS(親) ゲスト OS 仮想HW ゲスト OS 仮想HW ゲスト OS 仮想HW ゲスト OS 仮想HW ゲスト OS 仮想HW ハイパーバイザー(Hyper-V) ハイパーバイザー ハードウェア ハードウェア 7
仮想化アーキテクチャ:タイプ2仮想化 ソフトウェア仮想化 = ホスト方式 すべてをソフトウェアでエミュレート ホストとゲストを完全分離 (オーバーヘッド大) 利用例 VMware GSX Microsoft Virtual Server 【参考】x86プロセッサ オリジナル命令セットでは タイプ1仮想化困難 Intel VT-x / AMD-V 拡張 タイプ2仮想化サポート ゲスト OS 仮想HW ゲスト OS 仮想HW ゲスト OS 仮想HW 仮想化機能 ホストOS ハードウェア 8
仮想化アーキテクチャ:コンテナ パーティショニング ≒ コンテナ 「パーティショニング」はさまざまな意味で使われる ゲストは、カーネル機能の一部をホストと共有 ゲストが軽量 利用例 Docker 制約 ホストとゲストは同一OS 共有 ゲスト OS ゲスト OS ゲスト OS コンテナサポート ホストOS ハードウェア 9
仮想化アーキテクチャ:まとめ タイプ1仮想化 タイプ2仮想化 コンテナ ゲスト OS 仮想HW ゲスト OS 仮想HW ゲスト OS ゲスト OS 仮想HW ハイパーバイザー ハードウェア 重い ホスト/ゲスト分離 ホストOSに一部依存 (実装依存) ゲスト OS 仮想HW ゲスト OS 仮想化機能 コンテナサポート ホストOS ホストOS ハードウェア ハードウェア もっと重い ホスト/ゲスト分離 ホストOSに依存 軽い ホスト/ゲスト結合 ホストOSに依存 10
仮想化アーキテクチャ:もう1つの仮想化(環境サブシステム) 環境サブシステム: WindowsのAPI実装方法 カーネルを構築するわけではない 一種のAPIゲートウェイ 必須の環境サブシステム Windows環境サブシステム(GUI担当) オプションの環境サブシステム Windows Subsystem for Linux (WSL) 廃止された環境サブシステム OS/2環境サブシステム...OS/2 1.1互換 POSIX環境サブシステム...POSIX 1.0互換 Windows Services for UNIX (SFU)...Interix由来 Subsystem for UNIX-based Applications (SUA) 11
仮想化アーキテクチャ:環境サブシステムの特徴 画面操作はWindows環境サブシステムに依頼 APIのみ提供 POSIX Windows Linux カーネルは提供しない 機能制限あり App. App. App. OS/2 サブシステム Windows環境 サブシステム WSL - 例:WSLのネットワーク EXEヘッダーに サブシステム指定 つまりWindows形式 他のOSとは非互換 WSLはUbuntu互換 - Win32アプリ起動可 Executiveサービス マイクロカーネル HAL(ハードウェア抽象化層) ハードウェア 12
以上をふまえて 13
Windowsでコンテナを使う方法 Docker for Windows (by Docker Inc.) Hyper-Vベース http://www.atmarkit.co.jp/ait/articles/1609/01/news053.html - 以前のバージョンはVirtualBoxで動作 WSL(Windows Subsystem for Linux)ベース http://www.nuits.jp/entry/docker-on-wsl - 非サポート、ネットワーク周りで動作しない機能あり コンテナー (by Microsoft) Windowsコンテナー - Windows Server 2016のみ Hyper-Vコンテナー - Windows 10 - Windows Server 2016 http://www.atmarkit.co.jp/ait/articles/1610/26/news042.html 14
Windowsでコンテナを使う方法:各コンテナの特徴 Docker Microsoft Hyper-V WSL Hyper-V Windows ○ × ○ ○ 対象OS Linux Linux Windows/Linux Windows 軽量性 × ○ × ○ 隔離性 ○ × ○ × サポート 結論 Docker互換を最優先...純正Docker(Hyper-V) 軽量Linux...Docker(WSL) ただし非サポート 隔離Linux...Hyper-Vコンテナー/Docker(Hyper-V) 軽量Windows...Windowsコンテナー 隔離Windows...Hyper-Vコンテナー 15
Windowsでコンテナを使う意味 Linuxを使いたい 別にWindowsホストを使わなくても... Windowsを使いたい GUIは、原則使えないけどいいの? 16
Windowsでコンテナを使う意味:これからのWindows (想像) マルチパーソナリティ Windows NT 3.1(1993年)の設計目標を実現 WSLのサーバー対応 WindowsもLinuxもどちらのアプリケーションも実行 Linux以上に使いやすいLinux環境 コードによる構成の強化 Server Coreの標準化 宣言的構成の強化 履歴管理の強化 コンテナエンジンとしてのWindows 17
そもそものコンテナの目的 Infrastructure as Code IT基盤にソフトウェア開発技法を適用 - コードによる自動化 - 宣言的構成の強化による安定運用...あるべき姿の記述 - バージョン管理、テスト、展開、デザインパターンの考え方 Immutable Infrastructure 一度作ったサーバーは変更しない 変更するのではなく作り直す 使い捨てのインフラストラクチャー 18
そもそものコンテナの目的:DockerとKubernetes Docker イメージ作成は基本的にコマンド = コードで作る イメージはライブラリとして、履歴を含めて管理 実行中のイメージは差し替えるか停止するかどちらか 保守作業はあまりしない = イミュータブル Kubernetes Dockerイメージの展開・実行・運用管理 Docker管理のツール 管理作業が意外に多い クラウドに任せたい 19
結論 天津風(あまつかぜ) 雲の通ひ路(かよひじ)吹き閉ぢよ をとめの姿 しばしとどめむ 僧正遍昭 クラウドサービスが動いていても 通信経路に障害があると使い物にならない しばらくはオンプレミスでやってみよう しばらく使うのはいいが、 結局はクラウドに帰ることになるだろう 20
まとめ 今日の目標 Windowsで使えるコンテナの種類を識別する コンテナについてもっと考える Agenda Windowsで使えるコンテナ 仮想化アーキテクチャ Windowsでコンテナを使う方法 Windowsでコンテナを使う意味 そもそものコンテナの目的 結論「コンテナはクラウドの方が良い」 21
22