次の方法で共有


Azure Kubernetes Service (AKS) クラスターで実行時間の長い操作を終了する

クラスター内のノードのポッド内で実行されるデプロイまたはその他のプロセスは、さまざまな理由により、予想よりも長い時間実行される場合があります。 2024-01-02-preview が次の az rest コマンドを使用した後は、プレビュー 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 のインストールに関するページを参照してください。

実行時間の長い操作を中止する

az aks nodepool コマンドを operation-abort 引数と共に使用して、ノード プールまたはマネージド クラスターでの操作を中止できます。

次の例では、指定されたクラスターのノード プールに対する操作を終了します。

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 の Get Managed Clusters または Get Agent Pools を使用して、操作を確認します。 プロビジョニングの状態は、中止要求が受け入れられる数秒以内にキャンセル済みに更新されます。 マネージド クラスター/エージェント プールで最後に実行された操作 ID の操作状態は、マネージド クラスターまたはエージェント プールに対して GET 操作を実行すると取得できます。状態はキャンセル中と表示されます。

操作を終了すると、以前の状態にロールバックせず、進行中の操作のあらゆるステップで停止します。 完了すると、クラスターのプロビジョニング状態に [Canceled] (キャンセル済み) 状態が表示されます。 操作がクラスターのアップグレードである場合は、キャンセル操作中に現在の状態で停止します。

次のステップ

お使いの Kubernetes クラスターやコンテナー ワークロードのパフォーマンスと正常性を把握するために、Container insights の詳細をご覧ください。