Azure Kubernetes Service (AKS) クラスターに Azure Dedicated Host を追加する
Azure 専用ホストは、1 つの Azure サブスクリプションに対して専用の物理サーバーを提供するサービスであり、1 つ以上の仮想マシンをホストできます。 専用ホストは、データ センターで使用されるものと同じ物理サーバーであり、リソースとして提供されます。 リージョン、可用性ゾーン、障害ドメイン内に専用ホストをプロビジョニングできます。 次に、プロビジョニングされたホストに VM を直接配置し、ニーズに最も合った構成にすることができます。
AKS クラスターでノードに Azure Dedicated Host を使用することには、次のような利点があります。
- 物理サーバー レベルでのハードウェアの分離。 他の VM はホスト上に配置されません。 専用ホストは同じデータ センターに展開され、他の分離されていないホストと同じネットワークおよび基になるストレージ インフラストラクチャを共有します。
- Azure プラットフォームによって開始されるメンテナンス イベントの制御。 ほとんどのメンテナンス イベントでは仮想マシンに対する影響はほとんど、またはまったくありませんが、1 秒間の一時停止が影響する可能性のある機密性の高いワークロードがいくつかあります。 専用ホストを使用すると、メンテナンス期間を選択して、サービスへの影響を軽減できます。
開始する前に
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
- 開始する前に、Azure CLI のバージョンが 2.39.0 以降である必要があります。 以前のバージョンの場合は、最新バージョンをインストールします。
制限事項
Azure Dedicated Host を Azure Kubernetes Service に統合する場合は、次の制限事項が適用されます。
- 高速ネットワーク
- 既存のエージェント プールを、ADH 以外から ADH に、または ADH から ADH 以外に変換することはできません。
- ホスト グループ A からホスト グループ B へのエージェント プールの更新はサポートされていません。
- サブスクリプションで ADH を使用します。
AKS での ADH 容量の計画
すべてのホスト SKU がすべてのリージョンおよび可用性ゾーンで使用できるわけではありません。 専用ホストのプロビジョニングを開始する前に、ホストの可用性とプランの制限事項を一覧表示できます。
az vm list-skus --location eastus --resource-type hostGroups/hosts -o table
Note
第一に、ホスト グループを使用する場合、nodepool 障害ドメインの数は、常にホスト グループの障害ドメインの数と同じになります。 クラスターの自動スケーリングを使用して ADH と AKS を操作する場合は、ホスト グループの障害ドメインの数と容量が十分であることを確認してください。 第二に、障害ドメインの数を既定値の 1 から他の数に変更するのは、それによって何が起こるかを把握している場合に限ってください。構成に誤りがあると、構成がスケーラブルでなくなるおそれがあるためです。
予想される VM 使用率に基づいて、必要なホスト数を決定します。
ホスト使用率を評価して、デプロイする前に割り当て可能な VM 数をサイズ別に決定します。
az vm host get-instance-view --resource-group myDHResourceGroup --host-group MyHostGroup --name MyHost
AKS クラスターに Dedicated Host グループを追加する
ホスト グループは、専用ホストのコレクションを表すリソースです。 リージョンと可用性ゾーンにホスト グループを作成し、それにホストを追加します。 高可用性を計画する場合は、他のオプションがあります。 専用ホストでは、次のいずれかまたは両方のオプションを使用できます。
- 複数の可用性ゾーンにまたがります。 この場合は、使用する各ゾーンにホスト グループを用意する必要があります。
- 物理ラックにマップされる複数の障害ドメインにまたがります。
どちらの場合も、ホスト グループに対して障害ドメイン数を指定する必要があります。 グループ内で障害ドメインをまたがりたくない場合は、障害ドメインの数を 1 にします。
可用性ゾーンと障害ドメインの両方を使用することもできます。
ホスト グループを作成する
次に、ホスト グループに専用ホストを作成します。 ホストの名前に加えて、ホストの SKU を指定する必要があります。 ホスト SKU では、専用ホストに対してサポートされている VM シリーズとハードウェアの世代がキャプチャされます。
ホスト SKU の詳細と価格については、「Azure 専用ホストの価格」を参照してください。
az vm host create を使用してホストを作成します。 ホスト グループの障害ドメイン数を設定した場合は、ホストの障害ドメインを指定するように求められます。
この例では、az vm host group create を使用し、可用性ゾーンと障害ドメインの両方を使用してホスト グループを作成します。
az vm host group create \
--name myHostGroup \
--resource-group myDHResourceGroup \
--zone 1 \
--platform-fault-domain-count 1 \
--automatic-placement true
専用ホストを作成する
次に、ホスト グループに専用ホストを作成します。 ホストの名前に加えて、ホストの SKU を指定する必要があります。 ホスト SKU では、専用ホストに対してサポートされている VM シリーズとハードウェアの世代がキャプチャされます。
ホスト グループの障害ドメイン数を設定した場合は、ホストの障害ドメインを指定する必要があります。
az vm host create \
--host-group myHostGroup \
--name myHost \
--sku DSv3-Type1 \
--platform-fault-domain 1 \
--resource-group myDHResourceGroup
ユーザー割り当て ID を使用する
重要
ホスト グループのリソース グループに対する "共同作成者" ロールを持つユーザー割り当て ID が必要です。
まず、マネージド ID を作成する
az identity create --resource-group <Resource Group> --name <Managed Identity name>
マネージド ID を割り当てる
az role assignment create --assignee <id> --role "Contributor" --scope <Resource id>
ホスト グループを使用して AKS クラスターを作成する
AKS クラスターを作成し、先ほど構成したホスト グループを追加します。
az aks create \
--resource-group MyResourceGroup \
--name MyManagedCluster \
--location eastus \
--nodepool-name agentpool1 \
--node-count 1 \
--host-group-id <id> \
--node-vm-size Standard_D2s_v3 \
--assign-identity <id> \
--generate-ssh-keys
既存の AKS クラスターに Dedicated Host Node プールを追加する
既存の AKS クラスターにホスト グループを追加します。
az aks nodepool add --cluster-name MyManagedCluster --name agentpool3 --resource-group MyResourceGroup --node-count 1 --host-group-id <id> --node-vm-size Standard_D2s_v3
AKS クラスターから Dedicated Host Node プールを削除する
az aks nodepool delete --cluster-name MyManagedCluster --name agentpool3 --resource-group MyResourceGroup
次のステップ
この記事では、専用ホストを含む AKS クラスターを作成し、専用ホストを既存のクラスターに追加する方法について説明しました。 Dedicated Host の詳細については、Dedicated Host に関する記事を参照してください。
Azure Kubernetes Service