この記事では、Azure Kubernetes Service (AKS) が仮想マシン (VM) を優先して仮想マシン可用性セット (VMAS) のサポートを段階的に廃止する方法について詳しく説明します。 AKS 最適化 VM には 仮想マシン ノード プール を使用することをお勧めします。
仮想マシン ノード プール:
- VM インスタンスを一元的に管理、構成、更新できるようにします。
- 需要または定義されたスケジュールに応じて、仮想マシン インスタンスの数を増減できるようにします。
- 単一のノード レベルの制御と、異なるサイズのノードの同じファミリの混在を許可します。これにより、柔軟性が向上し、一貫性が向上します。
Von Bedeutung
2025 年 9 月 30 日から、Azure Kubernetes Service (AKS) は可用性セットをサポートしなくなりました。 この日以降の可用性セットを持つクラスターは、サポート対象外と見なされます。 継続的なサポートを確保し、強化された管理機能を利用するために、この日付より前にすべてのワークロードを Virtual Machines ノード プール に移行します。 このサポート終了の詳細については、Retirement GitHub イシューをご覧ください。 お知らせや更新情報を常に把握するには、 AKS のリリース ノートに従ってください。
可用性セットの概要
可用性セットは仮想マシン (VM) の論理的なグループであり、関連する VM が同時にダウンする相関障害が発生する危険性を低減します。 可用性セットは、信頼性を向上するために VM を異なる障害ドメインに配置します。
可用性セットの段階的廃止
2019 年の時点で、AKS の可用性セットに他の機能を追加することはなくなりました。 可用性セットでは、2019 年以降に導入された機能 (AKS Backup など) はサポートされていません。
可用性セットから Virtual Machines ノード プールに移行する
これで、スクリプトを使用して、AKS クラスターを可用性セットを使用して Virtual Machines ノード プールに移行する方法が追加されました。 また、このスクリプトは、クラスター内の Basic レベルのロード バランサーを Standard レベルに自動的にアップグレードします。
Von Bedeutung
このプロセスではさらに、ロード バランサーに関連付けられている受信 IP アドレスを保持したまま、Basic IP を Standard IP に移行します。 このプロセス中に、新しいパブリック IP が作成され、クラスター エグレス トラフィックを処理するための Standard Load Balancer アウトバウンド規則に関連付けられます。
Basic Load Balancer から Standard Load Balancer へのアップグレードの詳細と FAQ については、「 Azure Kubernetes Service での Basic Load Balancer からのアップグレード」を参照してください。
開始する前に
必要条件
- このスクリプトの最小 Kubernetes バージョンは 1.27 です。 AKS クラスターをアップグレードする必要がある場合は、「AKS クラスターのアップグレード」を参照してください。
- バージョン 2.76.0 の Azure CLI がインストールされている必要があります。
- クラスターが秘密キー コンテナーを使用して Key Management Service を実行している場合は、移行中に Key Management Service を 無効にする 必要があります。
- クラスターで
ValidatingAdmissionWebhooksまたはMutatingAdmissionWebhooksを使用している場合は、移行前にこれらの Webhook を無効にする必要があります。 コントロール プレーンの既定の Webhook を無効にしないでください。 たとえば、aks-node-mutating-webhook、webhook-admission-controller、aks-node-validating-webhookなどです。
移行の準備
- 計画的なダウンタイムの移行計画を立てます。
- 移行が開始されると、ロールバックは許可されません。
可用性セット移行の移行スクリプトを実行する
次のコマンドで、 <myResourceGroup> と <myAKSCluster> をリソース グループ名と AKS クラスター名に置き換えます。
次のコマンドは、
az aks updateコマンドを使用し、--migrate-vmas-to-vmsを設定して、クラスターを可用性セットから Virtual Machines プールに移行するスクリプトを開始します。 このスクリプトでは、Basic Load Balancer と Basic IP も Standard Load Balancer と Standard IP にアップグレードします (該当する場合)。az aks update \ --name <myAKSCluster> \ --resource-group <myResourceGroup> \ --migrate-vmas-to-vms \az aks showコマンドを使用して、移行が成功したことを確認します。 コマンドの出力には、クラスターの詳細が表示されます。az aks show \ --name <myAKSCluster> \ --resource-group <myResourceGroup>az aks showコマンドを使用してクラスターの詳細が表示されるとき、typeがVirtualMachinesに設定され、loadbalancerSkuがStandardに設定されている場合、移行が成功したことを確認できます。"type": "VirtualMachines" "loadBalancerSku": "standard",kubectl get podsコマンドとkubectl get svcコマンドを使用して、すべてのポッドとサービスが正常に実行されていることを確認します。kubectl get svc -A \ kubectl get pods -A送信 IP アドレスを一覧表示することで、送信規則に関連付けられている新しい IP アドレスを確認できます。 この手順は、IP アドレスのリソース ID を確認し、IP アドレスを一覧表示することによって行われます。
次のコマンドを使用して、送信 IP アドレスのリソース ID を取得します。
# Get the outbound IP Resource ID az aks show \ --resource-group <myResourceGroup> \ --name <myAKSCluster> \ --query networkProfile.loadBalancerProfile.effectiveOutboundIPs[].id次のコマンドを使用して、リソース ID の各 IP アドレスを取得し、
<IPResourceID>を前のコマンドのリソース ID に置き換えます。# get the new IP for each IP Resource ID az network public-ip show --ids <IPResourceID> --query ipAddress -o tsv