Arc によって有効になっている AKS の AKS ワークロード クラスターで Azure Arc を有効または無効にするときのエラーを解決する

適用対象: AKS on Azure Stack HCI、Windows Server 上の AKS

この記事では、AKS Arc で PowerShell コマンドレット Enable-AksHciArcConnection と Disable-AksHciArcConnection を使用して、AKS ワークロード クラスターを Azure Arc に接続または切断するときに発生する可能性があるエラー (およびその回避策) について説明します。この記事で取り上げられない問題については、「Arc 対応 Kubernetes のトラブルシューティング」を参照してください。

下に示す回避策がいずれも当てはまらない場合は、サポートの問題を開くこともできます。

エラー: "'my-aks-cluster' という名前のワークロード クラスターが見つかりませんでした"

このエラーは、ワークロード クラスターが作成されていないか、ワークロード クラスターの名前のスペルが正しくないことを示します。

Get-AksHciCluster を実行して、正しい名前を持っているか、Arc に接続するクラスターが存在することを確認します。

エラー: "System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set..."

Windows Admin Centerを使用してワークロード クラスターを作成し、Arc 対応 Kubernetes に接続すると、次のエラーが発生する可能性があります。

System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set. User "azure-arc-onboarding" set. Context "azure-arc-onboarding" created. Switched to context "azure-arc-onboarding". Azure login az login: error: argument --password/-p: expected one argument usage: az login [-h] [--verbose] [--debug] [--only-show-errors] [--output {json,jsonc,yaml,yamlc,table,tsv,none}] [--query JMESPATH] [--username USERNAME] [--password PASSWORD] [--service-principal] [--tenant TENANT] [--allow-no-subscriptions] [-i] [--use-device-code] [--use-cert-sn-issuer] : Job Failed Condition]

この問題を解決するには、下のオプションを確認する必要があります。

  • オプション 1: ワークロード クラスターを削除し、Windows Admin Center を使用してもう一度やり直します。
  • オプション 2: PowerShell で、Get-AksHciCluster コマンドを実行して、クラスターが正常に作成されていることを確認します。次に、Enable-AksHciArcConnection を使用して、クラスターを Arc に接続します。

Connect-AzAccount を使用して Azure にサインインすると、Enable-AksHciArcConnection が失敗する

Connect-AzAccount を使用して Azure にサインインする場合、Set-AksHciRegistration への入力として指定したサブスクリプションとは異なるサブスクリプションを既定のコンテキストとして設定できます。 その後、Enable-AksHciArcConnection を実行すると、このコマンドでは Set-AksHciRegistration で指定したサブスクリプションが想定されます。 ところが、Enable-AksHciArcConnection には、Connect-AzAccount を使用して設定された既定のサブスクリプションが渡されるため、エラーが発生します。

このエラーを回避するために、下のいずれかのオプションに従ってください。

  • オプション 1: AKS ホストを課金のために Azure に接続するために Set-AksHciRegistration を最初に実行したときに使用したのと同じパラメーター (サブスクリプションとリソース グループ) を指定してこのコマンドを実行し、Azure にログインします。 これにより、Enable-AksHciArcConnection -Name <ClusterName> を既定値で使用でき、クラスターが AKS ホストの課金サブスクリプションとリソース グループの Arc に接続されます。

  • オプション 2: すべてのパラメーター (subscriptionresource grouplocationtenantsecret) を指定して Enable-AksHciArcRegistration を実行して、AKS ホストとは異なるサブスクリプションとリソース グループの Azure Arc にクラスターを接続します。 Azure アカウントを使用してクラスターを Azure Arc に接続するための十分なアクセス許可がない場合 (たとえば、サブスクリプションの所有者でない場合) は、Enable-AksHciArcRegistration も実行する必要があります。

エラー: 'Timed out waiting for the condition' (条件を待機中にタイムアウトしました)

このエラーは通常、次のいずれかの問題を示しています。

  • クラスターは、仮想化された環境の Azure VM に作成されたか、複数のレベルの仮想化に AKS on Azure Stack HCI をデプロイしていました。
  • インターネットが遅いとタイムアウトが発生しました。

上記のいずれかのシナリオが適用される場合は、 Disable-AksHciArcConnection を実行して、もう一度接続してみてください。 上記のシナリオが適用されない場合は、AKS on Azure Stack HCI の サポートの問題を開 いてください。

エラー: "シークレット "sh.helm.release.v1.azure-arc.v1" が見つかりません"

このエラーは、Kubernetes API サーバーに到達できなかったことを示します。

Disable-AksHciArcConnection コマンドを再実行して、Azure portal にアクセスし、connectedCluster リソースが実際に削除されていることを確認します。 また、kubectl get ns -A を実行して、名前空間 azure-arc がクラスターに存在しないことを確認することもできます。

エラー: '機能を有効にするためのエージェントの更新中にエラーが発生しました'

Azure Arc に接続されている AKS クラスターカスタムの場所とクラスター接続機能を有効にすると、次のエラーが表示されることがあります。

Error while updating agents for enabling features. Please run "kubectl get pods -n azure-arc" to check the pods in case of timeout error. Error: Error: UPGRADE FAILED: timed out waiting for the condition

これは 9 月のリリースの既知の問題であり、10 月のリリースで修正されています。 10 月のリリースを使用して作成され、 Enable-AksHciArcConnection を 使用して Arc に接続された新しい AKS クラスターでは、この問題は発生しません。 AKS Arc デプロイを 10 月のリリースに更新してから、この問題の回避策として既存のクラスターを Arc に再接続します。

エラー: 'Azure への接続に失敗しました。 'Set-AksHciRegistration' を実行して、もう一度試してください

このエラーは、Azure への資格情報の有効期限が切れていることを意味します。

Enable-AksHciArcConnection コマンドを再実行する前に、Set-AksHciRegistration を使用して Azure にログインしてください。 Set-AksHciRegistration の再実行時には、最初に AKS ホストを課金のために Azure に登録したときに使用したのと同じサブスクリプションとリソース グループの詳細情報を使用してください。 別のサブスクリプションまたはリソース グループを使用してこのコマンドを再実行すると、登録されません。 でサブスクリプションとリソース グループを設定 Set-AksHciRegistrationした後は、AKS Arc をアンインストールしないと変更できません。

エラー: ''My-Cluster' は有効なクラスター名ではありません。 名前は小文字で、正規表現パターン '^[a-z0-9][a-z0-9-]*[a-z0-9]$' と一致する必要があります。

このエラーは、ワークロード クラスターが Kubernetes の名前付け規則に従っていないことを示します。

エラーが示すように、クラスター名が小文字で、正規表現パターン '^[a-z0-9][a-z0-9-]*[a-z0-9]$' と一致していることを確認します。

エラー: 'addons.msft.microsoft "demo-arc-onboarding" は既に存在します"

このエラーは通常、AKS クラスターを Arc 対応 Kubernetes に既に接続していることを意味します。 接続されていることを確認するには、Azure portal にアクセスして、Set-AksHciRegistration (既定値を使用した場合) または Enable-AksHciArcConnection (既定値を使用しなかった場合) を実行したときに指定したサブスクリプションとリソース グループを確認します。 また、az connectedk8s show Azure CLI コマンドを実行して、AKS on Azure Stack HCI クラスターが Azure に接続されているかどうかを確認することもできます。 ワークロード クラスターが表示されない場合は、Disable-AksHciArcConnection を実行して、もう一度試してください。

エラー: 'autorest/azure: サービスからエラーが返されました。 Status=404 Code="ResourceNotFound"...'

下のエラーは、クラスターに関連付けられている connectedCluster ARM リソースが Azure で見つからなかったことを示します。

autorest/azure: Service returned an error. Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Kubernetes/connectedClusters/my-workload-cluster' under resource group 'AKS-HCI2' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix"]

このエラーは次の場合に発生することがあります。

  • Disable-AksHciArcConnection コマンドレットの実行時に正しくないリソース グループまたはサブスクリプションを指定した。
  • Azure portal でリソースを手動で削除した。
  • ARM で Azure リソースが見つからない。

エラー メッセージに示されているように、このエラーを解決するには、リソースが見つからないエラーの解決に関する記事を参照してください。

エラー: 'Cluster addons arc uninstall Error: namespaces "azure-arc" not found'

このエラーは通常、ワークロード クラスターから Arc エージェントが既にアンインストールされているか、kubectl コマンドを使用して azure-arc 名前空間が手動で削除されたことを意味します。

Azure portal にアクセスして、リソースのリークが発生していないことを確認します。 たとえば、サブスクリプションおよびリソース グループで connectedCluster リソースが表示されていないことを確認します。

エラー: 'Azure サブスクリプションが正しく構成されていません'

Arc 対応 Kubernetes リソース プロバイダーを使用して Azure サブスクリプションを構成していない場合は、この問題が発生する可能性があります。 現時点では、Microsoft.Kubernetes および Microsoft.KubernetesConfiguration が構成されていることが確認されます。

これらのリソース プロバイダーの有効化の詳細については、「 Arc 対応 Kubernetes のプロバイダーを登録する」を参照してください。