概要
この記事では、Microsoft Azure Kubernetes Fleet Manager で更新実行 API を使用してリソースを伝達するときに発生する ClusterStagedUpdateRun および StagedUpdateRun 初期化エラーのトラブルシューティング方法について説明します。
エラー メッセージの例を次に示します。
Last Transition Time: 2026-02-11T00:35:09Z
Message: cannot continue the updateRun: failed to validate the updateRun: failed to process the request due to a client error: no resourceSnapshots with index `1` found for placement `/example-placement`
Observed Generation: 1
Reason: UpdateRunInitializedFailed
Status: False
Type: Initialized
初期化エラーを調査する
- 次のコマンドを実行して、
ClusterStagedUpdateRun初期化エラーを見つけます。
$ kubectl get clusterstagedupdaterun example-run
NAME PLACEMENT RESOURCE-SNAPSHOT-INDEX POLICY-SNAPSHOT-INDEX INITIALIZED PROGRESSING SUCCEEDED AGE
example-run example-placement 1 0 False 2s
INITIALIZED フィールドの値はFalse。 この値は、初期化に失敗したことを示します。
- エラーの詳細については、次のコマンドを実行します。
$ kubectl describe clusterstagedupdaterun example-run
Name: example-run
..
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: ClusterStagedUpdateRun
Metadata:
Creation Timestamp: 2026-02-11T21:05:17Z
Finalizers:
kubernetes-fleet.io/clusterstagedupdaterun-finalizer
Generation: 1
...
Spec:
Placement Name: example-placement
Resource Snapshot Index: 0
Staged Rollout Strategy Name: example-strategy
State: Initialize
Status:
Applied Strategy:
Comparison Option: PartialComparison
Type: ClientSideApply
When To Apply: Always
When To Take Over: Always
Conditions:
Last Transition Time: 2026-02-11T21:05:17Z
Message: cannot continue the updateRun: failed to validate the updateRun: failed to process the request due to a client error: some clusters are not placed in any stage, total 3, showing up to 10: cluster-1, cluster-2, cluster-3
Observed Generation: 1
Reason: UpdateRunInitializedFailed
Status: False
Type: Initialized
Policy Observed Cluster Count: 3
Policy Snapshot Index Used: 0
Staged Update Strategy Snapshot:
Stages:
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Environment: staging
Max Concurrency: 1
Name: staging
Stages Status:
After Stage Task Status:
Approval Request Name: example-run-after-staging
Type: Approval
Clusters:
Stage Name: staging
この状態値は、初期化に失敗したことを示します。 この場合、存在しないリソース スナップショット インデックス 1 が ClusterStagedUpdateRunに使用されます。
一般的な初期化エラー
原因
初期化エラーが原因で、メッセージ ClusterStagedUpdateRun "Aborted" が生成されます。 初期化プロセスは回復できません。
解決策
検証エラーが原因でエラーが発生した場合は、問題を修正し、新しい ClusterStagedUpdateRun インスタンスを作成します。
親の位置が見つかりません
原因
ClusterResourcePlacementは名前空間に存在しません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: parent placement not found
解決策
ClusterResourcePlacementで指定したのと同じ名前の新しいClusterStagedUpdateRunを作成します。 次に、新しいClusterStagedUpdateRunを参照する新しいClusterResourcePlacement インスタンスを作成します。 詳しくは、 クラスター・スコープ・リソースの配置を参照してください。
既に存在する有効なClusterStagedUpdateRunを参照する新しいClusterResourcePlacement インスタンスを作成することもできます。 次のコマンドを実行します。
kubectl get clusterresourceplacements
spec値を表示し、次のコマンドを実行してデプロイspec.Strategy.Type: External戦略を確認します。
$ kubectl describe clusterresourceplacement <cluster-resource-placement-name>
既存のClusterStagedUpdateRun値のいずれかを参照するClusterResourceplacementを作成する方法については、「リソース配置のクラスター順序を制御する」を参照してください。
選択した配置が外部ロールアウト戦略の種類ではありません
原因
ClusterResourcePlacementでは、明確な外部ロールアウト戦略は指定されません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: The placement does not have an external rollout strategy...
解決策
段階的な更新を有効にするには、ClusterResourcePlacementを使用してspec.Strategy.Type: External インスタンスを再作成し、新しいClusterStagedUpdateRunを作成してから、新しいClusterResourcePlacementを選択します。
注
ClusterResourcePlacement インスタンスを spec.Strategy.Type: RolloutStrategy から spec.Strategy.Type: External に変更できます。 この変更は許可されます。 ただし、その逆は許可されません。
ClusterResourcePlacement設定されているspec.Strategy.Type: External インスタンスも見つけることができます。 次に、 ClusterStagedUpdateRunを作成し、この ClusterResourcePlacementを指定できます。
戦略が見つかりません
原因
ClusterStagedUpdateStrategy が存在しません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: referenced updateStrategy not found: ...
解決策
ClusterStagedUpdateStrategyで指定したのと同じ名前でClusterStagedUpdateRun インスタンスを作成します。 次に、このClusterStagedUpdateRunを参照するClusterStagedUpdateStrategy インスタンスを作成します。
既に存在する有効なClusterStagedUpdateRunを参照するClusterStagedUpdateStrategy インスタンスを作成することもできます。
無効なステージ タスク
原因
ClusterStagedUpdateStrategyのステージ内で、beforeStageTaskまたはafterStageTaskのインスタンスが正しく定義されていません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: the before stage tasks are invalid, updateStrategy: ...
### Solution
For information about how to correctly update the `ClusterStagedUpdateStrategy`, see [Staged update strategy (preview)](/azure/kubernetes-fleet/concepts-rollout-strategy#staged-update-strategy-preview).
**Cluster appears more than one time**
### Cause
View the `ClusterStagedUpdateStrategy` instance:
```bash
$ kubectl describe clusterstagedupdatestrategy <cluster-staged-update-strategy-name>
Name: example-strategy
...
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: ClusterStagedUpdateStrategy
Metadata:
Creation Timestamp: 2026-02-11T21:01:41Z
Generation: 2
...
Spec:
Stages:
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Environment: staging
Max Concurrency: 1
Name: staging
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Region: west
Max Concurrency: 1
Name: west
ClusterStagedUpdateStrategyには、Environment: stagingとRegion: westの両方のラベルが選択されています。
次に、エラー メッセージで参照されている member-1 ラベルが複数のステージに表示されるように表示します。 次のコマンドを実行します。
$ kubectl get membercluster member-1 --show-labels
NAME JOINED AGE MEMBER-AGENT-LAST-SEEN NODE-COUNT AVAILABLE-CPU AVAILABLE-MEMORY LABELS
member-1 True 81m 16s 2 14750m 48308656Ki environment=staging,region=west
このクラスターでは、これら 2 つのステージで両方のラベルが使用されます。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: cluster `member-1` appears in more than one stage
解決策
いずれかのラベルを削除するか、 ClusterStagedUpdateStrategy でステージを更新して、個別のクラスター ラベルを選択します。 次に、新しい ClusterStagedUpdateRunを作成します。
一部のクラスターにステージが割り当てられない
原因
エラー メッセージには、ステージが割り当てられていないクラスター (最大 10 個) の一覧が表示されます。
ClusterResourcePlacementを調べて、対象となるクラスターを決定します。 この情報を取得するには、次のコマンドを実行します。
$ kubectl get clusterresourceplacement <cluster-resource-placement-name>
Name: example-placement
...
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: ClusterResourcePlacement
Metadata:
Creation Timestamp: 2026-02-11T21:02:36Z
Finalizers:
kubernetes-fleet.io/crp-cleanup
kubernetes-fleet.io/scheduler-cleanup
Generation: 1
Resource Version: 11468
UID: d268e4c0-b614-408c-bdc0-b2670194587b
Spec:
Policy:
Placement Type: PickAll
Resource Selectors:
Group: ""
Kind: Namespace
Name: test
Selection Scope: NamespaceWithResources
Version: v1
Revision History Limit: 10
Status Reporting Scope: ClusterScopeOnly
Strategy:
Type: External
Status:
Conditions:
Last Transition Time: 2026-02-11T21:02:37Z
Message: found all cluster needed as specified by the scheduling policy, found 3 cluster(s)
Observed Generation: 1
Reason: SchedulingPolicyFulfilled
Status: True
Type: ResourcePlacementScheduled
Last Transition Time: 2026-02-11T21:02:37Z
Message: Rollout is controlled by an external controller and no resource snapshot name is observed across clusters, probably rollout has not started yet
Observed Generation: 1
Reason: RolloutControlledByExternalController
Status: Unknown
Type: ResourcePlacementRolloutStarted
Placement Statuses:
Cluster Name: cluster-1
Conditions:
...
Cluster Name: cluster-2
Conditions:
...
Cluster Name: cluster-3
Conditions:
...
ClusterResourcePlacement は、リソースを割り当てるサブセット クラスター (またはフリート内のすべてのクラスター) をターゲットにします。
ClusterResourcePlacementでは、配置の種類はPickAll。 この種類は、フリート内のすべてのクラスターをステージに割り当てる必要があることを意味します。 クラスターがステージに配置されていない場合、クラスターには、 ClusterStagedUpdateStrategyで指定されているステージのラベルがありません。
ClusterStagedUpdateStrategyを確認します。
$ kubectl describe clusterstagedupdatestrategy <cluster-staged-update-strategy-name>
Name: example-strategy
...
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: ClusterStagedUpdateStrategy
Metadata:
Creation Timestamp: 2026-02-11T21:01:41Z
Generation: 1
...
Spec:
Stages:
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Environment: staging
Max Concurrency: 1
Name: staging
[ Spec ] フィールドには、ラベルを持つクラスターを選択する 1 つのステージ ( Environment: staging) が表示されます。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: failed to process the request due to a client error: some clusters are not placed in any stage, total 3, showing up to 10: cluster-1, cluster-2, cluster-3
解決策
-
environment=stagingラベルを持つクラスターを更新します。
$ az fleet member update -g <resource-group-name> -f <fleet-name> -n <member-cluster-name> --labels "environment=staging"
- メンバー クラスターに新しいラベルがあることを確認します。
$ kubectl get membercluster <member-cluster-name> --show-labels
NAME JOINED AGE MEMBER-AGENT-LAST-SEEN NODE-COUNT AVAILABLE-CPU AVAILABLE-MEMORY LABELS
cluster-1 True 62m 3s 2 14750m 48308656Ki environment=staging,region=east
残りのクラスターにラベルを追加します。
同じ
ClusterStagedUpdateRunとClusterResourcePlacementのインスタンスを参照するClusterStagedUpdateStrategyインスタンスを作成します。
Last Transition Time: 2026-02-11T00:35:09Z
Message: cannot continue the updateRun: failed to validate the updateRun: failed to process the request due to a client error: no resourceSnapshots with index `1` found for placement `test-namespace/example-placement`
Observed Generation: 1
Reason: UpdateRunInitializedFailed
Status: False
Type: Initialized
初期化エラーを調査する
- 次のコマンドを実行して、
StagedUpdateRun初期化エラーを見つけます。
$ kubectl get stagedupdaterun web-app-rollout -n my-app-namespace
NAME PLACEMENT RESOURCE-SNAPSHOT-INDEX POLICY-SNAPSHOT-INDEX INITIALIZED PROGRESSING SUCCEEDED AGE
web-app-rollout web-app-placement 1 0 False 2s
INITIALIZED フィールドの値はFalse。 この値は、初期化に失敗したことを示します。
- エラーの詳細については、次のコマンドを実行します。
$ kubectl describe stagedupdaterun web-app-rollout -n my-app-namespace
Name: web-app-rollout
Namespace: my-app-namespace
..
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: StagedUpdateRun
Metadata:
Creation Timestamp: 2026-02-11T21:05:17Z
Finalizers:
kubernetes-fleet.io/stagedupdaterun-finalizer
Generation: 1
...
Spec:
Placement Name: web-app-rollout-placement
Resource Snapshot Index: 0
Staged Rollout Strategy Name: example-strategy
State: Initialize
Status:
Applied Strategy:
Comparison Option: PartialComparison
Type: ClientSideApply
When To Apply: Always
When To Take Over: Always
Conditions:
Last Transition Time: 2026-02-11T21:05:17Z
Message: cannot continue the updateRun: failed to validate the updateRun: failed to process the request due to a client error: some clusters are not placed in any stage, total 3, showing up to 10: cluster-1, cluster-2, cluster-3
Observed Generation: 1
Reason: UpdateRunInitializedFailed
Status: False
Type: Initialized
Policy Observed Cluster Count: 3
Policy Snapshot Index Used: 0
Staged Update Strategy Snapshot:
Stages:
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Environment: staging
Max Concurrency: 1
Name: staging
Stages Status:
After Stage Task Status:
Approval Request Name: web-app-rollout-after-staging
Type: Approval
Clusters:
Stage Name: staging
この条件は、初期化が失敗したことを示します。 この場合、 1 の存在しないリソース スナップショット インデックス値が StagedUpdateRunに使用されます。
一般的な初期化エラー
原因
"Aborted" StagedUpdateRun メッセージは、初期化失敗が原因で発生します。 初期化プロセスは回復できません。
解決策
検証エラーが原因でエラーが発生した場合は、問題を修正し、新しい StagedUpdateRunを作成します。
親の位置が見つかりません
原因
ResourcePlacement は名前空間に存在しません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: parent placement not found
解決策
ResourcePlacementで指定されたのと同じ名前空間にStagedUpdateRun インスタンスを作成します。 次に、そのStagedUpdateRunを参照するResourcePlacement インスタンスを作成します。
ResourcePlacement インスタンスを作成する方法については、「Azure Kubernetes Fleet Manager クラスター リソースの配置を使用して複数のクラスターにワークロードをデプロイする」を参照してください。
既に存在する有効な配置を参照する StagedUpdateRun インスタンスを作成するには:
- 次のコマンドを実行します。
$ kubectl get resourceplacements -n <namespace-name>
ResourcePlacement値を表示するためのSpec戦略について説明します。 戦略を確認し、値がspec.Strategy.Type: Externalされていることを確認します。戦略をロールアウトするリソースを設定します。
$ kubectl describe resourceplacement <cluster-resource-placement-name> -n <namespace-name>
詳細については、「 リソース配置のクラスター順序の制御」を参照してください。
選択した配置が外部ロールアウト戦略の種類ではありません
原因
ClusterResourcePlacementでは、明確な外部ロールアウト戦略は指定されません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: The placement does not have an external rollout strategy.
解決策
段階的な更新を有効にするには、ClusterResourcePlacement値を使用してspec.Strategy.Type: External インスタンスを再作成し、ClusterStagedUpdateRun インスタンスを作成してから、新しいClusterResourcePlacementを選択します。
注
ResourcePlacement インスタンスを spec.Strategy.Type: RolloutStrategy から spec.Strategy.Type: External に変更できます。 この変更は許可されますが、逆の変更は許可されません。
また、ResourcePlacement値を持つspec.Strategy.Type: Externalを見つけ、見つけたStagedUpdateRunを指定してResourcePlacementを作成することもできます。
戦略が見つかりません
原因
StagedUpdateStrategyは同じ名前空間に存在しません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: referenced updateStrategy not found: ...
解決策
StagedUpdateStrategyで指定したのと同じ名前空間内にStagedUpdateRun インスタンスを作成し、その戦略を参照するStagedUpdateRun インスタンスを作成します。
既に存在する有効なStagedUpdateRunを参照するStagedUpdateStrategy インスタンスを作成することもできます。
無効なステージ タスク
原因
StagedUpdateStrategyのステージ内で、beforeStageTaskまたはafterStageTaskインスタンスが正しく定義されていません。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: the before stage tasks are invalid, updateStrategy: ...
解決策
StagedUpdateStrategyを正しく更新する方法については、「段階的更新戦略」を参照してください。
クラスターが複数回表示される
原因
クラスターは、 StagedUpdateRunの複数のステージで選択されます。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: cluster `member-1` appears in more than one stage
StagedUpdateStrategyを確認します。
$ kubectl describe stagedupdatestrategy <staged-update-strategy-name> -n <namespace-name>
Name: example-strategy
Namespace: my-app-namespace
...
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: StagedUpdateStrategy
Metadata:
Creation Timestamp: 2026-02-11T21:01:41Z
Generation: 2
...
Spec:
Stages:
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Environment: staging
Max Concurrency: 1
Name: staging
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Region: west
Max Concurrency: 1
Name: west
StagedUpdateStrategy インスタンスには、Environment: stagingラベルとRegion: west ラベルの両方が選択されている 2 つのラベルがあります。
複数のステージに表示されるため、エラー メッセージで参照されている member-1 ラベルを調べます。 次のコマンドを実行します。
$ kubectl get membercluster member-1 --show-labels
NAME JOINED AGE MEMBER-AGENT-LAST-SEEN NODE-COUNT AVAILABLE-CPU AVAILABLE-MEMORY LABELS
member-1 True 81m 16s 2 14750m 48308656Ki environment=staging,region=east
このクラスターでは、これら 2 つのステージで両方のラベルが使用されます。
解決策
いずれかのラベルを削除するか、 StagedUpdateStrategy でステージを更新して、個別のクラスター ラベルを選択します。 次に、新しい StagedUpdateRun インスタンスを作成します。
一部のクラスターにステージが割り当てられない
原因
エラー メッセージには、ステージが割り当てられていないクラスター (最大 10 個) の一覧が表示されます。
ResourcePlacementを調べて、対象となるクラスターを決定します。
メッセージの例:
cannot continue the updateRun: failed to validate the updateRun: failed to process the request due to a client error: some clusters are not placed in any stage, total 3, showing up to 10: cluster-1, cluster-2, cluster-3
```text
Run the following commands:
```bash
$ kubectl get resourceplacement web-app-rollout-placement -n my-app-namespace
Name: web-app-rollout-placement
Namespace: my-app-namespace
...
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: ResourcePlacement
Metadata:
Creation Timestamp: 2026-02-11T21:02:36Z
Finalizers:
kubernetes-fleet.io/crp-cleanup
kubernetes-fleet.io/scheduler-cleanup
Generation: 1
Resource Version: 11468
UID: d268e4c0-b614-408c-bdc0-b2670194587b
Spec:
Policy:
Placement Type: PickAll
Resource Selectors:
Group: apps
Kind: Deployment
Name: test
Selection Scope: NamespaceWithResources
Version: v1
Revision History Limit: 10
Status Reporting Scope: ClusterScopeOnly
Strategy:
Type: External
Status:
Conditions:
Last Transition Time: 2026-02-11T21:02:37Z
Message: found all cluster needed as specified by the scheduling policy, found 3 cluster(s)
Observed Generation: 1
Reason: SchedulingPolicyFulfilled
Status: True
Type: ResourcePlacementScheduled
Last Transition Time: 2026-02-11T21:02:37Z
Message: Rollout is controlled by an external controller and no resource snapshot name is observed across clusters, probably rollout has not started yet
Observed Generation: 1
Reason: RolloutControlledByExternalController
Status: Unknown
Type: ResourcePlacementRolloutStarted
Placement Statuses:
Cluster Name: cluster-1
Conditions:
...
Cluster Name: cluster-2
Conditions:
...
Cluster Name: cluster-3
Conditions:
...
ResourcePlacement は、リソースを割り当てるサブセット クラスター (またはフリート内のすべてのクラスター) をターゲットにします。
ResourcePlacementでは、配置の種類はPickAll。 つまり、フリート内のすべてのクラスターをステージに割り当てる必要があります。
クラスターがステージに配置されていない場合、クラスターには、StagedUpdateStrategyで指定されているステージのラベルがありません。
StagedUpdateStrategyを確認します。
$ kubectl describe stagedupdatestrategy example-strategy -n my-app-namespace
Name: example-strategy
Namespace: my-app-namespace
...
API Version: placement.kubernetes-fleet.io/v1beta1
Kind: StagedUpdateStrategy
Metadata:
Creation Timestamp: 2026-02-11T21:01:41Z
Generation: 1
...
Spec:
Stages:
After Stage Tasks:
Type: Approval
Label Selector:
Match Labels:
Environment: staging
Max Concurrency: 1
Name: staging
[ Spec ] フィールドには、ラベルを持つクラスターを選択する 1 つのステージ ( Environment: staging) が表示されます。
解決策
-
environment=stagingラベルを持つクラスターを更新します。
$ az fleet member update -g <resource-group-name> -f <fleet-name> -n <member-cluster-name> --labels "environment=staging"
- メンバー クラスターに新しいラベルがあることを確認します。
$ kubectl get membercluster <member-cluster-name> --show-labels
NAME JOINED AGE MEMBER-AGENT-LAST-SEEN NODE-COUNT AVAILABLE-CPU AVAILABLE-MEMORY LABELS
cluster-1 True 62m 3s 2 14750m 48308656Ki environment=staging,region=east
残りのクラスターにラベルを追加します。
同じ
StagedUpdateRunとResourcePlacementのインスタンスを参照するStagedUpdateStrategyインスタンスを作成します。