Partager via


Terminer une opération durable sur un cluster AKS (Azure Kubernetes Service)

Le déploiement ou d’autres processus s’exécutant dans des pods sur des nœuds d’un cluster peuvent durer plus longtemps que prévu pour différentes raisons. Vous pouvez obtenir des informations sur la progression de n’importe quelle opération en cours, telle que la création, la mise à niveau et la mise à l’échelle, à l’aide de n’importe quelle version de l’API en préversion après 2024-01-02-preview à l’aide de la commande az rest suivante :

export ResourceID="<cluster-resource-id>"
az rest --method get --url "https://management.azure.com$ResourceID/operations/latest?api-version=2024-01-02-preview"

Cette commande vous fournit un pourcentage qui indique la fermeture de l’opération. Vous pouvez utiliser cette méthode pour obtenir ces informations jusqu’à 50 des dernières opérations sur votre cluster. L’attribut « percentComplete » indique l’étendue de l’achèvement de l’opération en cours, comme illustré dans l’exemple suivant :

"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"

Il existe également une commande cli équivalente à la précédente, qui indique l'état de l'opération la plus récente dans le cluster.

az aks operation show-latest \
    --resource-group myResourceGroup \
    --name myCluster

Voici un exemple de sortie :

{
  "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"
}

Vous pouvez également exécuter cette commande en utilisant l’identifiant de l’opération disponible dans la sortie ci-dessus. Le paramètre Id indique l’identifiant d’opération à utiliser. Par exemple :

az aks operation show \
    --resource-group myResourceGroup \
    --name myCluster \
    --operation-id "<operation-id>"

Il est important de permettre aux opérations de se terminer correctement quand elles ne sont plus nécessaires. Toutefois, dans certaines circonstances, vous devez libérer le contrôle des pools de nœuds et des clusters avec des opérations durables à l’aide d’une commande Abandonner.

La prise en charge par AKS de l’abandon des opérations de longue durée est désormais en disponibilité générale. Cette fonctionnalité vous permet de reprendre le contrôle et d’exécuter une autre opération en toute transparence. Cette conception est prise en charge à l’aide de l’API REST Azure ou de l’interface Azure CLI.

L’opération d’abandon prend en charge les scénarios suivants :

  • Si une opération durable est bloquée ou si vous soupçonnez un échec ou un état incorrect, l’opération peut être abandonnée à condition qu’elle soit la dernière opération en cours d’exécution sur le pool d’agents ou le cluster managé.
  • Si une opération durable est bloquée ou échoue, cette opération peut être abandonnée.
  • Une opération déclenchée par erreur peut être abandonnée si l’opération n’atteint pas un état terminal d’abord.

Avant de commencer

  • Azure CLI version 2.47.0 ou ultérieure. Exécutez az --version pour rechercher la version, puis exécutez az upgrade pour mettre à niveau la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Abandonner une opération durable

Vous pouvez utiliser la commande az aks nodepool avec l’argument operation-abort pour abandonner une opération sur un pool de nœuds ou un cluster managé.

L’exemple suivant termine une opération sur un pool de nœuds dans un cluster spécifié.

az aks nodepool operation-abort \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myNodePool 

L’exemple suivant termine une opération dans un cluster spécifié.

az aks operation-abort \
    --name myAKSCluster \
    --resource-group myResourceGroup

Dans la réponse, un code d’état HTTP de 204 est retourné.

L’état d’approvisionnement sur le cluster managé ou le pool d’agents doit être Annulé. Utilisez l’API REST Obtenir des clusters managés ou Obtenir des pools d’agents pour vérifier l’opération. L’état d’approvisionnement doit être mis à jour et passer à Annulé dans les secondes suivant l’acceptation de la demande d’abandon. L’état de l’opération du dernier ID d’opération en cours d’exécution sur le cluster managé/pool d’agents, qui peut être récupéré via une opération GET sur le cluster managé ou le pool d’agents, doit afficher l’état Annulation en cours.

Lorsque vous terminez une opération, il n’y a pas de restauration à l’état précédent et d’arrêt à n’importe quelle étape de l’opération qui était en cours. Une fois l’opération terminée, l’approvisionnement du cluster affiche un état Annulé. Si cette opération est une mise à niveau du cluster, elle s’arrête au moment de l’annulation de l’opération.

Étapes suivantes

En savoir plus sur Container Insights pour comprendre comment ce service permet de superviser les performances et l’intégrité de votre cluster Kubernetes et de vos charges de travail de conteneur.