LoginSignup
24
23

More than 3 years have passed since last update.

Windowsコンテナについて調べてみた

Last updated at Posted at 2019-12-02

このエントリは 赤帽エンジニア Advent Calendar 2019 - Qiitaの2日目の投稿です。

Windowsのコンテナを中心とした技術の現在の状況について調べてみました。
技術自体は日々変わるので、2019年12月現在のスナップショットとして読み進めください。


用語

  • Windowsコンテナ: Windowsでコンテナを動かすことの概念、総称のようなもの。バズワード的な印象。
  • Windows Serverコンテナ: プロセス分離を用いてWindowsのベースイメージを実行すること。
  • Hyper-vコンテナ: 正しくはHyper-V分離。Hyper-Vの機能で仮想マシンの内部でコンテナが実行される。Linuxコンテナを実行可能。
  • プロセス分離(Process Isolation): Linuxのコンテナ実行方法とほぼ同じ。カーネルをホストと共有する。
  • Hyper-V分離(Hyper-V Isolation): 各コンテナーは仮想マシンの内部で実行され、独自のカーネルを利用する。
  • WCOW:Windows containers on Windows.
  • LCOW:Linux containers on Windows.

Windows版Dockerの導入

Windows 10Pro/Enterprise Edition

  • Docker Desktop Community(Docker CE)を利用
  • インストーラーをダウンロードしてインストール
  • Hyper-V分離を使い、Linuxコンテナを実行可能
  • Windows 10 ver.1809 + Docker Desktop 2.0.0.2(Docker Engine 18.09.1)以降では、プロセス分離でWindows Serverコンテナを実行可能

Windows Server

コンテナベースイメージ

4種類ある

  • Windows Server Core:Supports traditional .NET framework applications.
  • Nano Server:Built for .NET Core applications.
  • Windows:Provides the full Windows API set.
  • Windows IoT Core:Purpose-built for IoT applications.

課題

  • ベースイメージのサイズが大きい
  • Windows Serverのリリースサイクル
    • 半期チャネル(SAC)のサービス期間が18ヶ月
  • ベースイメージの前方互換サポート無し

Kubernetes on Windows

  • LinuxベースのK8sクラスターに、Windows Server(version 1809以降)をワーカーノードとして追加
  • K8s 1.14で正式サポート。
    • Supported for Windows Server containers Builds 17763.* with Docker EE-basic 18.09
  • プロセス分離のみサポート。Hyper-V分離は将来のリリースに計画。

コンテナランタイム(調査中)

  • CRIランタイム
    • docker EEのみ
  • OCIランタイム
    • runhcs:runcのフォーク。Host Compute Serviceと通信。

まとめ

Windowsコンテナと一言で言っても用語が統一されていなかったり、利用者の背景(Linuxコンテナなのか、Windows Serverなのか、K8sに関することなのか)によっても情報の意味することがバラバラだということが分かりました。
技術が枯れてくるまでは、相手が今何のことを指して言っているのか確認するのが良いと思います。

Red HatではOpenShift 4.xの今後のロードマップでWindowsワーカーノードのサポートが予定されています。リリースされるまでにもう少し情報を整理していきたいと思います。

参考リンク

24
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
23