Terminare un'operazione a esecuzione prolungata in un cluster del servizio Azure Kubernetes
A volte la distribuzione o altri processi in esecuzione all'interno di pod nei nodi di un cluster possono essere eseguiti per periodi di tempo più lunghi del previsto a causa di vari motivi. È possibile ottenere informazioni dettagliate sullo stato di avanzamento di qualsiasi operazione in corso, ad esempio creare, aggiornare e ridimensionare, usando qualsiasi versione dell'API di anteprima dopo 2024-01-02-preview
aver usato il comando az rest seguente:
export ResourceID="<cluster-resource-id>"
az rest --method get --url "https://management.azure.com$ResourceID/operations/latest?api-version=2024-01-02-preview"
Questo comando fornisce una percentuale che indica quanto l'operazione sia vicina al completamento. È possibile usare questo metodo per ottenere queste informazioni dettagliate per un massimo di 50 delle operazioni più recenti nel cluster. L'attributo "percentComplete" indica l'estensione del completamento per l'operazione in corso, come illustrato nell'esempio seguente:
"id": "/subscriptions/<subscription-id>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/contoso/operations/<operation-id>",
"name": "<operation-id>",
"percentComplete": 10,
"startTime": "2024-04-08T18:21:31Z",
"status": "InProgress"
Esiste anche un comando dell'interfaccia della riga di comando equivalente per quanto sopra indicato che mostra lo stato dell'operazione più recente nel cluster.
az aks operation show-latest \
--resource-group myResourceGroup \
--name myCluster
Di seguito è riportato un esempio di output:
{
"endTime": null,
"error": null,
"id": "/subscriptions/<subscription-id>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/contoso/operations/<operation-id>",
"name": "<operation-id>",
"operations": null,
"percentComplete": 1.0,
"resourceGroup": "myResourceGroup",
"resourceId": null,
"startTime": "2024-06-12T18:16:21+00:00",
"status": "InProgress"
}
È anche possibile eseguire questo comando usando l'ID operazione disponibile nell'output precedente. Il parametro Id
indica l'ID operazione da usare. Ad esempio:
az aks operation show \
--resource-group myResourceGroup \
--name myCluster \
--operation-id "<operation-id>"
Sebbene sia è importante consentire a tali processi di terminare normalmente quando non sono più necessari, in alcune circostanze è necessario rilasciare il controllo dei pool di nodi e dei cluster con operazioni a esecuzione prolungata usando un comando di interruzione.
Il supporto del servizio Azure Kubernetes per l'interruzione delle operazioni a esecuzione prolungata è ora disponibile a livello generale. Questa funzionalità consente di riprendere il controllo ed eseguire un'altra operazione senza problemi. Questa progettazione è supportata usando l'API REST di Azure o l'interfaccia della riga di comando di Azure.
L'operazione di interruzione supporta gli scenari seguenti:
- Se un'operazione a esecuzione prolungata è bloccata o si sospetta che si verifichi uno stato non valido o che non riesca, l'operazione può essere interrotta a condizione che sia l'ultima operazione in esecuzione nel cluster gestito o nel pool di agenti.
- Se un'operazione a esecuzione prolungata è bloccata o ha esito negativo, tale operazione può essere interrotta.
- Un'operazione attivata in caso di errore può essere interrotta purché l'operazione non raggiunga prima uno stato terminale.
Operazioni preliminari
- Versione dell'interfaccia della riga di comando di Azure 2.47.0 o successiva. Eseguire
az --version
per trovare la versione ed eseguireaz upgrade
per aggiornare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Interrompere un'operazione a esecuzione prolungata
È possibile usare il comando az aks nodepool con l'argomento operation-abort
per interrompere un'operazione in un pool di nodi o in un cluster gestito.
Nell'esempio seguente viene terminata un'operazione in un pool di nodi in un cluster specificato.
az aks nodepool operation-abort \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool
Nell'esempio seguente viene terminata un'operazione in un cluster specificato.
az aks operation-abort \
--name myAKSCluster \
--resource-group myResourceGroup
Nella risposta viene restituito un codice di stato HTTP 204.
Lo stato di provisioning nel cluster gestito o nel pool di agenti deve essere Annullato. Usare l'API REST Ottenere cluster gestiti o ottenere pool di agenti per verificare l'operazione. Lo stato di provisioning deve essere aggiornato a Cancellato entro pochi secondi dalla richiesta di interruzione accettata. Lo stato dell'operazione dell'ultimo ID operazione in esecuzione nel pool di cluster/agenti gestito, che può essere recuperato eseguendo un'operazione GET sul cluster gestito o sul pool di agenti, deve mostrare lo stato di Cancellazione.
Quando si termina un'operazione, non viene eseguito il rollback allo stato precedente e si arresta in qualsiasi passaggio dell'operazione in-process. Al termine, lo stato di provisioning del cluster mostra uno stato Cancellato. Se l'operazione si verifica come un aggiornamento del cluster, durante un'operazione di annullamento si arresta dove si trova.
Passaggi successivi
Altre informazioni su Informazioni dettagliate sui contenitori per comprendere in che modo consente di monitorare le prestazioni e l'integrità dei carichi di lavoro del cluster e dei contenitori Kubernetes.
Azure Kubernetes Service