次の方法で共有


クラスター ノード イメージのアップグレード中に Windows Server ノード プールが Gen2 にアップグレードされない

この記事では、Microsoft Azure Kubernetes Service (AKS) でクラスター ノード イメージがアップグレードされたときに、Windows Server ノード プールが Gen1 から Gen2 仮想マシン (VM) に自動的にアップグレードされないシナリオのトラブルシューティング方法について説明します。

このシナリオは、Linux ノード プール上の Gen2 VM には適用されません。

前提条件

  • Azure CLI バージョン 2.0.81 以降。 インストール手順については、 Azure CLI のインストールを参照してください。

現象

Azure CLI で次のいずれかの方法を使用して ノード イメージをアップグレード しても、既存の Windows Server ノード プールは Gen1 から Gen2 にアップグレードされません。

  • クラスター全体のアップグレード ( az aks upgrade コマンドを使用)

  • 特定のノード プールのアップグレード ( az aks nodepool upgrade コマンドを使用)

原因

原因 1: 既存のノード プールが Gen2 VM に自動的にアップグレードされない

仕様上、ノード イメージのアップグレードでは、既存のノード プールの更新またはアップグレードはサポートされていません。 az aks upgradeコマンドとaz aks nodepool upgrade コマンドは、ノード イメージのみを (新しいノード イメージ バージョンに) アップグレードします。 これらのコマンドは、対応する VM の生成をアップグレードしません。

原因 2: クラスターを Kubernetes バージョン 1.25 以降のバージョンにアップグレードすると、OS のみがアップグレードされる

クラスターを Kubernetes バージョン 1.25 以降のバージョンにアップグレードすると、オペレーティング システム (OS) のみが (Windows Server 2022 に) アップグレードされます。 既存のノード プールは影響を受けません。 関連付けられている Azure 仮想マシン スケール セットには、同じ Gen1 VM を持つ VM が含まれています。

原因 3: 有効な VM サイズを指定せずに Windows Server 2022 を使用して作成されたクラスターのアップグレードと新しいノード プール

クラスターを Kubernetes バージョン 1.25 以降のバージョンにアップグレードした後、ノード プールの VM で使用する OS として Windows Server 2022 を指定します。 ただし、次のいずれかの理由により、VM は Gen2 ノード イメージ参照を使用しません。

  • VM サイズを指定せず、リージョンの既定の VM サイズでは Gen2 VM がサポートされていません。

  • Gen1 専用 VM サイズを指定します。

Windows Server 2019 (Windows2019) から Windows Server 2022 (Windows2022) に既定の OS をアップグレードしても、既存のノード プールは別の VM 世代に自動的にアップグレードされません。

ソリューション

クラスターをアップグレードし、次のガイドラインに従って、そのクラスターで Gen2 VM サイズ をサポートする新しい Windows Server ノード プールを作成します。

Kubernetes クラスターのアップグレード バージョン クラスター作成のガイドライン
1.25 以降のバージョン az aks create コマンドを実行してクラスターを作成する場合は、--node-vm-size パラメーターを Gen2 VM サイズに設定します。
1.25 より前のバージョン az aks create コマンドを実行してクラスターを作成する場合は、--os-skuパラメーター値を Windows2022 に設定し、--node-vm-sizeパラメーターの値を Gen2 VM サイズに設定します。

Gen2 VM のサイズを指定し、オペレーティング システムを Windows Server 2019 として設定すると、次のエラー メッセージを伴う ErrorCode_Windows2019NotSupportedWithGen2VM エラー コードが表示されます。

<virtual-machine-size> は Gen 2 専用 VM です。 Windows 2019 では、Gen 2 VM はサポートされていません。 ただし、Gen 1 VM のサイズを選択するか、os_skuを 2022 に設定できます。

この問題を回避するには、クラスターの作成時に次のいずれかのオプションを選択します。

  • Windows Server 2019 と共に使用する Gen1 VM サイズを選択します。

  • オペレーティング システム SKU を Windows Server 2022 に設定して、Gen2 VM と共に使用します。

  • 新しいノード プールを作成する前に、VM サイズがリージョン内の Gen2 VM をサポートしていることを確認します。 これを行うには、az vm list-sizes --location <region> --query "[?contains(name, 'v2')].name" --output table を実行します。

  • 現在および使用可能なノード イメージのバージョンを確認するには、次のコマンドを実行します。

    • 現在のバージョンを確認するには: az aks nodepool show --resource-group <resource-group> --cluster-name <cluster-name> --name <nodepool-name> --query nodeImageVersion
    • 利用可能な最新バージョンを確認するには: az aks nodepool get-upgrades --resource-group <resource-group> --cluster-name <cluster-name> --nodepool-name <nodepool-name> --query latestNodeImageVersion

お問い合わせはこちらから

ご質問がある場合は、 Azure コミュニティサポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。