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ć polecenieaz 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.
Azure Kubernetes Service