다음을 통해 공유


AKS(Azure Kubernetes Service) 클러스터에서 장기 실행 작업 종료

경우에 따라 클러스터에 있는 노드의 Pod 내에서 실행되는 배포 또는 기타 프로세스가 다양한 이유로 인해 예상보다 오래 실행될 수 있습니다. 다음 az rest 명령을 사용하면 2024-01-02-preview 이후의 미리 보기 API 버전을 사용하여 만들기, 업그레이드 및 크기 조정과 같은 진행 중인 작업의 진행률에 대한 인사이트를 가져올 수 있습니다.

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

이 명령은 작업이 완료되기까지 얼마나 남았는지 나타내는 백분율을 제공합니다. 이 방법을 사용하면 클러스터의 최신 작업 중 최대 50개에 대한 인사이트를 가져올 수 있습니다. "percentComplete" 특성은 다음 예와 같이 진행 중인 작업의 완료 정도를 나타냅니다.

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

또한 클러스터의 가장 최근 작업 상태를 보여 주는 위와 동등한 CLI 명령이 있습니다.

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

다음은 출력 예제입니다.

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

위의 출력에서 사용할 수 있는 작업 ID를 사용하여 이 명령을 실행할 수도 있습니다. Id 매개 변수는 사용할 작업 ID를 나타냅니다. 예시:

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

이러한 작업이 더 이상 필요 없을 때 정상적으로 종료되도록 허용하는 것이 중요하지만 abort 명령을 사용하여 장기 실행 작업이 있는 노드 풀 및 클러스터의 제어권을 해제해야 하는 경우가 있습니다.

이제 장기 실행 작업을 중단하기 위한 AKS 지원이 일반 공급됩니다. 이 기능을 사용하면 제어권을 되돌리고 다른 작업을 원활하게 실행할 수 있습니다. 이 디자인은 Azure REST API 또는 Azure CLI를 사용하여 지원됩니다.

중단 작업은 다음 시나리오를 지원합니다.

  • 장기 실행 작업이 중단되었거나 잘못된 상태 또는 실패한 것으로 의심되는 경우 관리형 클러스터 또는 에이전트 풀에서 마지막으로 실행 중인 작업이면 작업을 중단할 수 있습니다.
  • 장기 실행 작업이 중단되거나 실패하는 경우 해당 작업을 중단할 수 있습니다.
  • 작업이 아직 터미널 상태에 도달하지 않은 한, 오류가 트리거된 작업을 중단할 수 있습니다.

시작하기 전에

  • Azure CLI 버전, 2.47.0 이상. az --version을 실행하여 버전을 찾고 az upgrade를 실행하여 버전을 업그레이드합니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.

장기 실행 작업 중단

operation-abort 인수와 함께 az aks nodepool 명령을 사용하여 노드 풀 또는 관리형 클러스터에서 작업을 중단할 수 있습니다.

다음 예제에서는 지정된 클러스터의 노드 풀에 대한 작업을 종료합니다.

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

다음 예제에서는 지정된 클러스터에서 작업을 종료합니다.

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

응답에서 HTTP 상태 코드 204가 반환됩니다.

관리형 클러스터 또는 에이전트 풀의 프로비전 상태가 취소됨이어야 합니다. REST API 관리형 클러스터 가져오기 또는 에이전트 풀 가져오기를 사용하여 작업을 확인합니다. 중단 요청이 수락된 후 몇 초 이내에 프로비전 상태가 취소됨으로 업데이트되어야 합니다. 관리형 클러스터/에이전트 풀에서 마지막으로 실행 중인 작업 ID의 작업 상태가 취소로 표시되어야 합니다. 이 작업 상태는 관리형 클러스터 또는 에이전트 풀에 대해 GET 작업을 수행하여 검색할 수 있습니다.

작업을 종료하는 경우 작업은 이전 상태로 롤백되지 않으며 작업이 진행 중인 모든 단계에서 중지됩니다. 완료되면 클러스터 프로비전 상태에 취소됨 상태가 표시됩니다. 클러스터 업그레이드 작업은 취소 작업 중에 현재 위치에서 중지됩니다.

다음 단계

컨테이너 인사이트에 대해 자세히 알아보고 Kubernetes 클러스터 및 컨테이너 워크로드의 성능 및 상태를 모니터링하는 데 어떤 도움을 주는지 알아봅니다.