このチュートリアル (パート 3/5) では、既存のノードを Azure Linux に移行します。 次のいずれかの方法を使って、既存のノードを Azure Linux に移行できます。
既存のノード プールを削除して、新しい Azure Linux ノード プールを追加します。
OS SKU のインプレース移行。
Azure Linux に移行する既存のノードがない場合は、次のチュートリアルに進んでください。 この後のチュートリアルでは、クラスターでテレメトリと監視を有効にして、Azure Linux ノードをアップグレードする方法について説明します。
前提条件
前のチュートリアルでは、AKS クラスター用 Azure Linux コンテナー ホストを作成してデプロイしました。 このチュートリアルを完了するには、既存のクラスターに Azure Linux ノード プールを追加する必要があります。 この手順を実行しておらず、手順に沿って進めたい場合は、「チュートリアル 2: 既存の AKS クラスターに Azure Linux ノード プールを追加する」から始めます。
注意
新しい Azure Linux ノード プールを追加するときは、少なくとも 1 つを --mode System として追加する必要があります。 そうしないと、AKS では既存のノード プールを削除できません。
az aks nodepool add コマンドを使って、新しい Azure Linux ノード プールを追加します。 このコマンドは、--mode System フラグを指定してクラスターに新しいノード プールを追加します。これにより、それはシステム ノード プールになります。 Azure Linux クラスターにはシステム ノード プールが必要です。
az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
az aks nodepool delete コマンドを使って、既存のノードを削除します。
az aks nodepool delete --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name>
OS SKU のインプレース移行
ノード プールの OS SKU を変更して、既存の Ubuntu ノード プールを Azure Linux に移行できるようになりました。これにより、クラスターで標準ノード イメージ アップグレード プロセスが行われます。 この新機能では、新しいノード プールを作成する必要はありません。
制限事項
OS SKU 移行要求をブロックする可能性がある設定がいくつかあります。 移行を成功させるには、次のガイドラインと制限事項を確認してください。
OS SKU 移行機能は、PowerShell または Azure portal では使用できません。
OS SKU 移行機能では、既存のノード プールの名前を変更できません。
サポートされている Linux OS SKU 移行ターゲットは、Ubuntu と Azure Linux だけです。
UseGPUDedicatedVHD が有効になっている Ubuntu OS SKU では、OS SKU の移行を実行できません。
CVM 20.04 が有効になっている Ubuntu OS SKU では、OS SKU の移行を実行できません。
Kata が有効になっているノード プールでは、OS SKU の移行を実行できません。
Windows OS SKU の移行はサポートされていません。
OS SKU の Mariner から Azure Linux への移行はサポートされていますが、Mariner へのロールバックはサポートされていません。
前提条件
少なくとも 1 つの Ubuntu ノード プールを含む既存の AKS クラスター。
OS SKU 移行機能を使う前に、開発と運用環境に Azure Linux クラスターをデプロイし、サービスが正常なままであることを検証して、ワークロードの構成と実行が Azure Linux コンテナー ホストで正常に行われるのを確認することをお勧めします。
運用クラスターでプロセスを使う前に、移行機能が動作することをテストと開発環境で確認します。
アップグレードの間に AKS が VM 間でポッドを移動できる十分なポッド中断バジェットがポッドにあることを確認します。
az aks nodepool update コマンドを使って、ノード プールの OS SKU を Azure Linux に移行します。 このコマンドは、ノード プールの OS SKU を Ubuntu から Azure Linux に更新します。 OS SKU の変更によって即時アップグレード操作がトリガーされ、完了までに数分かかります。
az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
クラスターの ARM、Bicep、または Terraform テンプレートを再デプロイして、OSSKU の新しい設定を適用します。 このデプロイの間、クラスターはノード イメージのアップグレードを行っているかのように動作します。 クラスターの容量が増加した後、既存のノードが 1 つずつ、新しい OS SKU の最新の AKS イメージで再起動されます。
ロールバック
OS SKU の移行中に問題が発生した場合は、以前の OS SKU にロールバックできます。 これを行うには、テンプレートの OS SKU フィールドを変更して、デプロイを再送信する必要があります。これにより、別のアップグレード操作がトリガーされて、ノード プールが以前の OS SKU に復元されます。
注意
OS SKU の移行は、OS SKU Mariner へのロールバックをサポートしていません。
az aks nodepool update コマンドを使って、以前の OS SKU にロールバックします。 このコマンドは、ノード プールの OS SKU を Azure Linux から Ubuntu に更新します。
az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
次のステップ
このチュートリアルでは、次のいずれかの方法を使って、既存のノードを Azure Linux に移行しました。