この記事では、自動スケーラーが有効なノード プールを使用してクラスターをスケーリングするときに表示される "クラスター オートスケーラー対応ノード プールをスケーリングできません" というエラーを解決する方法について説明します。
現象
次のメッセージのようなエラー メッセージが表示されます。
kubectl get nodes出力 "リソースが見つかりません"
すべてのポッドの状態は次の値です。Pending
"クラスター オートスケーラー対応ノード プールをスケーリングできません" エラーでスケール操作が失敗する
トラブルシューティングのチェックリスト
Azure Kubernetes Service (AKS) では、仮想マシン スケール セットベースのエージェント プールが使用されます。このプールには、クラスター ノードと クラスター自動スケール機能 が含まれます (有効になっている場合)。
クラスター仮想マシン スケール セットが存在することを確認する
Azure ポータルにサインインします。
次の名前を検索して、ノード リソース グループを見つけます。
- 既定の名前
MC_{AksResourceGroupName}_{YourAksClusterName}_{AksResourceLocation}。 - カスタム名 (作成時に指定された場合)。
注
新しいクラスターを作成すると、AKS リソースを保存するための 2 つ目のリソース グループが自動的に作成されます。 詳細については、「AKS と一緒にリソース グループが 2 つ作成されるのはなぜでしょうか?」を参照してください。
- 既定の名前
リソースの一覧を確認し、仮想マシン スケール セットがあることを確認します。
原因 1: クラスター仮想マシン スケール セットが削除されました
クラスターに接続されている仮想マシン スケール セットを削除すると、クラスター オートスケーラーが失敗します。 また、ノードやポッドなどのリソースをプロビジョニングするときにも問題が発生します。
注
AKS クラスター内のノード リソース グループにあるリソースの変更はサポートされていないアクションであり、クラスター操作エラーが発生します。 AKS クラスターによって管理されているリソースをユーザーが変更できないようにすることで、ノード リソース グループに変更が加えられるのを防ぐことができます。
ノード プールの調整
クラスター仮想マシン スケール セットが誤って削除された場合は、次の az aks nodepool updateを使用してノード プールを調整できます。
# Update Node Pool Configuration
az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <nodepool-name> --tags <tags> --node-taints <taints> --labels <labels>
# Verify the Update
az aks nodepool show --resource-group <resource-group-name> --cluster-name <cluster-name> --name <nodepool-name>
ノード プールを監視して、想定どおりに機能していることと、すべてのノードが動作していることを確認します。
原因 2: ノード リソース グループからタグまたはその他のプロパティが変更された
ノード リソース グループ内の Azure で作成されたタグやその他のリソース プロパティを変更または削除すると、スケーリング エラーが発生する可能性があります。 詳細については、「 ノード リソース グループ内の AKS リソースのタグやその他のプロパティを変更できますか?」を参照してください。
ノード リソース グループ タグを調整する
Azure CLI を使用して、ノード リソース グループに AKS 名と AKS グループ名の正しいタグがあることを確認します。
# Add or update tags for AKS name and AKS group name
az group update --name <node-resource-group-name> --set tags.AKS-Managed-Cluster-Name=<aks-managed-cluster-name> tags.AKS-Managed-Cluster-RG=<aks-managed-cluster-rg>
# Verify the tags
az group show --name <node-resource-group-name> --query "tags"
リソース グループを監視して、タグが正しく適用されていること、およびリソース グループが期待どおりに機能していることを確認します。
原因 3: クラスター ノード リソース グループが削除されました
クラスター ノード リソース グループを削除すると、クラスターに必要なインフラストラクチャ リソースをプロビジョニングするときに問題が発生し、クラスター オートスケーラーが失敗します。
解決策: 構成を変更せずにクラスターを目標の状態に更新する
この問題を解決するには、次のコマンドを実行して、削除された仮想マシン スケール セットまたは任意のタグ (欠落または変更済み) を回復できます。
注
操作が完了するまで数分かかる場合があります。
コマンドを実行する前に、AKS クラスター リソース グループとクラスター名の環境変数を設定します。 繰り返し可能な実行中に名前の競合を防ぐため、ランダムなサフィックスが含まれていますが、リソース グループとクラスターが存在することを確認する必要があります。
export RANDOM_SUFFIX=$(head -c 3 /dev/urandom | xxd -p)
export AKS_RG_NAME="MyAksResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="MyAksCluster$RANDOM_SUFFIX"
az aks update --resource-group $AKS_RG_NAME --name $AKS_CLUSTER_NAME --no-wait
お問い合わせはこちらから
ご質問がある場合は、 Azure コミュニティサポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。