次の方法で共有


コンテナーの移植性

適用対象: Windows Server、バージョン 23H2

移植性は、Windows Server for Containers 年間チャネルの機能です。 移植性により、アップグレード プロセスが合理化され、コンテナーが提供する拡張された柔軟性と互換性を最大限に活用できます。 この記事では、年間チャネル コンテナー ホストに対してコンテナー イメージの移植性がどのように最適化されているかについて詳しく説明します。

Windows Server for Containers 年間チャネルは、効率を向上させ、Windows コンテナーと Linux コンテナーの両方の移植性を最適化するために、Azure Kubernetes Service とコンテナーに重点を置いた Windows Server の展開用に設計された Windows Server のエディションです。 Windows Server のコンテナー用の年間チャネルの詳細については、TechCommunity のお知らせを参照してください。

移植性のしくみ

Windows では、コンポーネントが頻繁にユーザー モードとカーネル モードの間で緊密にバインドされるモジュール型カーネルを使用します。 緊密にバインドされたコンポーネントは、カーネル モード ドライバーの上位にある有用なグラフィカル インターフェイスで、カーネル モードをユーザー モード コンテキスト スイッチに低減することでパフォーマンスを最適化します。 ただし、コンテナーに関しては課題があります。 移植性により、ユーザー モードで実行されているコンテナーは、ホスト オペレーティング システムのバージョンとは異なるコンテナー イメージ バージョンでワークロードを実行できるようになります。

移植性がないと、ユーザーはイメージとホストのバージョンが一致するワークロードしか実行できません。 たとえば、Windows Server 2022 ホストを実行しているユーザーは、Windows Server 2019 プロセス分離コンテナーを実行できませんでした。 ホストとコンテナー イメージの間のバージョン管理は、Windows コンテナー化の重大な問題点となり、コンテナー ホストの新しいバージョンへの移行が困難になりました。 たとえば、Windows Server 2022 LTSC では、ホストの更新と同時に、すべてのインフラストラクチャとアプリケーション イメージが最新バージョンに更新される必要がありました。

アプリケーション バイナリ インターフェイス

アプリケーション バイナリ インターフェイス (ABI) を使用すると、さまざまなプログラミング言語でユーザー インターフェイスやカーネル モード インターフェイスを操作できます。 クライアント コードとランタイム オブジェクトとの対話は最下位レベルで発生し、クライアントの言語の構成要素はオブジェクトの ABI への呼び出しに変換されます。 Windows コンテナーの移植性により、ユーザーとカーネルの対話に安定した ABI が導入されます。 この安定した ABI は、システムのユーザー コンポーネントとカーネル コンポーネントを切り離し、システムのカーネル要素とユーザー要素を個別に更新する機能を提供します。

コンテナーは、基本レイヤーからすべてのユーザー モード バイナリを実行できますが、ABI レイヤーは除きます。

次の図は、ユーザー モード コンポーネントとカーネル モード コンポーネント間の通信を示しています。

安定した ABI 境界を示す図。ホストのプロセスとサービス、およびコンテナーのプロセスとサービスは、この抽象化された層を使用して、基になる共有カーネルと通信します。

どのバージョンを使用できますか?

Nano Server、Server Core、および Windows Server コンテナー イメージは、Windows Server 2019 以降を実行しているコンテナーの長期サービス チャネル経由でのみ使用できます。 サポートされている Windows Server コンテナー イメージの詳細については、「基本イメージのサービス ライフサイクル」を参照してください。

Windows Server、バージョン 23H2 コンテナー ホストでは、Windows Server 2022 長期サービス チャネル (LTSC) コンテナー イメージのみがサポートされます。

Azure Kubernetes Service では現在、Windows Server 2019 以降のホストをサポートしています。 Windows Server for Containers 年間チャネルは、Microsoft が Kubernetes 1.28 と共に提供するもう 1 つのコンテナー OS オプションです。 年間チャネルに基づいて新しいノード プールを作成し、これらのノードに Windows Server 2022 コンテナー イメージを展開し続けることができます。 Microsoft は、年間チャネル バージョンと新しい Kubernetes リリースを年単位で自動的に更新します。 ただし、最新の LTSC リリースに従って、コンテナーが最新であることを確認することもお勧めします。

Note

以前のコンテナー イメージ リリースは新しいホスト OS で実行できますが、新しいコンテナー イメージ オペレーティング システムは以前のホスト オペレーティング システムでは実行できません。