次の方法で共有


Azure Kubernetes Service (AKS) で Virtual Machines ノード プールを使用する

この記事では、AKS の新しい仮想マシン ノード プールの種類について説明します。

Virtual Machines ノード プールを使用すると、AKS は、すべての単一ノードのプロビジョニングとブートストラップを直接管理します。 Virtual Machine Scale Sets ノード プールの場合、AKS は Virtual Machine Scale Sets のモデルを管理し、それを使用してノード プール内のすべてのノード間で一貫性を実現します。 Virtual Machines ノード プールを使用すると、個々のワークロードに最適な仮想マシンを使用してクラスターを調整できます。

概要

しくみ

ノード プールは一連の仮想マシンで構成され、さまざまな種類のワークロードをサポートするために、異なる仮想マシン サイズが指定されます。 これらの仮想マシン サイズは、SKU と呼ばれ、特定の目的に合わせて最適化されたさまざまなファミリに分類されます。 詳細については、VM の SKU に関するページを参照してください。

複数の仮想マシン サイズのスケーリングを有効にするために、仮想マシン ノード プールの種類では、ノード プールをスケーリングする方法、特に仮想マシンのサイズの目的の一覧と各サイズの数を示す構成を含む ScaleProfile が使用されます。 ManualScaleProfileは、1 つの目的の仮想マシン サイズと、ノード プール内のその種類の合計数を指定するスケール プロファイルです。 ManualScaleProfile では、1 つの仮想マシン サイズのみが許可されます。 ノード プール内の仮想マシン サイズごとに個別の ManualScaleProfile を作成する必要があります。 新しい Virtual Machines ノード プールを作成するときは、次の手順に従って、 vm-size フィールドと node-countを含めて、仮想マシン サイズの初期手動スケール プロファイルを追加します。 [手動スケール プロファイルの追加][#add-a-manual-scale-profile-to-a-node-pool]の手順に従って、手動スケール プロファイルを追加することもできます。

新しい Virtual Machines ノード プールを作成する場合は、複数のスケール プロファイルを使用でき、ノードプールには少なくとも 1 つの手動スケール プロファイルが必要です。

長所

Virtual Machines ノード プールの種類の利点は次のとおりです。

  • 柔軟性: ノードの仕様を更新して、現在のワークロードとニーズに合わせて調整できます。
  • 微調整されたコントロール: 単一のノード レベルのコントロールを使用すると、異なる仕様のノードを指定および混合して、1 つのモデルから制限を解除し、一貫性を向上させることができます。
  • 効率性: クラスターのノード占有領域を減らし、運用要件を簡素化できます。

Virtual Machines ノード プールは、動的ワークロードと高可用性の要件に対してより優れたエクスペリエンスを提供します。 Virtual Machines ノード プールを使用すると、1 つのノード プールに複数の類似ファミリ仮想マシンを設定できます。 ワークロードは、構成した使用可能なリソースに自動的にスケジュールされます。

機能の比較

次の表では、Virtual Machines ノード プールと標準の Scale Set ノード プールの比較を示します。

ノード プールの種類 機能
Virtual Machines ノード プール ノード プール内のノードを追加、削除、または更新できます。 仮想マシンの種類は、同じファミリ タイプ (D シリーズ、A シリーズなど) の任意の仮想マシンにすることができます。
Virtual Machine Scale Set ベースのノード プール ノード プール内の同じサイズと種類のノードを追加または削除できます。 クラスターに新しい仮想マシン サイズを追加する場合は、新しいノード プールを作成する必要があります。

制限事項

  • クラスター自動スケーラーは現在サポートされていません。
  • InifiniBand は使用できません。
  • この機能は、Azure portal では使用できません。 AZURE CLI または REST API を使用して CRUD 操作を実行するか、プールを管理する必要があります。
  • ノード プール スナップショットはサポートされていません。
  • ノード プールで選択されているすべての VM サイズは、同様の仮想マシン ファミリである必要があります。 たとえば、N シリーズの仮想マシンの種類と、同じノード プール内の D シリーズの仮想マシンの種類を混在させることはできません。
  • Virtual Machines ノード プールでは、ノード プールごとに最大 5 つの異なる仮想マシン サイズを使用できます。

前提条件

  • Azure サブスクリプション。 アカウントがない場合は、無料アカウントを作成することができます。
  • Azure CLI バージョン 2.73.0 以降がインストールおよび構成されています。 バージョンを確認するには、az --version を実行します。 Azure CLI のインストールまたはアップグレードの詳細については、「Azure CLI のインストール」を参照してください。
  • この機能には、kubernetes バージョン 1.27 以上が必要です。 Kubernetes のバージョンをアップグレードするには、「AKS クラスターのアップグレード」を参照してください

Virtual Machines ノード プールを使用して AKS クラスターを作成する

スケール プロファイルでは 1 つの VM サイズのみが許可され、Virtual Machines ノード プール全体で最大 5 個の VM スケール プロファイルに制限されます。

  • az aks create フラグが --vm-set-type に設定された "VirtualMachines" コマンドを使用して、Virtual Machines ノード プールを持つ AKS クラスターを作成します。

    次の例では、myAKSCluster という名前のクラスターを作成し、その中に 2 つのノードを含む Virtual Machines ノード プールを配置しています。また、SSH キーを生成し、ロード バランサー SKU を standard に設定し、Kubernetes バージョンを 1.28.5 に設定します。

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" 
        --node-count 2 \
        --kubernetes-version 1.28.5
    

Windows が有効なクラスターと Windows 仮想マシン ノード プールを作成する

仮想マシン ノード プールは、Windows 対応クラスターで使用できます。 次の例では、仮想マシン ノード プールを使用して myAKSCluster という名前のクラスターを作成します。 これらの手順では、最初に Linux システム プールを作成します。

  1. クラスターの Windows Server ノードの管理者資格情報として使用するユーザー名を作成します。 次のコマンドは、ユーザー名の入力を求め、後のコマンドで使用するために WINDOWS_USERNAME に設定します。

    echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
    
  2. 前の手順で作成した管理者ユーザー名のパスワードを作成します。 パスワードは 14 文字以上で、[Windows Server パスワードの複雑さの要件][windows-server-password]を満たしている必要があります。

    echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
    
  3. --vm-set-type フラグが "VirtualMachines" に設定された az aks create コマンドを使用して、Windows が有効で仮想マシンタイプのノード プールを持つ AKS クラスターを作成します。

    az aks create \ 
       --resource-group myResourceGroup \
       --name myAKSCluster \
       --node-count 2 \
       --enable-addons monitoring \
       --generate-ssh-keys \
       --windows-admin-username $WINDOWS_USERNAME \
       --windows-admin-password $WINDOWS_PASSWORD \
       --vm-set-type "VirtualMachines" \
       --network-plugin azure
    
  4. --vm-set-type フラグを "VirtualMachines" に設定した az aks nodepool add コマンドを使用して、既存の Windows 対応クラスターに仮想マシン ノード プールを追加します。 次の例では、 npwin という名前の仮想マシン ノード プールを myAKSCluster クラスターに追加します。

    az aks nodepool add
       --resource-group myResourceGroup \
       --cluster-name myAKSCluster \
       --os-type Windows \
       --name npwin \
       --vm-sizes "Standard_D2s_V3" \
       --node-count 1
       --vm-set-type "VirtualMachines"
    

Virtual Machines ノード プールを既存のクラスターに追加する

  • az aks nodepool add フラグが --vm-set-type に設定された "VirtualMachines" コマンドを使用して、Virtual Machines ノード プールを既存のクラスターに追加します。

    次の例では、myvmpool という名前の Virtual Machines ノード プールを myAKSCluster クラスターに追加します。 ノード プールは、--vm-sizesを Standard_D4s_v3 に設定し、--node-countを 3 に設定して ManualScaleProfile を作成します。

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 3
    

手動スケール プロファイルをノード プールに追加する

  • --vm-sizes フラグが "Standard_D2s_v3" に設定され、node-countが 2 に設定されたaz aks nodepool manual-scale addを使用して、手動スケール プロファイルをノード プールに追加します。

    次の例では、クラスター myAKSCluster のノード プール myvmpool に手動スケール プロファイルを追加します。 ノード プールには、2 つのノードと Standard_D2s_v3 の VM SKU が含まれています。

    az aks nodepool manual-scale add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --vm-sizes "Standard_D2s_v3" \
        --node-count 2
    

既存の手動スケール プロファイルを更新する

  • az aks nodepool manual-scale update フラグが --vm-sizes に設定された "Standard_D2s_v3" コマンドを使用して、ノード プールにある既存の手動スケール プロファイルを更新します。

    --current-vm-sizes パラメーターを使用して、更新する既存のノード プールのサイズを指定します。 --vm-sizes または --node-count、あるいは両方を更新できます。 その他のツールまたは REST API を使用する場合は、ノード プール スケール プロファイルを更新するときに、完全な agentPoolProfiles.virtualMachinesProfile.scale フィールドを渡す必要があります。

    次の例では、手動スケール プロファイルを、myAKSCluster クラスターの myvmpool ノード プールに更新します。 このコマンドはノードの数を 5 に更新し、VM SKU を Standard_D4s_v3 から Standard_D8s_v3 に変更します。

    az aks nodepool manual-scale update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --current-vm-sizes "Standard_D4s_v3" \
        --vm-sizes "Standard_D8s_v3" \
        --node-count 5
    

手動スケール プロファイルを削除する

  • az aks nodepool manual-scale delete コマンドを使用して、既存の手動スケール プロファイルを削除します。

    --current-vm-sizes パラメーターは、削除する既存のノード プールのサイズを指定します。 他のツールまたは REST API を使用してノード プール スケール プロファイルを更新する場合は、完全な agentPoolProfiles.virtualMachinesProfile.scale フィールドを渡します。

    次の例では、myvmpool ノード プール内の Standard_D8s_v3 VM SKU の手動スケール プロファイルを削除します。

    az aks nodepool manual-scale delete \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myvmpool \
        --current-vm-sizes "Standard_D8s_v3"
    

次のステップ

この記事では、AKS で Virtual Machines ノード プールを使用する方法について説明しました。 AKS のノード プールの詳細については、ノード プールの作成に関するページを参照してください。