Compartilhar via


Encerrar uma operação de execução prolongada em um cluster do AKS (Serviço de Kubernetes do Azure)

Às vezes, a implantação ou outros processos em execução em pods em nós em um cluster podem ser executados por períodos de tempo maiores do que o esperado devido a vários motivos. Você pode obter informações sobre o progresso de qualquer operação em andamento, como criar, atualizar e dimensionar, usando qualquer versão prévia da API depois de 2024-01-02-preview usando o seguinte comando az rest:

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

Esse comando fornece uma porcentagem que indica a proximidade da operação com a conclusão. Você pode usar esse método para obter essas informações para até 50 das operações mais recentes em seu cluster. O atributo "percentComplete" indica a extensão da conclusão da operação em andamento, conforme mostrado no exemplo a seguir:

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

Há também um comando cli equivalente ao acima que mostra o status da operação mais recente no cluster.

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

Confira o exemplo de saída abaixo:

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

Também é possível executar esse comando usando a ID de operação disponível na saída acima. O parâmetro Id denota a ID de operação a ser usada. Por exemplo:

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

Embora seja importante permitir que as operações terminem normalmente quando não são mais necessárias, há circunstâncias em que você precisa liberar o controle de pools de nós e de clusters com operações de execução prolongada usando um comando abort.

O suporte do AKS para anular operações de execução prolongada agora está em disponibilidade geral. Esse recurso permite que você retome o controle e execute outra operação com facilidade. Esse design é compatível com o uso da API REST do Azure ou da CLI do Azure.

A operação de anulação dá suporte aos seguintes cenários:

  • Se uma operação de execução prolongada estiver paralisada ou com suspeita de estar em um estado inválido ou de falhar, a operação poderá ser anulada, desde que seja a última operação em execução no cluster gerenciado ou no pool de agentes.
  • Se uma operação de execução prolongada estiver paralisada ou falhar, ela poderá ser anulada.
  • Uma operação disparada por engano pode ser anulada desde que não chegue primeiro a um estado terminal.

Antes de começar

  • A CLI do Azure, versão 2.47.0 ou posterior. Execute az --version para localizar a versão e az upgrade para atualizar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Anular uma operação de execução prolongada

Você pode usar o comando az aks nodepool com o argumento operation-abort para anular uma operação em um pool de nós ou em um cluster gerenciado.

O exemplo a seguir encerra uma operação em um pool de nós em um cluster especificado.

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

O exemplo a seguir encerra uma operação em um cluster especificado.

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

Na resposta, um código de status HTTP 204 é retornado.

O estado de provisionamento no cluster gerenciado ou no pool de agentes deve ser Cancelado. Use a API REST Obter Clusters Gerenciados ou Obter Pools de Agentes para verificar a operação. O estado de provisionamento deve ser atualizado para Cancelado alguns segundos depois que a solicitação de anulação for aceita. O status da operação da ID da última operação em execução no cluster gerenciado/pool de agentes, que pode ser recuperado através da execução de uma operação GET no cluster gerenciado ou no pool de agentes, deve mostrar um status de Cancelamento.

Quando você encerra uma operação, ela não reverte para o estado anterior e para em qualquer etapa da operação que esteja em processo. Uma vez concluído, o estado de provisionamento do cluster mostra um estado Cancelado. Se a operação for uma atualização de cluster, durante uma operação de cancelamento, ela será interrompida onde estiver.

Próximas etapas

Saiba mais sobre os Insights de contêiner para entender como esse recurso ajuda a monitorar o desempenho e a integridade das cargas de trabalho de cluster e de contêiner do Kubernetes.