All Products
Search
Document Center

Container Service for Kubernetes:Aktifkan fitur penjadwalan ulang

Last Updated:Jun 17, 2026

Aktifkan Koordinator Descheduler untuk secara otomatis mengusir dan menyeimbangkan kembali Pod saat taint node, aturan afinitas, atau profil beban berubah.

Prosedur berikut menggunakan Plugin RemovePodsViolatingNodeTaints sebagai contoh.

Prasyarat

Pastikan Anda telah:

Penjadwalan ulang tidak didukung pada node virtual.

Catatan penggunaan

  • Koordinator Descheduler hanya mengusir Pod — tidak membuat ulang. Kontroler workload (seperti Deployment atau StatefulSet) membuat ulang Pod yang diusir, dan penjadwal standar menempatkannya.

  • Pod lama diusir sebelum Pod baru dibuat. Pastikan aplikasi Anda memiliki jumlah replica yang cukup untuk menjaga ketersediaan selama pengusiran.

  • ack-descheduler sudah tidak digunakan lagi. Jika Anda masih menggunakannya, lihat Bagaimana cara migrasi dari ack-descheduler ke Koordinator Descheduler?

Pilih plugin penjadwalan ulang

Pilih plugin sesuai skenario Anda:

Skenario Plugin Jenis kebijakan
Pod tetap berada di node yang mendapatkan taint NoSchedule setelah penjadwalan RemovePodsViolatingNodeTaints Deschedule
Pod melanggar aturan anti-afinitas antar-Pod RemovePodsViolatingInterPodAntiAffinity Deschedule
Pod tidak lagi memenuhi aturan afinitas node RemovePodsViolatingNodeAffinity Deschedule
Pod sering restart RemovePodsHavingTooManyRestarts Deschedule
Pod melebihi time-to-live-nya PodLifeTime Deschedule
Pod berada dalam status Failed RemoveFailedPod Deschedule
Pod replikasi tersebar tidak merata di seluruh node RemoveDuplicates Balance
Node dimanfaatkan secara tidak merata berdasarkan alokasi sumber daya LowNodeUtilization Balance
Pod melanggar batasan penyebaran topologi RemovePodsViolatingTopologySpreadConstraint Balance
Node kelebihan beban berdasarkan pemanfaatan sumber daya aktual LowNodeLoad Balance

Contoh di bawah ini menggunakan RemovePodsViolatingNodeTaints. Baca konsep penjadwalan ulang dan Koordinator Descheduler vs. Kubernetes Descheduler sebelum memulai.

Cara kerja

RemovePodsViolatingNodeTaints memeriksa setiap node terhadap taint NoSchedule pada interval yang dikonfigurasi. Jika Pod yang sedang berjalan tidak memiliki toleransi terhadap taint NoSchedule suatu node, plugin tersebut akan mengusirnya. Kontroler workload membuat ulang Pod tersebut, dan penjadwal menempatkannya di node yang dapat ditoleransi.

Gunakan excludedTaints untuk mengecualikan taint tertentu. Jika kunci taint atau pasangan key=value cocok dengan entri dalam excludedTaints, plugin tersebut mengabaikannya.

Contoh skenario:

Kluster tiga node menjalankan Deployment dengan satu Pod per node. Administrator menambahkan taint NoSchedule ke dua node setelah deployment:

  • Node A mendapat deschedule=not-allow:NoSchedule. Karena deschedule=not-allow ada dalam excludedTaints, taint ini diabaikan — Pod tetap berjalan.

  • Node B mendapat deschedule=allow:NoSchedule. Taint ini tidak dikecualikan — Pod diusir dan dijadwalkan ulang ke Node C (yang tidak memiliki taint NoSchedule).

Langkah 1: Instal ack-koordinator dan aktifkan penjadwalan ulang

Jika ack-koordinator sudah terinstal, pastikan versinya 1.2.0-ack.2 atau lebih baru.
  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

  3. Temukan ack-koordinator dan klik Install.

  4. Di kotak dialog Install, pilih Enable Descheduler for ACK-Koordinator dan selesaikan instalasi.

Koordinator Descheduler diterapkan sebagai Deployment pada node kluster.

Langkah 2: Aktifkan plugin RemovePodsViolatingNodeTaints

Konfigurasikan plugin

Buat file bernama koord-descheduler-config.yaml. ConfigMap ini mengaktifkan RemovePodsViolatingNodeTaints dan mengecualikan taint deschedule=not-allow.

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # Jangan ubah konfigurasi sistem berikut untuk koord-descheduler.
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    deschedulingInterval: 120s # Interval eksekusi descheduler. Diatur menjadi 120 detik di sini.
    dryRun: false # Mode read-only global. Setelah diaktifkan, koord-descheduler tidak melakukan operasi apa pun.
    # Konfigurasi di atas adalah konfigurasi sistem.

    profiles:
    - name: koord-descheduler
      plugins:
        deschedule:
          enabled:
            - name: RemovePodsViolatingNodeTaints  # Aktifkan plugin verifikasi taint node.

      pluginConfig:
      - name: RemovePodsViolatingNodeTaints # Konfigurasikan plugin verifikasi taint node.
        args:
          excludedTaints:
          - deschedule=not-allow # Abaikan node yang kunci taint-nya deschedule dan nilai taint-nya not-allow.

      # Diperlukan agar RemovePodsViolatingNodeTaints berfungsi. Jangan hapus.
      - name: MigrationController # Konfigurasikan kontroler migrasi.
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly

Parameter RemovePodsViolatingNodeTaints:

Parameter Tipe Bawaan Deskripsi
excludedTaints list(string) Kunci taint atau pasangan key=value yang diabaikan. Pod pada node dengan taint ini tidak diusir.
includePreferNoSchedule bool false Jika true, juga memeriksa taint dengan efek PreferNoSchedule, bukan hanya NoSchedule.
namespaces.include list(string) Batasi penjadwalan ulang hanya pada namespace tertentu. Saling eksklusif dengan namespaces.exclude.
namespaces.exclude list(string) Lewati penjadwalan ulang di namespace tertentu. Saling eksklusif dengan namespaces.include.
labelSelector map Batasi penjadwalan ulang hanya pada Pod yang sesuai label yang ditentukan.

Terapkan konfigurasi

  1. Terapkan ConfigMap ke kluster:

    kubectl apply -f koord-descheduler-config.yaml
  2. Mulai ulang Koordinator Descheduler agar memuat konfigurasi baru:

    kubectl -n kube-system scale deploy ack-koord-descheduler --replicas 0
    # Expected output:
    # deployment.apps/ack-koord-descheduler scaled
    kubectl -n kube-system scale deploy ack-koord-descheduler --replicas 1
    # Expected output:
    # deployment.apps/ack-koord-descheduler scaled

Langkah 3: Verifikasi penjadwalan ulang

Contoh ini menggunakan kluster tiga node.

  1. Buat file bernama 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. Terapkan workload uji:

    kubectl create -f stress-demo.yaml
  3. Tunggu hingga Pod mencapai status Running:

    kubectl get pod -o wide

    Output yang diharapkan:

    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. Tambahkan taint NoSchedule ke dua node:

    • Tambahkan deschedule=not-allow:NoSchedule ke cn-beijing.192.XX.XX.247 (dikecualikan oleh excludedTaints — Pod harus tetap berjalan):

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

      Output yang diharapkan:

      node/cn-beijing.192.XX.XX.247 tainted
    • Tambahkan deschedule=allow:NoSchedule ke cn-beijing.192.XX.XX.248 (tidak dikecualikan — Pod harus diusir):

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

      Output yang diharapkan:

      node/cn-beijing.192.XX.XX.248 tainted
  5. Amati perubahan Pod. Descheduler memeriksa taint setiap deschedulingInterval (120 detik):

    kubectl get pod -o wide -w

    Output yang diharapkan:

    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>

    Output tersebut mengonfirmasi:

    • Pod di cn-beijing.192.XX.XX.248 (taint deschedule=allow:NoSchedule, tidak dikecualikan) diusir.

    • Pod di cn-beijing.192.XX.XX.247 (taint deschedule=not-allow:NoSchedule, dikecualikan) tetap berjalan.

    • Pod yang diusir dijadwalkan ulang ke cn-beijing.192.XX.XX.249, yang tidak memiliki taint NoSchedule.

  6. Periksa event pengusiran untuk Pod yang diusir:

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

    Output yang diharapkan:

    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

    Setiap event dipetakan ke fase siklus hidup migrasi:

    Event Sumber Makna
    Evicting PodMigrationJob Descheduler memulai pekerjaan migrasi untuk mengusir Pod.
    Descheduled Pod Pod menerima sinyal pengusiran.
    Killing Pod Waktu proses kontainer menghentikan kontainer.
    EvictComplete PodMigrationJob Pod sepenuhnya diusir. Kontroler workload membuat ulang Pod tersebut.

    Pod di cn-beijing.192.XX.XX.248 tidak memiliki toleransi terhadap taint deschedule=allow:NoSchedule (tidak ada dalam excludedTaints), sehingga diusir.

Konfigurasikan parameter lanjutan

Konfigurasikan perilaku global dan pengaturan templat menggunakan ConfigMap.

Contoh konfigurasi lanjutan

ConfigMap ini menggunakan DeschedulerConfiguration untuk pengaturan global, mengaktifkan RemovePodsViolatingNodeTaints sebagai kebijakan penjadwalan ulang, dan menggunakan MigrationController sebagai pengusir.

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # Jangan ubah konfigurasi sistem berikut untuk koord-descheduler.
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    dryRun: false # Mode read-only global. Setelah diaktifkan, koord-descheduler tidak melakukan operasi apa pun.
    deschedulingInterval: 120s # Interval eksekusi descheduler. Diatur menjadi 120 detik di sini.
    nodeSelector: # Node yang terlibat dalam penjadwalan ulang. Secara default, semua node dijadwalkan ulang.
      matchLabels:
        alibabacloud.com/nodepool-id: nodepool-1 # Konfigurasikan sesuai kebutuhan Anda.
    maxNoOfPodsToEvictPerNode: 10 # Jumlah maksimum Pod yang dapat diusir dari satu node. Batas ini berlaku secara global. Secara default, tidak ada batas.
    maxNoOfPodsToEvictPerNamespace: 10 # Jumlah maksimum Pod yang dapat diusir dari satu namespace. Batas ini berlaku secara global. Secara default, tidak ada batas.
    # Konfigurasi di atas adalah konfigurasi sistem.

    # Daftar templat.
    profiles:
    - name: koord-descheduler # Nama templat.

      # Cakupan: terapkan templat ini hanya pada node yang ditentukan.
      # Metode 1: Pilih node dalam satu kelompok node.
      nodeSelector:
        matchLabels:
          alibabacloud.com/nodepool-id: nodepool-1 # Konfigurasikan sesuai kebutuhan Anda
      # Metode 2: Pilih node dalam beberapa kelompok node.
      # nodeSelector:
      #   matchExpressions:
      #   - key: alibabacloud.com/nodepool-id
      #     operator: In
      #     values:
      #     - nodepool-1
      #     - nodepool-2

      plugins:
        deschedule: # Semua plugin dinonaktifkan secara default. Tentukan plugin yang akan diaktifkan.
          enabled:
            - name: RemovePodsViolatingNodeTaints  # Aktifkan plugin verifikasi taint node.
        balance: # Semua plugin dinonaktifkan secara default.
          disabled:
            - name: "*" # Nonaktifkan semua plugin Balance.
        evict:
          enabled:
            - name: MigrationController # MigrationController diaktifkan secara default.
        filter:
          enabled:
            - name: MigrationController # Gunakan kebijakan penyaringan MigrationController secara default.

      pluginConfig:
      - name: RemovePodsViolatingNodeTaints
        args:
          excludedTaints:
          - deschedule=not-allow # Abaikan node yang kunci taint-nya deschedule dan nilai taint-nya not-allow.
          - reserved # Abaikan node yang kunci taint-nya reserved.
          includePreferNoSchedule: false # Jika false, hanya memeriksa taint NoSchedule.
          namespaces:
            include: # Batasi penjadwalan ulang hanya pada namespace berikut.
              - "namespace1"
              - "namespace2"
            # exclude: # Atau, kecualikan namespace berikut.
            #   - "namespace1"
            #   - "namespace2"
          labelSelector: # Hanya jadwalkan ulang Pod yang sesuai label berikut.
            accelerator: nvidia-tesla-p100

      - name: MigrationController
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly
          evictLocalStoragePods: false # Jika false, Pod yang menggunakan emptyDir atau hostPath tidak dijadwalkan ulang.
          maxMigratingPerNode: 1 # Maksimum Pod yang dimigrasikan secara bersamaan pada satu node.
          maxMigratingPerNamespace: 1  # Maksimum Pod yang dimigrasikan secara bersamaan dalam satu namespace.
          maxMigratingPerWorkload: 1 # Maksimum Pod yang dimigrasikan secara bersamaan dalam satu workload.
          maxUnavailablePerWorkload: 2 # Maksimum Pod replikasi yang tidak tersedia yang diizinkan dalam satu workload.
          objectLimiters:
            workload: # Pembatasan kecepatan migrasi tingkat workload. Default: hanya 1 Pod per workload dalam 5 menit.
              duration: 5m
              maxMigrating: 1
          evictionPolicy: Eviction # Gunakan API Eviction secara default.

Konfigurasi sistem

Konfigurasikan perilaku global tingkat sistem dalam DeschedulerConfiguration.

Parameter Tipe Nilai valid Deskripsi Contoh
dryRun boolean true / false (default: false) Mode read-only. Jika diaktifkan, tidak ada Pod yang dimigrasikan. false
deschedulingInterval time.Duration >0s Frekuensi eksekusi descheduler. 120s
nodeSelector Struktur Batasi node mana saja yang memenuhi syarat untuk penjadwalan ulang. Menerima matchLabels (satu kelompok node) atau matchExpressions (beberapa kelompok node). Lihat Kubernetes labelSelector. Lihat contoh YAML di atas
maxNoOfPodsToEvictPerNode int ≥0 (default: 0) Maksimum Pod yang diusir dari satu node per siklus penjadwalan ulang. 0 berarti tanpa batas. 10
maxNoOfPodsToEvictPerNamespace int ≥0 (default: 0) Maksimum Pod yang diusir dari satu namespace per siklus penjadwalan ulang. 0 berarti tanpa batas. 10

Konfigurasi templat

Setiap templat (profiles) mengelompokkan kebijakan penjadwalan ulang dan pengusir dengan bidang berikut:

  • `name`: Pengidentifikasi templat.

  • `plugins`: Mengaktifkan atau menonaktifkan kebijakan penjadwalan ulang (deschedule, balance), pengusir (evict), dan filter pra-pengusiran (filter).

  • `pluginConfig`: Argumen per-plugin. Cocokkan bidang name dengan nama plugin dan konfigurasikan args. Lihat Konfigurasikan plugin kebijakan dan Konfigurasikan plugin pengusir.

  • `nodeSelector`: Membatasi templat hanya pada node tertentu. Jika tidak diatur, berlaku untuk semua node.

nodeSelector tingkat templat memerlukan ack-koordinator v1.6.1-ack.1.16 atau lebih baru.

Referensi bidang `plugins`:

Bidang Plugin yang didukung Deskripsi
deschedule RemovePodsViolatingNodeTaints, RemovePodsViolatingInterPodAntiAffinity, RemovePodsViolatingNodeAffinity, RemovePodsHavingTooManyRestarts, PodLifeTime, RemoveFailedPod Semua dinonaktifkan secara default. Tentukan plugin yang akan diaktifkan.
balance RemoveDuplicates, LowNodeUtilization, HighNodeUtilization, RemovePodsViolatingTopologySpreadConstraint, LowNodeLoad Semua dinonaktifkan secara default. Tentukan plugin yang akan diaktifkan.
evict MigrationController, DefaultEvictor Pengusir Pod. MigrationController diaktifkan secara default. Jangan aktifkan beberapa plugin evict secara bersamaan.
filter MigrationController, DefaultEvictor Kebijakan penyaringan pra-pengusiran. MigrationController diaktifkan secara default. Jangan aktifkan beberapa plugin filter secara bersamaan.

Konfigurasikan plugin kebijakan

Koordinator Descheduler mendukung enam plugin Deschedule dan lima plugin Balance dari Kubernetes Descheduler. LowNodeLoad disediakan oleh Koordinator. Lihat Bekerja dengan penjadwalan ulang hotspot berbasis beban.

Jenis kebijakan Plugin Deskripsi
Deschedule RemovePodsViolatingInterPodAntiAffinity Mengusir Pod yang melanggar aturan anti-afinitas antar-Pod.
Deschedule RemovePodsViolatingNodeAffinity Mengusir Pod yang tidak lagi memenuhi aturan afinitas node.
Deschedule RemovePodsViolatingNodeTaints Mengusir Pod yang tidak dapat mentoleransi taint node.
Deschedule RemovePodsHavingTooManyRestarts Mengusir Pod yang sering restart.
Deschedule PodLifeTime Mengusir Pod yang TTL-nya telah kedaluwarsa.
Deschedule RemoveFailedPod Mengusir Pod dalam status Failed.
Balance RemoveDuplicates Menyebarluaskan Pod replikasi secara merata di seluruh node.
Balance LowNodeUtilization Mendistribusikan ulang Pod berdasarkan alokasi sumber daya node.
Balance HighNodeUtilization Mengkonsolidasikan Pod dari node yang kurang dimanfaatkan ke node yang lebih dimanfaatkan.
Balance RemovePodsViolatingTopologySpreadConstraint Mengusir Pod yang melanggar batasan penyebaran topologi.

Konfigurasikan plugin pengusir

Koordinator Descheduler mendukung dua plugin pengusir: DefaultEvictor dan MigrationController.

MigrationController

MigrationController menyediakan kontrol pengusiran detail halus dan observabilitas melalui pekerjaan migrasi.

Parameter Tipe Nilai valid Deskripsi Contoh
evictLocalStoragePods boolean true / false (default: false) Jika false, Pod yang menggunakan emptyDir atau hostPath tidak dijadwalkan ulang. false
maxMigratingPerNode int64 ≥0 (default: 2) Maksimum Pod yang dimigrasikan secara bersamaan pada satu node. 0 berarti tanpa batas. 2
maxMigratingPerNamespace int64 ≥0 (default: 0) Maksimum Pod yang dimigrasikan secara bersamaan dalam satu namespace. 0 berarti tanpa batas. 1
maxMigratingPerWorkload intOrString ≥0 (default: 10%) Maksimum Pod atau persentase yang dimigrasikan secara bersamaan dalam satu workload. 0 berarti tanpa batas. Jika workload hanya memiliki satu Pod, maka dikecualikan dari penjadwalan ulang. 1 atau 10%
maxUnavailablePerWorkload intOrString ≥0 dan < jumlah replica (default: 10%) Maksimum Pod replikasi yang tidak tersedia yang diizinkan dalam satu workload. 0 berarti tanpa batas. 1 atau 10%
objectLimiters.workload Struktur Duration >0 (default: 5m); MaxMigrating ≥0 (default: 10%) Membatasi kecepatan migrasi tingkat workload dalam jendela waktu. Duration menetapkan panjang jendela. MaxMigrating menetapkan maksimum Pod yang dimigrasikan dalam jendela tersebut. duration: 5m maxMigrating: 1
evictionPolicy string Eviction (default), Delete, Soft Mengontrol cara Pod diusir. Eviction: memanggil API Eviction untuk pengusiran graceful. Delete: memanggil API Delete. Soft: menambahkan anotasi scheduling.koordinator.sh/soft-eviction untuk penanganan khusus downstream. Eviction

DefaultEvictor

DefaultEvictor adalah pengusir standar Kubernetes Descheduler. Lihat DefaultEvictor untuk konfigurasi.

MigrationController vs. DefaultEvictor

Kemampuan DefaultEvictor MigrationController
Metode pengusiran Hanya API Eviction API Eviction, API Delete, atau anotasi Soft
Batas pengusiran per node Didukung Didukung
Batas pengusiran per namespace Didukung Didukung
Batas pengusiran per workload Tidak didukung Didukung
Batas ketidaktersediaan per workload Tidak didukung Didukung
Pembatasan kecepatan pengusiran Tidak didukung Pembatasan kecepatan berbasis jendela waktu per workload
Observabilitas pengusiran Hanya log komponen Log komponen dan event Kubernetes dengan status migrasi per Pod

Langkah selanjutnya