Condividi tramite


Risolvere gli errori "az aks command invoke"

Questo articolo descrive come risolvere gli errori az aks command invoke nell'interfaccia della riga di comando di Microsoft Azure in modo che sia possibile connettersi correttamente a qualsiasi cluster servizio Azure Kubernetes (servizio Azure Kubernetes), in particolare a un cluster del servizio Azure Kubernetes privato.

Altri metodi di connessione devono usare componenti di configurazione aggiuntivi, come illustrato nella tabella seguente.

Metodi di connessione Componente di configurazione aggiuntivo
Rete virtuale Rete privata virtuale (VPN)
Rete con peering Azure ExpressRoute
Endpoint privato Jumpbox

Il az aks command invoke comando dell'interfaccia della riga di comando di Azure è un modo alternativo per connettersi a un cluster che non richiede componenti di configurazione aggiuntivi.

Quando si esegue il comando, l'interfaccia della az aks command invoke riga di comando di Azure crea automaticamente un command-<ID> pod nello aks-command spazio dei nomi per accedere al cluster del servizio Azure Kubernetes e recuperare le informazioni necessarie.

Prerequisiti

Sintomi

Nella tabella seguente sono elencati i messaggi di errore comuni az aks command invoke . Ogni messaggio di errore include un collegamento alla sezione che descrive il motivo per cui si verifica l'errore e come risolverlo.

Messaggio di errore Collegamento
L'operazione ha restituito uno stato non valido 'Non trovato' Causa 1: il pod non può essere creato a causa di vincoli di nodo o risorsa
Impossibile eseguire il comando nel cluster gestito a causa di un errore di kubernetes. details: il webhook di ammissione "validation.gatekeeper.sh" ha negato la richiesta: <policy-specific-message> Causa 2: Criteri di Azure non consente la creazione del pod
Errore dal server (non consentito): gli spazi dei nomi non sono consentiti: l'utente "<ID>" non può elencare la risorsa "<risorsa>" nel gruppo DI API "" nell'ambito del cluster Causa 3: i ruoli obbligatori non vengono concessi
Impossibile connettersi all'identità del servizio gestito. Assicurarsi che l'identità del servizio gestito sia configurata correttamente.

Ottenere la richiesta token restituita: risposta [400];
Causa 4: Si è verificato un problema di Cloud Shell

Causa 1: il pod non può essere creato a causa di vincoli di nodo o risorsa

L'operazione restituisce uno Not Found stato perché il command-<ID> pod non riesce a raggiungere uno stato corretto, ad Runningesempio . In molti casi, il pod rimane nello Pending stato . In questo caso, i nodi non sono in grado di pianificare il pod. Questo scenario può avere cause diverse, ad esempio le cause seguenti:

  • Vincoli di risorsa
  • Nodi con NotReady stato o SchedulingDisabled
  • Nodi con taints che il pod non può tollerare
  • Altre cause

Soluzione 1: modificare la configurazione in modo che sia possibile pianificare ed eseguire il pod

Assicurarsi che il command-<ID> pod possa essere pianificato ed eseguito.

Causa 2: Criteri di Azure non consente la creazione del pod

Se sono presenti criteri di Azure specifici, il az aks command invoke comando può avere esito negativo a causa di una configurazione non consentita nel command-<ID> pod. Ad esempio, è possibile che siano presenti criteri di Azure che richiedono un file system radice di sola lettura o un'altra configurazione specifica.

Soluzione 2: Escludere lo spazio dei nomi per i criteri che impediscono la creazione di pod

È consigliabile esentare lo aks-command spazio dei nomi per i criteri di Azure associati che non consentono la creazione del pod. Per altre informazioni sull'esenzione, vedere Informazioni sull'ambito in Criteri di Azure

Per esentare un Criteri di Azure:

  1. Nel portale di Azure cercare e selezionare Criteri.

  2. Nel riquadro di spostamento Criteri individuare la sezione Creazione e quindi selezionare Assegnazioni.

  3. Nella tabella delle assegnazioni trovare la riga che contiene il nome dell'assegnazione che si desidera modificare e quindi selezionare il nome dell'assegnazione.

  4. Nella pagina di assegnazione dei criteri per l'assegnazione selezionare Modifica assegnazione.

  5. Selezionare la scheda Parametri .

  6. Deselezionare l'opzione Mostra solo i parametri che richiedono input o revisione .

  7. Nella casella Esclusioni dello spazio dei nomi aggiungere lo spazio dei nomi aks-command all'elenco di spazi dei nomi da escludere.

In alternativa, se il criterio non è un criterio predefinito, è possibile controllare la configurazione del command-<ID> pod e modificare i criteri in base alle esigenze. Per esplorare la configurazione YAML del pod, eseguire il comando seguente:

kubectl get pods command-<ID> --namespace aks-command --output yaml

Causa 3: i ruoli obbligatori non vengono concessi

Per usare il az aks command invoke comando , è necessario avere accesso ai ruoli seguenti nel cluster:

  • Microsoft.ContainerService/managedClusters/runCommand/action
  • Microsoft.ContainerService/managedClusters/commandResults/read

Se non si dispone di questi ruoli, il az aks command invoke comando non può recuperare le informazioni necessarie.

Soluzione 3: Aggiungere i ruoli necessari

Aggiungere i Microsoft.ContainerService/managedClusters/runCommand/action ruoli e Microsoft.ContainerService/managedClusters/commandResults/read .

Causa 4: Si è verificato un problema di Cloud Shell

Il az aks command invoke comando non viene elaborato come previsto quando viene eseguito direttamente nell'ambiente azure Cloud Shell. Si tratta di un problema noto in Cloud Shell.

Soluzione 4a: eseguire prima il comando az login

In Cloud Shell eseguire il comando az login prima di eseguire az aks command invoke.

Soluzione 4b: eseguire il comando in un computer locale o in una macchina virtuale

Eseguire il az aks command invoke comando in un computer locale o in qualsiasi macchina virtuale (VM) in cui è installata l'interfaccia della riga di comando di Azure.

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.