Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Enable the descheduling feature

Son Güncelleme:Oct 06, 2026

Düğüm taint'leri, yakınlık kuralları veya yük profilleri değiştiğinde pod'ların otomatik olarak tahliye edilmesini ve yeniden dengelenmesini sağlamak için Koordinator Descheduler'ı etkinleştirin.

Aşağıdaki yordamda örnek olarak RemovePodsViolatingNodeTaints eklentisi kullanılmıştır.

Önkoşullar

Aşağıdakileri yaptığınızdan emin olun:

Sanal düğümlerde descheduling desteklenmez.

Kullanım notları

  • Koordinator Descheduler yalnızca pod'ları tahliye eder; yeniden oluşturmaz. Tahliye edilen pod'lar iş yükü denetleyicisi (Deployment veya StatefulSet gibi) tarafından yeniden oluşturulur ve standart zamanlayıcı bunları uygun düğümlere yerleştirir.

  • Yeni pod'lar oluşturulmadan önce eski pod'lar tahliye edilir. Tahliye sırasında kullanılabilirliği korumak için uygulamanızın yeterli sayıda replicas (çoğaltma) içerdiğinden emin olun.

  • ack-descheduler kullanımdan kaldırılmıştır. Hala kullanıyorsanız bkz. ack-descheduler'dan Koordinator Descheduler'a nasıl geçiş yapılır?

Bir descheduling eklentisi seçin

Senaryonuz için uygun bir eklenti seçin:

Senaryo Eklenti İlke türü
Pod'lar, zamanlamadan sonra NoSchedule taint'i edinmiş düğümlerde kalır RemovePodsViolatingNodeTaints Deschedule
Pod'lar podlar arası anti-yakınlık kurallarını ihlal eder RemovePodsViolatingInterPodAntiAffinity Deschedule
Pod'lar artık düğüm yakınlığı kurallarını karşılamaz RemovePodsViolatingNodeAffinity Deschedule
Pod'lar çok sık yeniden başlar RemovePodsHavingTooManyRestarts Deschedule
Pod'lar yaşam süresi sınırını aşmıştır PodLifeTime Deschedule
Pod'lar Başarısız (Failed) durumundadır RemoveFailedPod Deschedule
Çoğaltılmış pod'lar düğümler arasında eşit dağılmamıştır RemoveDuplicates Balance
Düğümler kaynak tahsisine göre eşit olmayan şekilde kullanılmaktadır LowNodeUtilization Balance
Pod'lar topoloji yayılım kısıtlamalarını ihlal eder RemovePodsViolatingTopologySpreadConstraint Balance
Düğümler gerçek kaynak kullanımına göre aşırı yüklenmiştir LowNodeLoad Balance

Aşağıdaki örneklerde RemovePodsViolatingNodeTaints kullanılır. Başlamadan önce descheduling kavramlarını ve Koordinator Descheduler ile Kubernetes Descheduler arasındaki farkları okuyun.

Nasıl çalışır?

RemovePodsViolatingNodeTaints eklentisi, yapılandırılan aralıklarla her düğümü NoSchedule taint'leri açısından denetler. Çalışan bir pod, düğümün NoSchedule taint'ine yönelik bir tolerans içermiyorsa eklenti bu pod'u tahliye eder. İş yükü denetleyicisi pod'u yeniden oluşturur ve zamanlayıcı onu toleranslı bir düğüme yerleştirir.

Belirli taint'leri muaf tutmak için excludedTaints parametresini kullanın. Bir taint'in anahtarı veya key=value çifti excludedTaints listesindeki bir girişle eşleşirse eklenti bu taint'i yoksayar.

Örnek senaryo:

Üç düğümlü bir kümede, her düğümde bir pod çalıştıran bir Deployment bulunur. Yönetici, dağıtımdan sonra iki düğüme NoSchedule taint'leri ekler:

  • A Düğümüne deschedule=not-allow:NoSchedule taint'i eklenir. deschedule=not-allow değeri excludedTaints listesinde bulunduğundan bu taint yoksayılır ve pod çalışmaya devam eder.

  • B Düğümüne deschedule=allow:NoSchedule taint'i eklenir. Bu taint hariç tutulmadığından pod tahliye edilir ve NoSchedule taint'i olmayan C Düğümüne yeniden zamanlanır.

1. Adım: ack-koordinator'ı yükleyin ve descheduling'i etkinleştirin

ack-koordinator zaten yüklüyse sürümün 1.2.0-ack.2 veya üzeri olduğundan emin olun.
  1. ACK konsoluna oturum açın. Sol gezinme bölmesinde Clusters öğesini tıklayın.

  2. Clusters sayfasında hedef kümenin adını tıklayın. Sol gezinme bölmesinde Add-ons öğesini tıklayın.

  3. ack-koordinator bileşenini bulun ve Install seçeneğini tıklayın.

  4. Kurulum iletişim kutusunda Enable Descheduler for ACK-Koordinator seçeneğini işaretleyin ve kurulumu tamamlayın.

Koordinator Descheduler, küme düğümlerinde bir Deployment olarak dağıtılır.

2. Adım: RemovePodsViolatingNodeTaints eklentisini etkinleştirin

Eklentiyi yapılandırın

koord-descheduler-config.yaml adlı bir dosya oluşturun. Bu ConfigMap, RemovePodsViolatingNodeTaints eklentisini etkinleştirir ve deschedule=not-allow taint'ini hariç tutar.

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # Do not modify the following system configuration of koord-desheduler.
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    deschedulingInterval: 120s # The interval at which the descheduler runs. Set to 120 seconds here.
    dryRun: false # The global read-only mode. After you enable this mode, koord-descheduler does not perform any operations.
    # The preceding configuration is the system configuration.

    profiles:
    - name: koord-descheduler
      plugins:
        deschedule:
          enabled:
            - name: RemovePodsViolatingNodeTaints  # Enable the node taint verification plug-in.

      pluginConfig:
      - name: RemovePodsViolatingNodeTaints # Configure the node taint verification plug-in.
        args:
          excludedTaints:
          - deschedule=not-allow # Ignore nodes whose taint key is deschedule and taint value is not-allow.

      # Required for RemovePodsViolatingNodeTaints to take effect. Do not remove.
      - name: MigrationController # Configure the migration controller.
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly

RemovePodsViolatingNodeTaints parametreleri:

Parametre Tür Varsayılan Açıklama
excludedTaints list(string) — Yoksayılacak taint anahtarları veya key=value çiftleri. Bu taint'lere sahip düğümlerdeki pod'lar tahliye edilmez.
includePreferNoSchedule bool false true olduğunda yalnızca NoSchedule değil, PreferNoSchedule etkili taint'leri de denetler.
namespaces.include list(string) — Descheduling işlemini belirli ad alanlarıyla sınırlar. namespaces.exclude ile birlikte kullanılamaz.
namespaces.exclude list(string) — Belirli ad alanlarında descheduling işlemini atlar. namespaces.include ile birlikte kullanılamaz.
labelSelector map — Descheduling işlemini belirtilen etiketlerle eşleşen pod'larla sınırlar.

Yapılandırmayı uygulayın

  1. ConfigMap'i kümeye uygulayın:

    kubectl apply -f koord-descheduler-config.yaml
  2. Yeni yapılandırmayı yüklemek için Koordinator Descheduler'ı yeniden başlatın:

    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

3. Adım: Descheduling'i doğrulayın

Bu örnekte üç düğümlü bir küme kullanılmaktadır.

  1. stress-demo.yaml adlı bir dosya oluşturun:

    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. Test iş yükünü dağıtın:

    kubectl create -f stress-demo.yaml
  3. Pod'ların Running durumuna gelmesini bekleyin:

    kubectl get pod -o wide

    Beklenen çıktı:

    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. İki düğüme NoSchedule taint'leri ekleyin:

    • cn-beijing.192.XX.XX.247 düğümüne deschedule=not-allow:NoSchedule taint'ini ekleyin (excludedTaints tarafından hariç tutulur — pod kalmalıdır):

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

      Beklenen çıktı:

      node/cn-beijing.192.XX.XX.247 tainted
    • cn-beijing.192.XX.XX.248 düğümüne deschedule=allow:NoSchedule taint'ini ekleyin (hariç tutulmaz — pod tahliye edilmelidir):

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

      Beklenen çıktı:

      node/cn-beijing.192.XX.XX.248 tainted
  5. Pod değişikliklerini izleyin. Descheduler, taint'leri her deschedulingInterval (120 saniye) aralıkla denetler:

    kubectl get pod -o wide -w

    Beklenen çıktı:

    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>

    Çıktı şunları doğrular:

    • cn-beijing.192.XX.XX.248 düğümündeki pod (taint: deschedule=allow:NoSchedule, hariç tutulmamış) tahliye edilir.

    • cn-beijing.192.XX.XX.247 düğümündeki pod (taint: deschedule=not-allow:NoSchedule, hariç tutulmuş) çalışmaya devam eder.

    • Tahliye edilen pod, NoSchedule taint'i olmayan cn-beijing.192.XX.XX.249 düğümüne yeniden zamanlanır.

  6. Tahliye edilen pod için tahliye olaylarını kontrol edin:

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

    Beklenen çıktı:

    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

    Her olay bir taşıma yaşam döngüsü aşamasına karşılık gelir:

    Olay Kaynak Anlamı
    Evicting PodMigrationJob Descheduler, pod'u tahliye etmek için bir taşıma işi başlattı.
    Descheduled Pod Pod, tahliye sinyalini aldı.
    Killing Pod Konteyner çalışma zamanı konteyneri durduruyor.
    EvictComplete PodMigrationJob Pod tamamen tahliye edildi. İş yükü denetleyicisi onu yeniden oluşturur.

    cn-beijing.192.XX.XX.248 düğümündeki pod, excludedTaints listesinde olmayan deschedule=allow:NoSchedule taint'i için tolerans içermediğinden tahliye edilmiştir.

Gelişmiş parametreleri yapılandırın

Genel davranışı ve şablon ayarlarını bir ConfigMap ile yapılandırın.

Gelişmiş yapılandırma örneği

Bu ConfigMap, genel ayarlar için DeschedulerConfiguration kullanır, descheduling ilkesi olarak RemovePodsViolatingNodeTaints eklentisini etkinleştirir ve tahliye edici olarak MigrationController kullanır.

# koord-descheduler-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: koord-descheduler-config
  namespace: kube-system
data:
  koord-descheduler-config: |
    # Do not modify the following system configuration of koord-desheduler.
    apiVersion: descheduler/v1alpha2
    kind: DeschedulerConfiguration
    leaderElection:
      resourceLock: leases
      resourceName: koord-descheduler
      resourceNamespace: kube-system
    dryRun: false # The global read-only mode. After you enable this mode, koord-descheduler does not perform any operations.
    deschedulingInterval: 120s # The interval at which the descheduler runs. The interval is set to 120 seconds in this example.
    nodeSelector: # The nodes that are involved in descheduling. By default, all nodes are descheduled.
      matchLabels:
        alibabacloud.com/nodepool-id: nodepool-1 # Configure it based on your requirements.
    maxNoOfPodsToEvictPerNode: 10 # The maximum number of pods that can be evicted from a node. The limit takes effect on a global scale. By default, no limit is configured.
    maxNoOfPodsToEvictPerNamespace: 10 # The maximum number of pods that can be evicted from a namespace. The limit takes effect on a global scale. By default, no limit is configured.
    # The preceding configuration is the system configuration.

    # The template list.
    profiles:
    - name: koord-descheduler # The name of the template.

      # Scope: apply this template only to the specified nodes.
      # Method 1: Select nodes in one node pool.
      nodeSelector:
        matchLabels:
          alibabacloud.com/nodepool-id: nodepool-1 # Configure it based on your requirements
      # Method 2: Select nodes in multiple node pools.
      # nodeSelector:
      #   matchExpressions:
      #   - key: alibabacloud.com/nodepool-id
      #     operator: In
      #     values:
      #     - nodepool-1
      #     - nodepool-2

      plugins:
        deschedule: # All plug-ins are disabled by default. Specify the ones to enable.
          enabled:
            - name: RemovePodsViolatingNodeTaints  # Enable the node taint verification plug-in.
        balance: # All plug-ins are disabled by default.
          disabled:
            - name: "*" # Disable all Balance plug-ins.
        evict:
          enabled:
            - name: MigrationController # MigrationController is enabled by default.
        filter:
          enabled:
            - name: MigrationController # Use MigrationController's filtering policy by default.

      pluginConfig:
      - name: RemovePodsViolatingNodeTaints
        args:
          excludedTaints:
          - deschedule=not-allow # Ignore nodes whose taint key is deschedule and taint value is not-allow.
          - reserved # Ignore nodes whose taint key is reserved.
          includePreferNoSchedule: false # When false, only checks NoSchedule taints.
          namespaces:
            include: # Restrict descheduling to these namespaces.
              - "namespace1"
              - "namespace2"
            # exclude: # Alternatively, exclude these namespaces.
            #   - "namespace1"
            #   - "namespace2"
          labelSelector: # Only deschedule pods matching these labels.
            accelerator: nvidia-tesla-p100

      - name: MigrationController
        args:
          apiVersion: descheduler/v1alpha2
          kind: MigrationControllerArgs
          defaultJobMode: EvictDirectly
          evictLocalStoragePods: false # When false, pods using emptyDir or hostPath are not descheduled.
          maxMigratingPerNode: 1 # Maximum pods migrated simultaneously on a node.
          maxMigratingPerNamespace: 1  # Maximum pods migrated simultaneously in a namespace.
          maxMigratingPerWorkload: 1 # Maximum pods migrated simultaneously in a workload.
          maxUnavailablePerWorkload: 2 # Maximum unavailable replicated pods allowed in a workload.
          objectLimiters:
            workload: # Throttle workload-level migration. Default: only 1 pod per workload within 5 minutes.
              duration: 5m
              maxMigrating: 1
          evictionPolicy: Eviction # Use the Eviction API by default.

Sistem yapılandırmaları

DeschedulerConfiguration içinde genel, sistem düzeyindeki davranışı yapılandırın.

Parametre Tür Geçerli değer Açıklama Örnek
dryRun boolean true / false (varsayılan: false) Salt okunur mod. Etkinleştirildiğinde hiçbir pod taşınmaz. false
deschedulingInterval time.Duration >0s Descheduler'ın ne sıklıkla çalıştığı. 120s
nodeSelector Structure — Descheduling için uygun olan düğümleri sınırlar. matchLabels (tek düğüm havuzu) veya matchExpressions (birden çok düğüm havuzu) kabul eder. Bkz. Kubernetes labelSelector. Yukarıdaki örnek YAML'ye bakın
maxNoOfPodsToEvictPerNode int ≥0 (varsayılan: 0) Her descheduling döngüsünde tek bir düğümden tahliye edilebilecek maksimum pod sayısı. 0, sınır yok anlamına gelir. 10
maxNoOfPodsToEvictPerNamespace int ≥0 (varsayılan: 0) Her descheduling döngüsünde tek bir ad alanından tahliye edilebilecek maksimum pod sayısı. 0, sınır yok anlamına gelir. 10

Şablon yapılandırmaları

Her şablon (profiles), aşağıdaki alanlarla descheduling ilkelerini ve tahliye edicileri gruplar:

  • name: Şablon tanımlayıcısı.

  • plugins: Descheduling ilkelerini (deschedule, balance), tahliye edicileri (evict) ve tahliye öncesi filtreleri (filter) etkinleştirir veya devre dışı bırakır.

  • pluginConfig: Eklenti başına bağımsız değişkenler. name alanını eklenti adıyla eşleştirin ve args alanını yapılandırın. Bkz. İlke eklentilerini yapılandırma ve Tahliye edici eklentilerini yapılandırma.

  • nodeSelector: Şablonu belirli düğümlerle sınırlar. Ayarlanmazsa tüm düğümlere uygulanır.

Şablon düzeyindeki nodeSelector için ack-koordinator v1.6.1-ack.1.16 veya sonraki bir sürüm gerekir.

plugins alanı referansı:

Alan Desteklenen eklentiler Açıklama
deschedule RemovePodsViolatingNodeTaints, RemovePodsViolatingInterPodAntiAffinity, RemovePodsViolatingNodeAffinity, RemovePodsHavingTooManyRestarts, PodLifeTime, RemoveFailedPod Tümü varsayılan olarak devre dışıdır. Etkinleştirmek istediğiniz eklentileri belirtin.
balance RemoveDuplicates, LowNodeUtilization, HighNodeUtilization, RemovePodsViolatingTopologySpreadConstraint, LowNodeLoad Tümü varsayılan olarak devre dışıdır. Etkinleştirmek istediğiniz eklentileri belirtin.
evict MigrationController, DefaultEvictor Pod tahliye edicisi. MigrationController varsayılan olarak etkindir. Birden fazla evict eklentisini aynı anda etkinleştirmeyin.
filter MigrationController, DefaultEvictor Tahliye öncesi filtreleme ilkesi. MigrationController varsayılan olarak etkindir. Birden fazla filter eklentisini aynı anda etkinleştirmeyin.

İlke eklentilerini yapılandırın

Koordinator Descheduler, Kubernetes Descheduler'dan altı Deschedule ve beş Balance eklentisini destekler. LowNodeLoad Koordinator tarafından sağlanır. Bkz. Yük bilinçli hotspot descheduling ile çalışma.

İlke türü Eklenti Açıklama
Deschedule RemovePodsViolatingInterPodAntiAffinity Podlar arası anti-yakınlık kurallarını ihlal eden pod'ları tahliye eder.
Deschedule RemovePodsViolatingNodeAffinity Artık düğüm yakınlığı kurallarını karşılamayan pod'ları tahliye eder.
Deschedule RemovePodsViolatingNodeTaints Düğüm taint'lerine tolerans gösteremeyen pod'ları tahliye eder.
Deschedule RemovePodsHavingTooManyRestarts Çok sık yeniden başlayan pod'ları tahliye eder.
Deschedule PodLifeTime Yaşam süresi (TTL) dolan pod'ları tahliye eder.
Deschedule RemoveFailedPod Başarısız (Failed) durumdaki pod'ları tahliye eder.
Balance RemoveDuplicates Çoğaltılmış pod'ları düğümler arasında eşit şekilde yayar.
Balance LowNodeUtilization Pod'ları düğüm kaynak tahsisine göre yeniden dağıtır.
Balance HighNodeUtilization Az kullanılan düğümlerden pod'ları daha yoğun kullanılan düğümlere konsolide eder.
Balance RemovePodsViolatingTopologySpreadConstraint Topoloji yayılım kısıtlamalarını ihlal eden pod'ları tahliye eder.

Tahliye edici eklentilerini yapılandırın

Koordinator Descheduler iki tahliye edici eklentiyi destekler: DefaultEvictor ve MigrationController.

MigrationController

MigrationController taşıma işleri aracılığıyla ayrıntılı tahliye kontrolü ve gözlemlenebilirlik sağlar.

Parametre Tür Geçerli değer Açıklama Örnek
evictLocalStoragePods boolean true / false (varsayılan: false) false olduğunda emptyDir veya hostPath kullanan pod'lar descheduling kapsamına alınmaz. false
maxMigratingPerNode int64 ≥0 (varsayılan: 2) Bir düğümde aynı anda taşınabilecek maksimum pod sayısı. 0, sınır yok anlamına gelir. 2
maxMigratingPerNamespace int64 ≥0 (varsayılan: 0) Bir ad alanında aynı anda taşınabilecek maksimum pod sayısı. 0, sınır yok anlamına gelir. 1
maxMigratingPerWorkload intOrString ≥0 (varsayılan: %10) Bir iş yükünde aynı anda taşınabilecek maksimum pod sayısı veya yüzdesi. 0, sınır yok anlamına gelir. Bir iş yükünde yalnızca bir pod varsa descheduling dışında bırakılır. 1 veya %10
maxUnavailablePerWorkload intOrString ≥0 ve çoğaltma sayısından küçük (varsayılan: %10) Bir iş yükünde izin verilen maksimum kullanılamayan çoğaltılmış pod sayısı. 0, sınır yok anlamına gelir. 1 veya %10
objectLimiters.workload Structure Duration >0 (varsayılan: 5m); MaxMigrating ≥0 (varsayılan: %10) Belirli bir zaman penceresi içinde iş yükü düzeyindeki taşımayı kısıtlar. Duration pencere uzunluğunu belirler. MaxMigrating bu pencere içinde taşınabilecek maksimum pod sayısını belirler. duration: 5mmaxMigrating: 1
evictionPolicy string Eviction (varsayılan), Delete, Soft Pod'ların nasıl tahliye edileceğini kontrol eder. Eviction: Zarif tahliye için Eviction API'sini çağırır. Delete: Delete API'sini çağırır. Soft: Özel downstream işleme için scheduling.koordinator.sh/soft-eviction açıklamasını ekler. Eviction

DefaultEvictor

DefaultEvictor standart Kubernetes Descheduler tahliye edicisidir. Yapılandırma için bkz. DefaultEvictor.

MigrationController ile DefaultEvictor karşılaştırması

Yetenek DefaultEvictor MigrationController
Tahliye yöntemleri Yalnızca Eviction API Eviction API, Delete API veya Soft açıklaması
Düğüm başına tahliye limiti Desteklenir Desteklenir
Ad alanı başına tahliye limiti Desteklenir Desteklenir
İş yükü başına tahliye limiti Desteklenmez Desteklenir
İş yükü başına kullanılamazlık limiti Desteklenmez Desteklenir
Tahliye kısıtlaması Desteklenmez İş yükü başına zaman penceresi tabanlı kısıtlama
Tahliye gözlemlenebilirliği Yalnızca bileşen günlükleri Bileşen günlükleri ve pod başına taşıma durumu içeren Kubernetes olayları

Sonraki adımlar