すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:デスケジューリング機能の有効化

最終更新日:Mar 27, 2026

デスケジューリングは、スケジューラによる不均衡検出を待たずに、 eviction ルールに違反する実行中の Pod を他のノードへ移動します。ノードの Taint、アフィニティルール、または負荷プロファイルが変更された後に誤ってスケジュールされた Pod を修正する際に使用します。

本トピックでは、RemovePodsViolatingNodeTaints プラグインを例として、ack-koordinator コンポーネント経由でデスケジューリングを有効化する手順を説明します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

仮想ノードではデスケジューリングはサポートされていません。

注意事項

  • Koordinator Descheduler は実行中の Pod のみをエビクションします。再作成や再スケジューリングは行いません。エビクション後、ワークロードコントローラー(Deployment や StatefulSet など)が Pod を再作成し、標準のスケジューラによって再スケジュールされます。

  • デスケジューリング中は、新しい Pod の作成前に既存の Pod がエビクションされます。エビクション中に可用性を維持するために、アプリケーションの replicas 数が十分であることを確認してください。

  • ack-descheduler は非推奨となりました。現在ご利用中の場合は、Koordinator Descheduler への移行を行ってください。詳細については、「ack-descheduler から Koordinator Descheduler への移行方法」をご参照ください。

デスケジューリングプラグインの選択

解決したい課題に応じてプラグインを選択してください。

シナリオ プラグイン ポリシー種別
スケジュール後に NoSchedule Taint を取得したノード上に Pod が残っている場合 RemovePodsViolatingNodeTaints デスケジューリング
Pod がポッドアンチアフィニティルールに違反している場合 RemovePodsViolatingInterPodAntiAffinity デスケジューリング
Pod がノードアフィニティルールを満たさなくなった場合 RemovePodsViolatingNodeAffinity デスケジューリング
Pod の再起動が頻繁に発生している場合 RemovePodsHavingTooManyRestarts デスケジューリング
Pod の TTL(Time-to-Live)が期限切れになった場合 PodLifeTime デスケジューリング
Pod が Failed 状態になっている場合 RemoveFailedPod デスケジューリング
レプリケートされた Pod がノード間で不均等に分散されている場合 RemoveDuplicates バランス調整
ノードのリソース割り当てが不均等になっている場合 LowNodeUtilization バランス調整
Pod がトポロジー分散制約に違反している場合 RemovePodsViolatingTopologySpreadConstraint バランス調整
ノードの実際のリソース使用量により過負荷状態になっている場合 LowNodeLoad バランス調整

本トピックでは、RemovePodsViolatingNodeTaints を例として使用します。開始する前に、「デスケジューリングの基本概念」および「Koordinator Descheduler と Kubernetes Descheduler の比較」をご参照ください。

仕組み

RemovePodsViolatingNodeTaints プラグインは、設定された間隔で各ノードの NoSchedule Taint をチェックします。実行中の Pod がノードの NoSchedule Taint に対する Toleration を持っていない場合、プラグインはその Pod をエビクションします。その後、ワークロードコントローラーが Pod を再作成し、スケジューラがその Pod を許容可能なノードに配置します。

excludedTaints フィールドを使用すると、特定の Taint をこのチェック対象から除外できます。key=value 形式の Taint またはそのキーが excludedTaints のエントリと一致する場合、プラグインはその Taint を無視します。

本トピックで使用する例:

3 ノード構成のクラスターに、各ノードに 1 つの Pod を配置する Deployment があります。Pod がすでに実行中である状態で、管理者が 2 つのノードに NoSchedule Taint を追加しました。

  • ノード A には deschedule=not-allow:NoSchedule が設定されています。deschedule=not-allowexcludedTaints に含まれているため、この Taint は無視され、Pod はそのまま実行されます。

  • ノード B には、deschedule=allow:NoSchedule が設定されます。この Taint は除外されていないため、Pod は削除され、ノード C に再スケジュールされます(ノード C には NoSchedule Taint がありません)。

ステップ 1:ack-koordinator のインストールとデスケジューリングの有効化

ack-koordinator が既にインストール済みの場合は、続行前にバージョンが 1.2.0-ack.2 以降であることを確認してください。
  1. ACK コンソールにログインします。左側ナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスター」ページで、対象のクラスターを見つけ、その名前をクリックします。左側のナビゲーションウィンドウで、「アドオン」をクリックします。

  3. ack-koordinator を見つけ、右下隅の [インストール] をクリックします。

  4. インストールダイアログボックスで、[ACK-Koordinator 用 Descheduler の有効化] を選択し、画面の指示に従ってコンポーネントを設定・インストールします。

Koordinator Descheduler は、クラスターノード上で Deployment としてデプロイされます。

ステップ 2:RemovePodsViolatingNodeTaints プラグインの有効化

プラグインの構成

以下の内容で koord-descheduler-config.yaml というファイルを作成します。この ConfigMap は RemovePodsViolatingNodeTaints を有効化し、deschedule=not-allow Taint を無視するよう構成します。

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # koord-desheduler のシステム構成を変更しないでください。
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    deschedulingInterval: 120s # デスケジューラの実行間隔。本例では 120 秒に設定しています。
    dryRun: false # グローバルな読み取り専用モード。このモードを有効化すると、koord-descheduler は一切の操作を実行しません。
    # 上記はシステム構成です。

    profiles:
    - name: koord-descheduler
      plugins:
        deschedule:
          enabled:
            - name: RemovePodsViolatingNodeTaints  # ノード Taint 検証プラグインを有効化します。

      pluginConfig:
      - name: RemovePodsViolatingNodeTaints # ノード Taint 検証プラグインを構成します。
        args:
          excludedTaints:
          - deschedule=not-allow # Taint キーが deschedule かつ Taint 値が not-allow のノードを無視します。

      # RemovePodsViolatingNodeTaints が有効になるために必須です。削除しないでください。
      - name: MigrationController # 移行コントローラーを構成します。
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly

RemovePodsViolatingNodeTaints のパラメーター:

パラメーター デフォルト値 説明
excludedTaints list(string) 無視する Taint キーまたは key=value のペア。これらの Taint を持つノード上の Pod はエビクションされません。
includePreferNoSchedule bool false true の場合、PreferNoSchedule 効果を持つ Taint もチェックします(NoSchedule のみではない)。
namespaces.include list(string) デスケジューリングを特定の名前空間に制限します。namespaces.exclude とは排他的です。
namespaces.exclude list(string) 特定の名前空間でのデスケジューリングをスキップします。namespaces.include とは排他的です。
labelSelector map 指定されたラベルに一致する Pod のみをデスケジューリング対象とします。

構成の適用

  1. ConfigMap をクラスターに適用します:

    kubectl apply -f koord-descheduler-config.yaml
  2. 新しい構成を反映させるために Koordinator Descheduler を再起動します:

    kubectl -n kube-system scale deploy ack-koord-descheduler --replicas 0
    # 期待される出力:
    # deployment.apps/ack-koord-descheduler scaled
    kubectl -n kube-system scale deploy ack-koord-descheduler --replicas 1
    # 期待される出力:
    # deployment.apps/ack-koord-descheduler scaled

ステップ 3:デスケジューリングの検証

本例では、3 ノード構成のクラスターを使用します。

  1. 以下の内容で stress-demo.yaml というファイルを作成します:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: stress-demo
      namespace: default
      labels:
        app: stress-demo
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: stress-demo
      template:
        metadata:
          name: stress-demo
          labels:
            app: stress-demo
        spec:
          containers:
            - args:
                - '--vm'
                - '2'
                - '--vm-bytes'
                - '1600M'
                - '-c'
                - '2'
                - '--vm-hang'
                - '2'
              command:
                - stress
              image: registry-cn-beijing.ack.aliyuncs.com/acs/stress:v1.0.4
              imagePullPolicy: Always
              name: stress
              resources:
                limits:
                  cpu: '2'
                  memory: 4Gi
                requests:
                  cpu: '2'
                  memory: 4Gi
          restartPolicy: Always
  2. テストワークロードをデプロイします:

    kubectl create -f stress-demo.yaml
  3. Pod が Running 状態になるまで待ちます:

    kubectl get pod -o wide

    期待される出力:

    NAME                         READY   STATUS    RESTARTS   AGE    IP              NODE                        NOMINATED NODE   READINESS GATES
    stress-demo-5f6cddf9-9****   1/1     Running   0          10s    192.XX.XX.27   cn-beijing.192.XX.XX.247   <none>           <none>
    stress-demo-5f6cddf9-h****   1/1     Running   0          10s    192.XX.XX.20   cn-beijing.192.XX.XX.249   <none>           <none>
    stress-demo-5f6cddf9-v****   1/1     Running   0          10s    192.XX.XX.32   cn-beijing.192.XX.XX.248   <none>           <none>
  4. 2 つのノードに NoSchedule Taint を追加します:

    • deschedule=not-allow:NoSchedulecn-beijing.192.XX.XX.247 に追加します(excludedTaints により除外されるため、Pod はそのまま実行されます):

      kubectl taint nodes cn-beijing.192.XX.XX.247 deschedule=not-allow:NoSchedule

      期待される出力:

      node/cn-beijing.192.XX.XX.247 tainted
    • deschedule=allow:NoSchedulecn-beijing.192.XX.XX.248 に追加します(除外されないため、Pod はエビクションされます):

      kubectl taint nodes cn-beijing.192.XX.XX.248 deschedule=allow:NoSchedule

      期待される出力:

      node/cn-beijing.192.XX.XX.248 tainted
  5. Pod の状態変化を監視します。デスケジューラは各 deschedulingInterval(120 秒)ごとに Taint をチェックします:

    kubectl get pod -o wide -w

    期待される出力:

    NAME                         READY   STATUS              RESTARTS   AGE     IP             NODE                    NOMINATED NODE   READINESS GATES
    stress-demo-5f6cddf9-9****   1/1     Running             0          5m34s   192.XX.XX.27   cn-beijing.192.XX.XX.247   <none>           <none>
    stress-demo-5f6cddf9-h****   1/1     Running             0          5m34s   192.XX.XX.20   cn-beijing.192.XX.XX.249   <none>           <none>
    stress-demo-5f6cddf9-v****   1/1     Running             0          5m34s   192.XX.XX.32   cn-beijing.192.XX.XX.248   <none>           <none>
    stress-demo-5f6cddf9-v****   1/1     Terminating         0          7m58s   192.XX.XX.32   cn-beijing.192.XX.XX.248   <none>           <none>
    stress-demo-5f6cddf9-j****   0/1     ContainerCreating   0          0s      <none>         cn-beijing.192.XX.XX.249   <none>           <none>
    stress-demo-5f6cddf9-j****   1/1     Running             0          2s      192.XX.XX.32   cn-beijing.192.XX.XX.249   <none>           <none>

    出力より以下の点が確認できます:

    • cn-beijing.192.XX.XX.248 上の Pod(Taint:deschedule=allow:NoSchedule、除外されていない)がエビクションされました。

    • cn-beijing.192.XX.XX.247 上の Pod(Taint:deschedule=not-allow:NoSchedule、除外済み)は引き続き実行中です。

    • エビクションされた Pod は、cn-beijing.192.XX.XX.249NoSchedule Taint を持たない)へ再スケジュールされました。

  6. エビクションされた Pod のイベントを確認します:

    kubectl get event | grep stress-demo-5f6cddf9-v****

    期待される出力:

    3m24s       Normal    Evicting            podmigrationjob/b0fba65f-7fab-4a99-96a9-c71a3798****   Pod "default/stress-demo-5f6cddf9-v****" evicted from node "cn-beijing.192.XX.XX.248" by the reason "RemovePodsViolatingNodeTaints"
    2m51s       Normal    EvictComplete       podmigrationjob/b0fba65f-7fab-4a99-96a9-c71a3798****   Pod "default/stress-demo-5f6cddf9-v****" has been evicted
    3m24s       Normal    Descheduled         pod/stress-demo-5f6cddf9-v****                         Pod evicted from node "cn-beijing.192.XX.XX.248" by the reason "RemovePodsViolatingNodeTaints"
    3m24s       Normal    Killing             pod/stress-demo-5f6cddf9-v****                         Stopping container stress

    各イベントは、移行ライフサイクルのフェーズに対応しています:

    イベント ソース 意味
    Evicting PodMigrationJob デスケジューラが Pod のエビクションを決定し、移行ジョブを開始しました。
    Descheduled Pod Pod がエビクション信号を受信しました。
    Killing Pod コンテナランタイムがコンテナを停止しています。
    EvictComplete PodMigrationJob Pod の完全なエビクションが完了しました。ワークロードコントローラーがこれを再作成します。

    cn-beijing.192.XX.XX.248 上の Pod は、deschedule=allow:NoSchedule Taint(excludedTaints に含まれていない)に対する Toleration を持たなかったため、エビクションされました。結果は期待通りです。

高度なパラメーターの構成

ConfigMap を使用して、Koordinator Descheduler のグローバル動作および細かいテンプレート設定を構成します。

高度な構成の例

以下は、完全に構成された Koordinator Descheduler ConfigMap の例です。DeschedulerConfiguration を使用してグローバル設定を行い、デスケジューリングポリシーとして RemovePodsViolatingNodeTaints を有効化し、エビクターとして MigrationController を使用しています。

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # koord-desheduler のシステム構成を変更しないでください。
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    dryRun: false # グローバルな読み取り専用モード。このモードを有効化すると、koord-descheduler は一切の操作を実行しません。
    deschedulingInterval: 120s # デスケジューラの実行間隔。本例では 120 秒に設定しています。
    nodeSelector: # デスケジューリング対象となるノード。デフォルトではすべてのノードが対象となります。
      matchLabels:
        alibabacloud.com/nodepool-id: nodepool-1 # 必要に応じて設定してください。
    maxNoOfPodsToEvictPerNode: 10 # ノードあたりの最大エビクション数。グローバルスケールで有効になります。デフォルトでは制限が設定されていません。
    maxNoOfPodsToEvictPerNamespace: 10 # 名前空間あたりの最大エビクション数。グローバルスケールで有効になります。デフォルトでは制限が設定されていません。
    # 上記はシステム構成です。

    # テンプレート一覧。
    profiles:
    - name: koord-descheduler # テンプレートの名前。

      # スコープ:このテンプレートを指定されたノードにのみ適用します。
      # 方法 1:1 つのノードプール内のノードを選択します。
      nodeSelector:
        matchLabels:
          alibabacloud.com/nodepool-id: nodepool-1 # 必要に応じて設定してください。
      # 方法 2:複数のノードプール内のノードを選択します。
      # nodeSelector:
      #   matchExpressions:
      #   - key: alibabacloud.com/nodepool-id
      #     operator: In
      #     values:
      #     - nodepool-1
      #     - nodepool-2

      plugins:
        deschedule: # すべてのプラグインはデフォルトで無効です。有効化するものを指定します。
          enabled:
            - name: RemovePodsViolatingNodeTaints  # ノード Taint 検証プラグインを有効化します。
        balance: # すべてのプラグインはデフォルトで無効です。
          disabled:
            - name: "*" # すべての Balance プラグインを無効化します。
        evict:
          enabled:
            - name: MigrationController # MigrationController はデフォルトで有効化されています。
        filter:
          enabled:
            - name: MigrationController # MigrationController のフィルタリングポリシーをデフォルトで使用します。

      pluginConfig:
      - name: RemovePodsViolatingNodeTaints
        args:
          excludedTaints:
          - deschedule=not-allow # Taint キーが deschedule かつ Taint 値が not-allow のノードを無視します。
          - reserved # Taint キーが reserved のノードを無視します。
          includePreferNoSchedule: false # false の場合、NoSchedule Taint のみをチェックします。
          namespaces:
            include: # これらの名前空間に限定してデスケジューリングを実行します。
              - "namespace1"
              - "namespace2"
            # exclude: # 代わりに、これらの名前空間を除外することもできます。
            #   - "namespace1"
            #   - "namespace2"
          labelSelector: # これらのラベルに一致する Pod のみをデスケジューリング対象とします。
            accelerator: nvidia-tesla-p100

      - name: MigrationController
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly
          evictLocalStoragePods: false # false の場合、emptyDir や hostPath を使用する Pod はデスケジューリングされません。
          maxMigratingPerNode: 1 # ノードあたりの同時移行可能 Pod 数の上限。
          maxMigratingPerNamespace: 1  # 名前空間あたりの同時移行可能 Pod 数の上限。
          maxMigratingPerWorkload: 1 # ワークロードあたりの同時移行可能 Pod 数の上限。
          maxUnavailablePerWorkload: 2 # ワークロード内で許容される unavailable レプリカ Pod の最大数。
          objectLimiters:
            workload: # ワークロードレベルの移行を制限します。デフォルト:5 分間に 1 つの Pod まで。
              duration: 5m
              maxMigrating: 1
          evictionPolicy: Eviction # デフォルトで Eviction API を使用します。

システム構成

DeschedulerConfiguration 内で、グローバルなシステムレベルの動作を構成します。

パラメーター 有効な値 説明
dryRun boolean true / false(デフォルト:false) 読み取り専用モード。有効化すると、Pod の移行は行われません。 false
deschedulingInterval time.Duration >0s デスケジューラの実行頻度。 120s
nodeSelector 構造体 デスケジューリング対象となるノードを制限します。matchLabels(1 つのノードプール)または matchExpressions(複数のノードプール)を指定できます。詳細については、「Kubernetes labelSelector」をご参照ください。 上記 YAML の例を参照
maxNoOfPodsToEvictPerNode int ≥0(デフォルト:0) 1 回のデスケジューリングサイクルで 1 つのノードからエビクションされる最大 Pod 数。0 の場合、制限なし。 10
maxNoOfPodsToEvictPerNamespace int ≥0(デフォルト:0) 1 回のデスケジューリングサイクルで 1 つの名前空間からエビクションされる最大 Pod 数。0 の場合、制限なし。 10

テンプレート構成

Koordinator Descheduler は、デスケジューリングポリシーおよびエビクターをグループ化するためのテンプレート(profiles)を使用します。各テンプレートには以下のフィールドがあります。

  • `name`:テンプレートの識別子となる文字列。

  • `plugins`:デスケジューリングポリシー(deschedulebalance)、エビクター(evict)、事前エビクションフィルター(filter)の有効/無効化を指定します。

  • `pluginConfig`:プラグインごとの高度な引数を設定します。name フィールドをプラグイン名と一致させ、args を構成します。詳細については、「ポリシープラグインの構成」および「エビクタープラグインの構成」をご参照ください。

  • `nodeSelector`:テンプレートの適用範囲を特定のノードに制限します。未設定の場合、テンプレートはすべてのノードに適用されます。

nodeSelector フィールドは、テンプレート構成において ack-koordinator v1.6.1-ack.1.16 以降が必要です。

`plugins` フィールドのリファレンス:

フィールド 対応するプラグイン 説明
deschedule RemovePodsViolatingNodeTaintsRemovePodsViolatingInterPodAntiAffinityRemovePodsViolatingNodeAffinityRemovePodsHavingTooManyRestartsPodLifeTimeRemoveFailedPod すべてデフォルトで無効です。有効化するプラグインを指定します。
balance RemoveDuplicatesLowNodeUtilizationHighNodeUtilizationRemovePodsViolatingTopologySpreadConstraintLowNodeLoad すべてデフォルトで無効です。有効化するプラグインを指定します。
evict MigrationControllerDefaultEvictor Pod エビクター。MigrationController がデフォルトで有効化されています。同時に複数の evict プラグインを有効化しないでください。
filter MigrationControllerDefaultEvictor 事前エビクションフィルタリングポリシー。MigrationController がデフォルトで有効化されています。同時に複数の filter プラグインを有効化しないでください。

ポリシープラグインの構成

Koordinator Descheduler は、Kubernetes Descheduler から提供される 6 つの Deschedule プラグインおよび 5 つの Balance プラグインをサポートしています。LowNodeLoad プラグインは Koordinator が提供するものです。詳細については、「負荷認識型ホットスポットデスケジューリングの活用」をご参照ください。

ポリシー種別 プラグイン 説明
デスケジューリング RemovePodsViolatingInterPodAntiAffinity ポッドアンチアフィニティルールに違反する Pod をエビクションします。
デスケジューリング RemovePodsViolatingNodeAffinity ノードアフィニティルールを満たさなくなった Pod をエビクションします。
デスケジューリング RemovePodsViolatingNodeTaints ノード Taint を許容できない Pod をエビクションします。
デスケジューリング RemovePodsHavingTooManyRestarts 再起動が頻繁に発生する Pod をエビクションします。
スケジュール解除 PodLifeTime TTL が期限切れになった Pod をエビクションします。
デスケジューリング RemoveFailedPod Failed 状態の Pod をエビクションします。
バランス調整 RemoveDuplicates レプリケートされた Pod をノード間で均等に分散します。
バランス調整 LowNodeUtilization ノードのリソース割り当てに基づいて Pod を再配分します。
残高 HighNodeUtilization 利用率の低いノードから Pod を集約し、利用率の高いノードへ移動します。
バランス調整 RemovePodsViolatingTopologySpreadConstraint トポロジー分散制約に違反する Pod をエビクションします。

エビクタープラグインの構成

Koordinator Descheduler は、DefaultEvictor および MigrationController の 2 つのエビクタープラグインをサポートしています。

MigrationController

MigrationController は、移行ジョブを通じた細かいエビクション制御および可観測性を提供します。

パラメーター 有効な値 説明
evictLocalStoragePods boolean true / false(デフォルト:false) false の場合、emptyDirhostPath を使用する Pod はデスケジューリングされません。 false
maxMigratingPerNode int64 ≥0(デフォルト:2) ノードあたりの同時移行可能 Pod 数の上限。0 の場合、制限なし。 2
maxMigratingPerNamespace int64 ≥0(デフォルト:0) 名前空間あたりの同時移行可能 Pod 数の上限。0 の場合、制限なし。 1
maxMigratingPerWorkload intOrString ≥0(デフォルト:10%) ワークロードあたりの同時移行可能 Pod 数または割合の上限。0 の場合、制限なし。ワークロードに Pod が 1 つしかない場合は、デスケジューリング対象から除外されます。 1 または 10%
maxUnavailablePerWorkload intOrString ≥0 かつレプリカ数未満(デフォルト:10%) ワークロード内で許容される unavailable レプリカ Pod の最大数。0 の場合、制限なし。 1 または 10%
objectLimiters.workload 構造体 Duration >0(デフォルト:5m);MaxMigrating ≥0(デフォルト:10%) タイムウィンドウ内でのワークロードレベルの移行を制限します。Duration はウィンドウ長を設定します。MaxMigrating はそのウィンドウ内で移行可能な最大 Pod 数を設定します。 duration: 5m maxMigrating: 1
evictionPolicy string Eviction(デフォルト)、DeleteSoft Pod のエビクション方法を制御します。Eviction:優雅なエビクションのために Eviction API を呼び出します。Delete:Delete API を呼び出します。Soft:カスタムのダウンストリーム処理用に scheduling.koordinator.sh/soft-eviction アノテーションを追加します。 Eviction

DefaultEvictor

DefaultEvictor は、標準の Kubernetes Descheduler エビクターです。構成の詳細については、「DefaultEvictor」をご参照ください。

MigrationController と DefaultEvictor の比較

機能 DefaultEvictor MigrationController
エビクション手法 Eviction API のみ Eviction API、Delete API、または Soft アノテーション
ノード単位のエビクション制限 対応 対応
名前空間単位のエビクション制限 対応 対応
ワークロード単位のエビクション制限 非対応 対応
ワークロード単位の利用不可制限 非対応 対応
エビクションの速度制限 非対応 ワークロード単位のタイムウィンドウベースの速度制限
エビクションの可観測性 コンポーネントログのみ コンポーネントログおよび、Pod 単位の移行ステータスを含む Kubernetes イベント

次のステップ