ワークロードの需要が変わると、既存の 容量予約グループ (CRG) を Azure Kubernetes Service (AKS) ノード プールに関連付けて、割り当てられた容量を保証できます。 容量予約グループを使用すると、任意の期間、Azure リージョンまたは可用性ゾーンでコンピューティング容量を予約できます。 この機能は、予測可能なトラフィック パターンを持つワークロードや、特定のパフォーマンス要件を満たす必要があるワークロードなど、保証された容量を必要とするワークロードに役立ちます。
この記事では、AKS のノード プールで容量予約グループを使用する方法について説明します。
注
ノード プールを削除すると、そのノード プールを削除する前に関連付けられているすべての容量予約グループからそのノード プールの関連付けが暗黙的に解除されます。 クラスターを削除すると、関連付けられている容量予約グループのクラスター内のすべてのノード プールの関連付けが暗黙的に解除されます。
AKS ノード プールで容量予約グループを使用するための前提条件
- Azure CLI バージョン 2.56 以降がインストールおよび構成されている必要があります。 バージョンを確認するには、
az --versionを実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールを参照してください。 - 少なくとも 1 つの 容量予約 を持つ既存の容量予約グループが必要です。 そうでない場合、ノード プールは警告を含むクラスターに追加され、容量予約グループは関連付けされません。
- 容量予約グループを含むリソース グループの
Contributorロールを持つユーザー割り当てマネージド ID を作成し、その ID を AKS クラスターに割り当てる必要があります。 システム割り当てマネージド ID は、この機能では機能しません。
ユーザー割り当てマネージド ID を作成して AKS クラスターに割り当てる
az identity createコマンドを使用して、ユーザー割り当てマネージド ID を作成します。az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>az identity showコマンドを使用してユーザー割り当てマネージド ID の ID を取得し、環境変数に設定します。IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)Contributorコマンドを使用して、az role assignment createロールをユーザー割り当て ID に割り当てます。az role assignment create --assignee $IDENTITY_ID --role "Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>ロールの割り当てが反映されるまでに最大 60 分 かかることがあります。
--assign-identityまたはaz aks createコマンドを使用して、az aks updateフラグを使用して、ユーザー割り当てマネージド ID を新規または既存の AKS クラスターに割り当てます。# Create a new AKS cluster with the user-assigned managed identity az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --location <location> \ --node-vm-size <vm-size> --node-count <node-count> \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys # Update an existing AKS cluster to use the user-assigned managed identity az aks update \ --resource-group <resource-group-name> \ --name <cluster-name> \ --location <location> \ --node-vm-size <vm-size> \ --node-count <node-count> \ --enable-managed-identity \ --assign-identity $IDENTITY_ID
既存の容量予約グループの ID を取得する
az capacity reservation group show コマンドを使用して既存の容量予約グループの ID を取得し、環境変数に設定します。
CRG_ID=$(az capacity reservation group show --capacity-reservation-group <crg-name> --resource-group <resource-group-name> --query id -o tsv)
既存の容量予約グループを新しいノード プールに関連付ける
az aks nodepool add フラグを指定して --crg-id コマンドを使用して、既存の容量予約グループを新しいノード プールに関連付けます。 次の例では、"myCRG" という名前の CRG があることを前提としています。
az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
既存の容量予約グループを既存のノード プールに関連付ける (プレビュー)
az aks nodepool update フラグを指定して --crg-id コマンドを使用して、既存の容量予約グループを既存のノード プールに関連付けます。
- ゾーン ノード プールの場合、この操作はターゲット ノード プールのローリング 更新を開始します。 更新プロセスでは、すべてのノードに対して順次、コードンを適用し、ドレインを実行し、その後再起動を行って変更を適用します。
- プレビュー中にゾーン (リージョン) 以外のノード プールの場合は、最初にノード プールをゼロにスケーリングしてから、容量予約グループを適用します。
Prerequisites
このコマンドを実行する前に、
aks-previewAzure CLI拡張機能バージョン20.0.0b7以降をインストールします。容量予約グループに、ノード プールのアップグレード戦略に十分な容量があることを確認します。
maxSurge > 0場合は、最大サージ値に対して追加容量を予約します。 たとえば、maxSurgeを2に設定した 10 ノード プールは、アップグレード中に最大 12 ノードを実行できます。 この追加容量は、maxUnavailable のみを使用するロールアウトや、リージョン単位のスケール・トゥ・ゼロのパスでは不要です。az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
既存の容量予約グループを システム ノード プールに関連付ける
既存の容量予約グループをシステム ノード プールに関連付けるには、クラスターの作成時に、 Contributor ロールを持つユーザー割り当てマネージド ID をクラスターに割り当てる必要があります。 その後、 --crg-id フラグを使用して、容量予約グループをシステム ノード プールに関連付けることができます。
ユーザー割り当てマネージド ID を使用して新しい AKS クラスターを作成し、
--assign-identityコマンドで--crg-idフラグとaz aks createフラグを使用して容量予約グループに関連付けます。az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --location <location> \ --node-vm-size <vm-size> --node-count <node-count> \ --assign-identity $IDENTITY_ID \ --crg-id $CRG_ID \ --generate-ssh-keys
次の手順: AKS でノード プールを管理する
AKS でのノード プールの管理の詳細については、「 Azure Kubernetes Service (AKS) でのノード プールの管理」を参照してください。