Azure Kubernetes Service (AKS) で Virtual Machines ノード プール (プレビュー) を使用する
この記事では、AKS の新しい Virtual Machines ノード プールの種類 (プレビュー) について説明します。
Virtual Machines ノード プールを使用すると、AKS は、すべての単一ノードのプロビジョニングとブートストラップを直接管理します。 Virtual Machine Scale Sets ノード プールの場合、AKS は Virtual Machine Scale Sets のモデルを管理し、それを使用してノード プール内のすべてのノード間で一貫性を実現します。 Virtual Machines ノード プールを使用すると、個々のワークロードに最適な仮想マシンを使用してクラスターを調整できます。
概要
しくみ
ノード プールは一連の仮想マシンで構成され、さまざまな種類のワークロードをサポートするために、異なる仮想マシン サイズが指定されます。 これらの仮想マシン サイズは、SKU と呼ばれ、特定の目的に合わせて最適化されたさまざまなファミリに分類されます。 詳細については、VM の SKU に関するページを参照してください。
複数の仮想マシン サイズのスケーリングを有効にするために、Virtual Machines ノード プールの種類では、ノード プールをスケーリングする方法、特に仮想マシンのサイズと数の目的の一覧を示す構成を含む ScaleProfile
が使用されます。 ManualScaleProfile
は、目的の仮想マシンのサイズと数を指定するスケール プロファイルです。 ManualScaleProfile
では、1 つの仮想マシン サイズのみが許可されます。 ノード プール内の仮想マシン サイズごとに個別の ManualScaleProfile
を作成する必要があります。
Note
新しい Virtual Machines ノード プールを作成するときは、ScaleProfile
に少なくとも 1 つの ManualScaleProfile
が必要です。 Virtual Machines ノード プールには、複数の手動スケール プロファイルを含めることができます。
長所
Virtual Machines ノード プールの種類の利点は次のとおりです。
- 柔軟性: ノードの仕様を更新して、現在のワークロードとニーズに合わせて調整できます。
- 微調整されたコントロール: 単一のノード レベルのコントロールを使用すると、異なる仕様のノードを指定および混合して、1 つのモデルから制限を解除し、一貫性を向上させることができます。
- 効率性: クラスターのノード占有領域を減らし、運用要件を簡素化できます。
Virtual Machines ノード プールは、動的ワークロードと高可用性の要件に対してより優れたエクスペリエンスを提供します。 Virtual Machines ノード プールを使用すると、1 つのノード プールに複数の類似ファミリ仮想マシンを設定できます。 ワークロードは、構成した使用可能なリソースに自動的にスケジュールされます。
機能の比較
次の表では、Virtual Machines ノード プールと標準の Scale Set ノード プールの比較を示します。
ノード プールの種類 | 機能 |
---|---|
Virtual Machines ノード プール | ノード プール内のノードを追加、削除、または更新できます。 仮想マシンの種類は、同じファミリ タイプ (D シリーズ、A シリーズなど) の任意の仮想マシンにすることができます。 |
Virtual Machine Scale Set ベースのノード プール | ノード プール内の同じサイズと種類のノードを追加または削除できます。 クラスターに新しい仮想マシン サイズを追加する場合は、新しいノード プールを作成する必要があります。 |
制限事項
- クラスター自動スケーラーは現在サポートされていません。
- InifiniBand は使用できません。
- Windows ノード プールはサポートされていません。
- この機能は、Azure portal では使用できません。 AZURE CLI または REST API を使用して CRUD 操作を実行するか、プールを管理する必要があります。
- ノード プール スナップショットはサポートされていません。
- ノード プールで選択されているすべての VM サイズは、同様の仮想マシン ファミリである必要があります。 たとえば、N シリーズの仮想マシンの種類と、同じノード プール内の D シリーズの仮想マシンの種類を混在させることはできません。
- Virtual Machines ノード プールでは、ノード プールごとに最大 5 つの異なる仮想マシン サイズを使用できます。
前提条件
- Azure サブスクリプション。 アカウントがない場合は、無料アカウントを作成することができます。
- Virtual Machines ノード プール機能はプレビュー段階です。 この機能は、API バージョン 2023-10-02-preview 以降、または Azure CLI 拡張機能バージョン 2.61.0 以降でのみ使用できます。
- Azure CLI を使用している場合は、
aks-preview
拡張機能を登録するか、既存のaks-preview
のバージョンを最小バージョン 4.0.0b4 に更新します。 - この機能に必要な最小マイナー Kubernetes リリース バージョンは、リリース 1.26 です。
aksプレビューの Azure CLI 拡張機能をインストールする
重要
AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。 詳細については、次のサポート記事を参照してください。
az extension add
コマンドを使用して aks-preview 拡張機能をインストールします。az extension add --name aks-preview
az extension update
コマンドを使って aks-preview 拡張機能の最新バージョンに更新します。az extension update --name aks-preview
VMsAgentPoolPreview
機能フラグを登録する
az account set
コマンドを使用して、機能フラグを有効にするサブスクリプションを選択します。az account set --subscription <subscription-name>
az feature registration create
コマンドを使用して、VMsAgentPoolPreview
機能フラグを登録します。az feature registration create --namespace Microsoft.ContainerService --name VMsAgentPoolPreview
状態が [登録済み] と表示されるまでに数分かかります。
az feature show
コマンドを使用して、登録の状態を確認します。az feature show --namespace "Microsoft.ContainerService" --name "VMsAgentPoolPreview"
状態が Registered と表示されたら、
az provider register
コマンドを使用して Microsoft.ContainerService リソース プロバイダーの登録を最新の情報に更新します。az provider register --namespace "Microsoft.ContainerService"
Virtual Machines ノード プールを使用して AKS クラスターを作成する
Note
スケール プロファイルでは 1 つの VM サイズのみが許可され、Virtual Machines ノード プール全体で最大 5 個の VM スケール プロファイルに制限されます。
--vm-set-type
フラグが"VirtualMachines"
に設定されたaz aks create
コマンドを使用して、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" \ --node-count 2 \ --kubernetes-version 1.28.5
Virtual Machines ノード プールを既存のクラスターに追加する
--vm-set-type
フラグが"VirtualMachines"
に設定されたaz aks nodepool add
コマンドを使用して、Virtual Machines ノード プールを既存のクラスターに追加します。次の例では、myvmpool という名前の Virtual Machines ノード プールを myAKSCluster クラスターに追加します。 ノード プールには 3 つのノードがあり、最大 VM SKU は Standard_D4s_v3 です。
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"
に設定された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
既存の手動スケール プロファイルを更新する
--vm-sizes
フラグが"Standard_D2s_v3"
に設定されたaz aks nodepool manual-scale update
コマンドを使用して、ノード プールにある既存の手動スケール プロファイルを更新します。Note
--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
コマンドを使用して、既存の手動スケール プロファイルを削除します。Note
--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 のノード プールの詳細については、ノード プールの作成に関するページを参照してください。
Azure Kubernetes Service