Avsluta en tidskrävande åtgärd i ett AKS-kluster (Azure Kubernetes Service)
Ibland kan distribution eller andra processer som körs i poddar på noder i ett kluster köras längre än förväntat på grund av olika orsaker. Du kan få insikt i förloppet för alla pågående åtgärder, till exempel skapa, uppgradera och skala, med hjälp av valfri förhandsversion av API:et efter 2024-01-02-preview
att ha använt följande az rest-kommando:
export ResourceID="<cluster-resource-id>"
az rest --method get --url "https://management.azure.com$ResourceID/operations/latest?api-version=2024-01-02-preview"
Det här kommandot ger dig en procentandel som anger hur nära åtgärden är att slutföra. Du kan använda den här metoden för att hämta dessa insikter för upp till 50 av de senaste åtgärderna i klustret. Attributet "percentComplete" anger omfattningen av slutförandet för den pågående åtgärden, enligt följande exempel:
"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"
Det finns också ett cli-kommando som motsvarar ovanstående som visar statusen för den senaste åtgärden i klustret.
az aks operation show-latest \
--resource-group myResourceGroup \
--name myCluster
Följande utgör ett utdata-exempel:
{
"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"
}
Du kan också köra det här kommandot med hjälp av åtgärds-ID:t som är tillgängligt från ovanstående utdata. Parametern Id
anger det åtgärds-ID som ska användas. Till exempel:
az aks operation show \
--resource-group myResourceGroup \
--name myCluster \
--operation-id "<operation-id>"
Även om det är viktigt att tillåta att åtgärder avslutas korrekt när de inte längre behövs, finns det omständigheter där du behöver frigöra kontroll över nodpooler och kluster med tidskrävande åtgärder med hjälp av ett avbrutet kommando.
AKS-stöd för att avbryta långvariga åtgärder är nu allmänt tillgängligt. Med den här funktionen kan du ta tillbaka kontrollen och köra en annan åtgärd sömlöst. Den här designen stöds med hjälp av Azure REST API eller Azure CLI.
Åtgärden avbryt stöder följande scenarier:
- Om en tidskrävande åtgärd har fastnat eller misstänks vara i ett felaktigt tillstånd eller misslyckas kan åtgärden avbrytas förutsatt att det är den sista åtgärden som körs i det hanterade klustret eller agentpoolen.
- Om en tidskrävande åtgärd har fastnat eller misslyckas kan den åtgärden avbrytas.
- En åtgärd som utlöstes i fel kan avbrytas så länge åtgärden inte når ett terminaltillstånd först.
Innan du börjar
- Azure CLI version 2.47.0 eller senare. Kör
az --version
för att hitta versionen och köraz upgrade
för att uppgradera versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Avbryta en tidskrävande åtgärd
Du kan använda kommandot az aks nodepool med operation-abort
argumentet för att avbryta en åtgärd i en nodpool eller ett hanterat kluster.
I följande exempel avslutas en åtgärd i en nodpool i ett angivet kluster.
az aks nodepool operation-abort \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool
I följande exempel avslutas en åtgärd i ett angivet kluster.
az aks operation-abort \
--name myAKSCluster \
--resource-group myResourceGroup
I svaret returneras en HTTP-statuskod på 204.
Etableringstillståndet för det hanterade klustret eller agentpoolen bör avbrytas. Använd REST-API :et Hämta hanterade kluster eller Hämta agentpooler för att verifiera åtgärden. Etableringstillståndet bör uppdateras till Avbryts inom några sekunder efter att avbruten begäran har godkänts. Åtgärdsstatusen för åtgärds-ID som senast kördes i det hanterade klustret/agentpoolen, som kan hämtas genom att utföra en GET-åtgärd mot det hanterade klustret eller agentpoolen, bör visa statusen Avbryt.
När du avslutar en åtgärd återställs den inte till föregående tillstånd och stoppas vid vilket steg som helst i åtgärden. När det är klart visar klustrets etableringstillstånd ett avbrutet tillstånd. Om åtgärden råkar vara en klusteruppgradering stoppas den där den befinner sig under en avbruten åtgärd.
Nästa steg
Läs mer om containerinsikter för att förstå hur det hjälper dig att övervaka prestanda och hälsa för dina Kubernetes-kluster och containerarbetsbelastningar.
Azure Kubernetes Service