Udostępnij za pośrednictwem


Kończenie długotrwałej operacji w klastrze usługi Azure Kubernetes Service (AKS)

Czasami wdrożenie lub inne procesy uruchomione w zasobnikach w węzłach w klastrze mogą być uruchamiane przez okres dłuższy niż oczekiwano z różnych powodów. Możesz uzyskać wgląd w postęp dowolnego trwającego działania, takiego jak tworzenie, uaktualnianie i skalowanie, przy użyciu dowolnej wersji zapoznawczej wersji interfejsu API po 2024-01-02-preview użyciu następującego polecenia 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"

To polecenie zapewnia procent, który wskazuje, jak blisko operacji jest ukończenie. Tej metody można użyć, aby uzyskać te szczegółowe informacje dla maksymalnie 50 najnowszych operacji w klastrze. Atrybut "percentComplete" określa zakres ukończenia trwającej operacji, jak pokazano w poniższym przykładzie:

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

Istnieje również odpowiednik polecenia interfejsu wiersza polecenia powyżej, który pokazuje stan ostatniej operacji w klastrze.

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

Poniżej przedstawiono przykład:

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

Możesz również uruchomić to polecenie przy użyciu identyfikatora operacji dostępnego z powyższych danych wyjściowych. Parametr Id określa identyfikator operacji do użycia. Na przykład:

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

Chociaż ważne jest, aby umożliwić operacjom bezpieczne zakończenie, gdy nie są już potrzebne, istnieją okoliczności, w których należy zwolnić kontrolę nad pulami węzłów i klastrami z długotrwałymi operacjami przy użyciu polecenia przerwania .

Obsługa usługi AKS w przypadku przerywania długotrwałych operacji jest teraz ogólnie dostępna. Ta funkcja umożliwia bezproblemowe przejmowanie kontroli i uruchamianie kolejnej operacji. Ten projekt jest obsługiwany przy użyciu interfejsu API REST platformy Azure lub interfejsu wiersza polecenia platformy Azure.

Operacja przerwania obsługuje następujące scenariusze:

  • Jeśli długotrwała operacja jest zablokowana lub podejrzewana, że jest w złym stanie lub kończy się niepowodzeniem, operacja może zostać przerwana, pod warunkiem, że jest to ostatnia uruchomiona operacja w klastrze zarządzanym lub puli agentów.
  • Jeśli długotrwała operacja jest zablokowana lub kończy się niepowodzeniem, można przerwać tę operację.
  • Operacja, która została wyzwolona w błędzie, może zostać przerwana, o ile operacja nie osiągnie najpierw stanu terminalu.

Zanim rozpoczniesz

  • Interfejs wiersza polecenia platformy Azure w wersji 2.47.0 lub nowszej. Uruchom polecenie az --version , aby znaleźć wersję i uruchomić polecenie az upgrade , aby uaktualnić wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Przerywanie długotrwałej operacji

Możesz użyć polecenia az aks nodepool z argumentem operation-abort , aby przerwać operację w puli węzłów lub klastrze zarządzanym.

Poniższy przykład kończy operację w puli węzłów w określonym klastrze.

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

Poniższy przykład kończy operację w określonym klastrze.

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

W odpowiedzi zostanie zwrócony kod stanu HTTP 204.

Stan aprowizacji w zarządzanym klastrze lub puli agentów powinien być anulowany. Użyj interfejsu API REST Pobierz zarządzane klastry lub Pobierz pule agentów, aby zweryfikować operację. Stan aprowizacji powinien zostać zaktualizowany do anulowanego w ciągu kilku sekund od zaakceptowania żądania przerwania. Stan operacji ostatniego uruchomionego identyfikatora operacji w zarządzanym klastrze/puli agentów, który można pobrać, wykonując operację GET względem zarządzanego klastra lub puli agentów, powinien zawierać stan Anulowanie.

Po zakończeniu operacji nie jest ona przywracana do poprzedniego stanu i zatrzymuje się w każdym kroku operacji. Po zakończeniu stan aprowizacji klastra ma stan Anulowano . Jeśli operacja ma być uaktualnieniem klastra, podczas operacji anulowania zatrzymuje się tam, gdzie jest.

Następne kroki

Dowiedz się więcej o usłudze Container Insights , aby dowiedzieć się, jak pomaga monitorować wydajność i kondycję klastra Kubernetes i obciążeń kontenerów.