Windows Server 2022 は Windows コンテナに何をもたらすのか? - TechRepublic

Windows Server 2022 は Windows コンテナに何をもたらすのか? - TechRepublic
Windows Server 2022のコンセプト
画像: Adob​​e Stock

Microsoftのクラウドへの大きな賭けは、オンプレミスでもクラウドでも、あるいは両方で同時に実行できるサービスであるハイブリッドクラウドです。その中核となるのは、コンテナベースのアプリケーションのサポートです。コードとワークロードは、変更を加えることなく、自社サーバーでもAzure上でも実行できます。

同社の取り組みの多くは、Azure Stack HCI と Azure Arc ツールで確認できます。これらのツールは、Windows Server 上で仮想マシンとコンテナを使用して Azure サービスをホストし、オンプレミス システムに Azure クラウド機能を提供します。どちらも Microsoft の Hyper-V 仮想化プラットフォーム上に構築されており、Linux と Windows の両方をホストし、最新のサーバー ハードウェアに組み込まれた機能を活用しています。

Windowsコンテナの簡単なガイド

MicrosoftがオンプレミスのAzureサービスで行っていることの多くは、Windows Serverの標準機能を使用しているため、お客様独自のアプリケーションやツールでもご利用いただけます。つまり、特にWindowsコンテナのサポートに関しては、Microsoftの機能をお客様独自のコードで活用できるということです。

Linuxのコンテナは、Dockerなどのツールを使用して分離されたアプリケーションのユーザーランドを管理する、よく知られた技術です。このアプローチにより、アプリケーションのすべての依存関係をアプリケーションと並行して管理・提供できるだけでなく、アプリケーションごとに完全な仮想マシンを実行するオーバーヘッドなしに、他のアプリケーションから分離した状態を維持できます。

Windows は、標準コンテナモデルにおいて Linux と同様の動作をします。Windows では、アプリケーションプロセスコンテナが Windows カーネルとどのように連携するかを制御するコンテナ管理サービス群が実行されます。こうした設計上の選択により、Windows コンテナは Linux コンテナよりもホスト OS バージョンへの依存度が高く、ホストと同じ Windows バージョンで構築する必要があります。

この制限を回避するには、Windows VMと同じ仮想化環境で実行されながら、リソース消費量が少ないHyper-Vコンテナを使用します。Hyper-VコンテナはHyper-Vでの実行とは分離されているため、セキュリティも向上します。Windows Serverのライセンスの種類によって、実行できるコンテナの数が異なります。Datacenterでは両方の種類を無制限に使用できます。Standardではプロセスコンテナは無制限ですが、Hyper-Vの分離コンテナは2つまでに制限されます。

Windowsコンテナは起動が速く、構築と管理も容易ですが、Linuxコンテナに比べて大きな欠点があります。それは、ベースイメージが含まれているため、サイズが大きくなる可能性があることです。新しいインスタンスを起動したり、アップデートを適用したりするたびに、リモートリポジトリから最新のWindowsコンテナをダウンロードする必要があるため、Linuxコンテナよりも時間がかかります。

参照:採用キット: クラウド エンジニア(TechRepublic Premium)

Windows Server 2022とコンテナ

Microsoftは、Windows Serverの新バージョンであるNano Serverを開発しました。これは、イメージサイズを最小限に抑え、不要なサービスのほとんどを省くことを目的としています。Nano Serverは、新しいノードを迅速に起動する必要がある最新のクラウドネイティブアプリケーションのベースイメージとして引き続き推奨されていますが、既存のコードをコンテナにリフト&シフトする場合は、Windows Server Coreをベースイメージとして使用する方が適していると考えられます。

Windows Server CoreはNano Serverよりもかなり大きいため、Microsoftは大幅なサイズ削減に取り組んできました。Windows Server 2022の公式ドキュメントによると、サイズは3.5GB弱から約2.75GBに減少しています。これは33%の削減に相当し、ダウンロード時間も大幅に短縮されます。

これらのコンテナベースイメージと主流のWindows Serverとの重要な違いの一つは、アップデートの処理方法です。従来のWindows Updateプロセスではなく、WindowsコンテナOSイメージは2つの部分で提供されます。Windows Server 2022 Coreリリースに基づくRTMレイヤーと、最新のパッチとセキュリティ修正をすべて適用したパッチレイヤーです。イメージの展開時にはこの2つが結合され、RTMレイヤーのサイズは変更されませんが、パッチレイヤーは時間の経過とともに変化します。コンテナの展開にはどちらも必要なので、パッチレイヤーを考慮する必要があります。

あるいは、Microsoft独自のコンテナレジストリから毎月新しいベースイメージをダウンロードすることもできます。これらのベースイメージには最新のすべての更新プログラムが含まれており、ダウンロードサイズは小さくなります。.NET用とIIS用のMicrosoft独自のコンテナイメージも同様のプロセスで更新されます。同時に、ベースイメージのサポートライフサイクルが改善され、Windows Server 2022に合わせて2026年までサポートされるようになりました。

Windows コンテナと Kubernetes

MicrosoftはWindows Server 2022を利用して、新しいクラスのWindowsコンテナを導入します。これらの新しいホストプロセスコンテナは、Kubernetesに対するWindowsのサポートを拡張し、デバイス、ストレージ、ネットワークなどのホストサーバー機能へのアクセスを提供するように設計されています。コンテナに管理者アカウントでログインしてWindowsサービスを管理する代わりに、ホストプロセスコンテナをすべてのKubernetesクラスターに展開し、ホストサーバーのActive Directoryメンバーシップに基づいてローカルユーザーまたはドメインユーザーとして実行することで、クラスターを直接管理できます。

グループ管理サービスアカウントのサポートを基盤としたその他の新しい管理ツールにより、コンテナは管理対象ホストを必要とせずにActive Directoryと連携できます。コンテナは、ホスト上に保持されたアカウント情報を含むシークレットストアを使用してgMSAと連携できます。このシークレットストアは、ホストをドメインに参加させることなくアカウント情報を入力することが可能です。このアプローチはKubernetesを使用する際に便利です。Active Directoryのメンバーシップを、Kubernetesインスタンスをホストするためだけに存在するサーバーではなく、アプリケーションに関連付けることができるからです。

Windows、特にKubernetesでは単一サーバー上で多数の小規模ノードを実行する傾向があるため、コンテナの実行はネットワークへの影響を招いていました。Windows Server 2022では、ネットワークのスケーリング方法を改善することで、この影響を軽減することを目指しています。これらの変更により、単一サーバー上で数百のノードを実行できるようになり、同時にHyper-Vの仮想スイッチのパフォーマンスも向上します。

参照:iCloud vs. OneDrive:Mac、iPad、iPhone ユーザーに最適なのはどちら?(無料 PDF) (TechRepublic)

コンテナ運用の合理化

Windows Server 2022 における Windows コンテナーの興味深いアップデートの一つが、Windows Admin Center です。Web Deploy パッケージから直接 ASP.NET アプリケーションを迅速にコンテナー化できるようになりました。このアプローチにより、開発ツールからサーバー上で実行されているコンテナーへのアクセスが簡素化され、イメージの検証と Azure Container Registry へのプッシュが自動化されます。WAC を使用して ACR インスタンスを管理できるだけでなく、Azure Container Instance で実行されているコンテナーをオンプレミス サーバーから制御することも可能です。Azure 上で実行されているか、Azure Arc で管理されているかは関係ありません。

もう一つの小さな、しかし便利な修正は、Windowsコンテナのタイムゾーンサポートを仮想化することです。ホストサーバーのタイムゾーンに依存するのではなく、ローカルタイムゾーンから仮想タイムゾーンへのオフセットを設定できるようになりました。これにより、地理的な影響を受けやすいコードでユーザーのタイムゾーンをより効果的にサポートできるようになります。コンテナのタイムゾーンは、ホストに初めてインストールする際にPowerShellを使用して設定します。この設定は再起動後も保持されます。

Windows Server 2022は、Microsoftが従来のアプリケーションホスティングから、同社が得意とするハイブリッドクラウドへのアプローチへと移行していることを改めて示しています。Windowsコンテナに関する同社の取り組みの多くはKubernetesとの連携に重点を置いており、同社がこの2つのテクノロジをオンプレミスシステムとAzureの両方で最新のアプリケーションをサポートする手段と捉えていることは明らかです。オンプレミスのWindowsコンテナをWindows Serverで管理・サポートするために必要なツールを提供することで、MicrosoftはユーザーがまずAzure Arcをコード管理およびコンテナホスティングプラットフォームとして検討し、Azure Stack HCI、そして最終的にはAzureへと移行していくことを期待しています。Windows Serverにこのような機能が追加されれば、Microsoftが勝利する可能性は十分にあります。

Tagged: