2. 自己紹介
高井 一輝 (Takai Kazuki)
某ISP勤務
クラウドサービスの開発、設計、設備維持
Windows Server / System Center / Linux / etc…
Microsoft MVP - Cloud and Datacenter Management
System Center User Group Japan (SCUGJ)
Twitter : @zhuky7 / Facebook : kazuki.takai
Blog : http://operationslab.wordpress.com/
3. セッションの内容
お話しすること
Server Core のエンハンスについて
Windows Containers の Base Image について
Linux Containers (on Windows Server) について
Windows Subsystem for Linux (on Windows Server) について
Command Line tools と OpenSSH について
お話ししないこと
Windows Server Containers のインフラについて
Container Host と Container Network / Storage について
Container のオーケストレーション
Containers Infrastructure については、ひとつ前のセッションをご確認ください
4. セッションのゴール
Windows Server をアプリケーションプラットフォームとして活用できる
よりセキュアに
より幅広く
Server Core を使ってみたくなる・使ってみようと思う
より頻繁にアプリケーションをリリースするためのヒントを得られる
Windows Server をより便利に使える・使い方の選択肢を広げられる
使うかどうかは別として、何ができるかを知る
5. Agenda
Windows Server の OS Image と Servicing channel
Server Core の改善と互換性向上
Windows Server Containers の Base Image の改善
Linux Containers on Windows Server
Windows Subsystem for Linux の現状と注意点
Command Line tools と OpenSSH によるオペレーションの改善
6. はじめる前に
本資料の内容は個人的な検証結果に基づきます
所属する会社や組織、マイクロソフト社の公式な見解を記載するものではありません
表記や内容に誤りがあるなど、お気づきの点があれば、ご連絡いただけると幸いです
本セッションでは、以下の環境をベースにお話しします
Windows Server 2019 LTSC Build 17763.55
Docker Enterprise Edition 18.03.1-ee-3
SQL Server 2017
SQL Server Management Studio 17.9
Exchange Server 2019
8. Application Innovation
Optimized container images for
Nano Server and Server Core
Platform level support for Linux
containers
Windows Subsystem for Linux
Optimized Server Core image
App compat improvements
Native command line tools—
curl.exe, tar.exe and SSH
Enhancements to the Windows
Subsystem for Linux
Optimized Server Core image
App compat improvements
Enhanced Group Managed
Service Account support
Performance and density
improvements
Enhancements to the Windows
Subsystem for Linux
Windows
Server 2016
Windows Server,
version 1709
Windows Server,
version 1803
Windows
Server 2019
10. Windows Server の OS Image
Windows Server with Desktop Experience
完全なデスクトップ環境を持つ Windows Server
Windows Server の一部の機能は with Desktop Experience のみでサポート
Windows Server (Server Core)
最小限の管理 UI を備えた Windows Server
インストールして使用する場合の推奨イメージ
Nano Server
アプリケーションを実行するための最小限の機能のみを備えた Windows Server
11. OS Image による違い
Nano Server Server Core with Desktop Experience
Install on physical host ✓ ✓
Install on virtual machine ✓ ✓
Base image for containers ✓ ✓
Servicing channel SAC SAC / LTSC LTSC
Graphical User Interface (✓) ✓
Localized image ✓ ✓ ✓
Active Directory domain join ✓ ✓
.NET Framework .NET Core
.NET Framework (Full)
.NET Core
.NET Framework (Full)
.NET Core
Compatibility ★★☆☆☆ ★★★★☆ ★★★★★
Image size Very small Small Large
12. Servicing channel
LTSC (Long-Term Servicing Channel)
従来のアプリケーションやインフラ基盤として利用することを想定
Windows Server 2019 など
Semi-Annual Channel (SAC)
モダンアプリケーションのベース・基盤として利用することを想定
Windows Server, version 1809 など
13. LTSC vs SAC
Semi-Annual Channel Long-Term Servicing Channel
推奨されるシナリオ • Container アプリケーション
• Container ホスト
• より早いサイクルでの新機能実装・提供が必要
な用途
• ファイルサーバなどの一般的な用途
• Microsoft 及び Microsoft 以外が提供するワークロード
• 従来型アプリケーションの実行環境
• インフラの役割・機能
• SDDC や HCI
リリース頻度 • 6か月ごとにリリース • 2~3年ごとにリリース
サポート • モダンライフサイクルポリシー
• 18か月のサポート
• 固定ライフサイクルポリシー
• 5年のメインストリームサポート + 5年の延長サポート
利用可能な Edition • Standard
• Datacenter
• リリースされる全ての Edition
利用条件 • Software Assurance が必要
• (SAに類する権利が含まれるライセンスでも利用可能)
• Software Assurance は必須ではない
インストール
オプション
• Server Core (container host and image)
• Nano Server (container image)
• Server Core
• Server with Desktop Experience
15. 選び方
LTSC or SAC
SAC が明確に必要であるならば SAC
Kubernetes integration など、主に Container 関連の開発スピードに追従する必要がある場合など
そうでないなら LTSC
Nano Server / Server Core / Server with Desktop Experience
SAC で Nano Server がアプリケーションの要件を満たすのであれば Nano Server
そうではない場合は、Server Core
LTSC の場合は原則として Server Core
Server Core ではアプリケーションの互換性がない場合には、Server Core + FOD
Server Core + FOD でも互換性がない場合は、Server with Desktop Experience
17. Server Core 1st
Server Core は Server with Desktop Experience よりも多くの点で優れている
フットプリントが小さい
リソースの消費が少ない
展開時のコストが少ない
攻撃される側面が少ない
起動しているサービスが少ない
実装されている機能が少ない
まずは Server Core を使うことを検討してほしい
18. Server Core をより使いやすく
Server Core を展開する障害となる大きなポイント2点を改善
GUI の管理に慣れている
コマンドによる Automation が時代の流れとは言え、GUI も必要
⇒ Windows Admin Center による集中管理型 GUI の提供
アプリケーションが Server Core だと動かない
コア機能が動いたとしても、関連機能や管理ツールが動かない
⇒ Server Core App Compatibility FOD (features on demand)
19. Demo Exchange Server 2019 on Windows Server
2019 Server Core
SQL Server 2017 on Server Core
SQL Server Management Studio 17.9 on
Windows Server 2019 Server Core + FOD
Management tools on Server Core + FOD
Internet Explorer on Server Core
Server Core
App Compatibility FOD
20. Exchange Server on Server Core
Exchange Server 2019 は Windows Server 2019 Server Core をサポート
Windows Server 2019 が必須
Server Core 上にインストールすることが Recommended
Exchange Server 2019 Now Available – Exchange Team Blog
https://blogs.technet.microsoft.com/exchange/2018/10/22/exchange-server-2019-
now-available/
22. Server Core App Compatibility FOD
Server Core App Compatibility Features on demand
名前の通り、アプリケーションの互換性を高めるための追加パッケージ
必要があれば、Server Core に Add-on (追加インストール)して使用
Server Core + additional (340 MB)
オンラインまたはオフラインのパッケージソースからインストール
Internet Explorer は別パッケージ
FOD の追加後に、さらにパッケージのインストールが必要
23. 利用できるアプリケーション・ツール
FOD なしの Server Core で動作するアプリケーション
Exchange Server 2019
SQL Server 2016, 2017, 2019 Preview(一部の機能限定)
FOD により追加されるツール
Microsoft Management Console (Mmc.exe), Event Viewer (Eventvwr.msc)
Performance Monitor (PerfMon.exe), Resource Monitor (Resmon.exe)
Device Manager (Devmgmt.msc), Failover Cluster Manager (CluAdmin.msc)
File Explorer (Explorer.exe), Windows PowerShell ISE (Powershell_ISE.exe), Internet Explorer (IExplore.exe)
(optional)
FOD を追加することで動作するアプリケーション
SQL Server Management Studio 16.x, 17.x
TFS Server
26. [補足] SQL Server on Server Core
Server Core 上で動作するのは一部の機能
DB Engine, Replication, Full Text Search, AS, IS, etc…
https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-
sql-server-on-server-core?view=sql-server-2017
サポートされる組み合わせに注意
OS version / OS edition
SQL Server version / SQL Server edition
OS language/locale
SQL Server language
28. Container base image を使いやすく
より小さく、より速く
Container base image の download size を最適化(サイズをより小さく)
Size を小さくすることで、展開・起動に必要な時間を短縮
互換性の向上
windowsservercore base image の互換性が向上
より互換性が高いイメージの提供(現時点では具体的なリリース時期は不確定)
管理性の向上
Windows Admin Center から Containers の管理を可能に(Preview)]
Container Application からのアクセスを適切に認証
gMSA による認証の改善
29. Base image optimization
Windows Server Core
Base Image
Windows Server 2016
Windows Server,
version 1709
Windows Server,
version 1803
Windows Server,
version 1809
Download Size 5 GB 2 GB 1.61 GB < 1.5 GB
On Disk Size 10.3 GB 4.59 GB 3.67 GB < 3.3 GB
Nano Server
Base Image
Windows Server 2016
Windows Server,
version 1709
Windows Server,
version 1803
Windows Server,
version 1809
Download Size 393 MB 80 MB 89 MB < 89 MB
On Disk Size 1.08 GB 200 MB 227 MB < 227 MB
30. Host と Image の互換性
Host OS version と Container Image OS version
特定の組み合わせのみサポート
Windows Server Containers
Host が Windows Server, version 1709 以降の場合、Host と Container の Build
Number が同じ場合のみサポート
Host が Windows Server 2016 の場合、Host と Container の Revision (patching) が
同じ場合のみサポート
Hyper-V Containers
Container の Build Number が Host の Build Number 以下の場合のみサポート
31. Windows Server Containers の互換性
Windows Server 2016
Host
Windows Server,
version 1709 Host
Windows Server,
version 1803 Host
Windows Server 2019
/ Windows Server,
version 1809 Host
Windows Server 2016
Container Image
✓
同一のパッチ
(KB適用)レベルのみ
Windows Server,
version 1709
Container Image
✓
Windows Server,
version 1803
Container Image
✓
Windows Server,
version 1809
Container Image
✓
32. Hyper-V Containers の互換性
Windows Server 2016
Host
Windows Server,
version 1709 Host
Windows Server,
version 1803 Host
Windows Server 2019
/ Windows Server,
version 1809 Host
Windows Server 2016
Container Image
✓ ✓ ✓ ✓
Windows Server,
version 1709
Container Image
✓ ✓ ✓
Windows Server,
version 1803
Container Image
✓ ✓
Windows Server,
version 1809
Container Image
✓
33. 現時点で Container に向いているもの
.NET Core Application
.NET Core Web Applications
.NET Core Worker / Service Application
Other Web Application
Hosted on IIS
Windows Communication Foundation Services
34. Windows Base OS Images
Nano Server
Cloud Application 特化
.NET Core をサポート
Windows
Server Core
Application の互換性を重視
.NET Framework をサポート
Windows
互換性を最重視
GUI 要素をレンダリング
UI の自動化テストなどを想定
開発中
40. Linux containers on Windows hosts
Windows Host で Linux ベースの Container Image を実行可能
Windows Server 2016 では利用不可
Windows Server 1709 以降(ホスト)
Hyper-V のサポートは必須
Docker Engine 17.11 以降
LinuxKit / LCOW (最新の Release を推奨)
※LCOW: Linux containers on Windows
43. LCOW 構成手順
Windows Server で Linux Container Image を使うために必要なこと
Docker Engine の Experimental Support を有効化
%programdata%¥docker¥config¥daemon.json
Restart-Service docker
Invoke-WebRequest -Uri
'https://github.com/linuxkit/lcow/releases/download/4.14.29-
0aea33bc/release.zip' -UseBasicParsing -OutFile .¥release.zip
Expand-Archive .¥release.zip -DestinationPath "$Env:ProgramFiles¥Linux
Containers¥."
44. 確認ポイント
docker version
Client version / Server (docker engine) version
Experimental
docker info
Default Isolation
Kernel Version
Experimental
45. Docker client options
--isolation
分離モードの指定
--isolation hyperv // クライアント OS のデフォルト
--isolation process // サーバー OS のデフォルト
--platform
(Windows Host 上で)どの OS kernel を使用するかの指定
--platform=linux // LCOW を使用
--platform=windows // Windows を使用
46. LCOW on Windows Server 2019 注意点
現時点では、Experimental feature
Production 環境では使用しない
素直に Linux VM on Hyper-V を使う
素直に AKS や ACI を使う
48. Windows Subsystem for Linux
Linux 実行ファイル(ELF64)を Windows 上で実行するためのサブシステム
Linux Subsystem Driver (lxcore) が Linux システムコールを Windows のシステムコー
ルに変換
Windows Server でも利用可能
Windows Subsystem for Linux の役割をインストール
ディストリビューションパッケージを展開
通常は(Windows Server では)Store が使用できないので、appx をダウンロードして unzip