Bagikan melalui


Penempatan sumber daya Kubernetes dari kluster hub ke kluster anggota

Artikel ini menjelaskan konsep penempatan sumber daya Kubernetes dari kluster hub ke kluster anggota menggunakan Azure Kubernetes Fleet Manager.

Admin platform sering kali perlu menyebarkan sumber daya Kubernetes ke beberapa kluster karena berbagai alasan, misalnya:

  • Mengelola kontrol akses menggunakan peran dan pengikatan peran di beberapa kluster.
  • Menjalankan aplikasi infrastruktur, seperti Prometheus atau Flux, yang perlu ada di semua kluster.

Pengembang aplikasi sering kali perlu menyebarkan sumber daya Kubernetes ke beberapa kluster karena berbagai alasan, misalnya:

  • Menyebarkan aplikasi penyajian video ke dalam beberapa kluster di berbagai wilayah untuk pengalaman menonton latensi rendah.
  • Menyebarkan aplikasi kelir belanja ke dua wilayah berpasangan bagi pelanggan untuk terus berbelanja selama pemadaman satu wilayah.
  • Menyebarkan aplikasi komputasi batch ke dalam kluster dengan kumpulan simpul spot murah yang tersedia.

Sangat melelahkan untuk membuat, memperbarui, dan melacak sumber daya Kubernetes ini di beberapa kluster secara manual. Fleet Manager menyediakan penyebaran sumber daya Kubernetes untuk mengaktifkan manajemen sumber daya Kubernetes dalam skala besar. Dengan Fleet Manager, Anda dapat membuat sumber daya Kubernetes pada kluster hub yang dikelola Armada dan menyebarkannya ke kluster anggota yang dipilih melalui Sumber Daya Kustom Kubernetes: MemberCluster dan ClusterResourcePlacement.

Fleet Manager mendukung sumber daya kustom ini berdasarkan solusi KubeFleet sumber terbuka yang dapat Anda baca lebih lanjut di situs dokumentasi KubeFleet.

Memperkenalkan ClusterResourcePlacement

Objek ClusterResourcePlacement digunakan untuk memberi tahu penjadwal armada cara menempatkan sekumpulan objek cakupan kluster tertentu dari kluster hub armada ke kluster anggota. Objek yang dicakup namespace seperti Deployments, StatefulSets, DaemonSets, ConfigMaps, Secrets, dan PersistentVolumeClaims disertakan saat namespace yang berisi dipilih.

Dengan ClusterResourcePlacement, Anda dapat:

  • Pilih sumber daya mana yang akan disebarluaskan. Ini dapat berupa sumber daya Kubernetes yang berlingkup kluster yang ditentukan menggunakan referensi Jenis Versi Grup Kubernetes (GVK), atau namespace yang akan menyebarkan namespace dan semua sumber dayanya.
  • Tentukan kebijakan penempatan untuk memilih kluster anggota. Kebijakan ini dapat secara eksplisit memilih kluster berdasarkan nama, atau secara dinamis memilih kluster berdasarkan label dan properti kluster.
  • Tentukan strategi peluncuran untuk meluncurkan pembaruan sumber daya Kubernetes yang dipilih dengan aman ke beberapa kluster target.
  • Lihat kemajuan propagasi untuk setiap kluster target.

Contoh diperlihatkan dalam diagram berikut.

Diagram yang menunjukkan bagaimana sumber daya Kubernetes disebarluaskan ke kluster anggota.

Merangkum sumber daya

ClusterResourcePlacement mendukung penggunaan ConfigMap untuk amplop jenis sumber daya Kubernetes tertentu sehingga dapat dipentaskan pada kluster hub tanpa efek samping yang tidak diinginkan pada kluster hub. Untuk daftar jenis sumber daya dan untuk memahami cara kerja fitur ini, lihat dokumentasi objek amplop KubeFleet.

Jenis penempatan

Jenis penempatan berikut tersedia untuk mengontrol jumlah kluster tempat sumber daya Kubernetes tertentu perlu disebarluaskan:

  • PickFixed menempatkan sumber daya ke daftar kluster anggota tertentu berdasarkan nama.
  • PickAll menempatkan sumber daya ke semua kluster anggota, atau semua kluster anggota yang memenuhi kriteria. Kebijakan ini berguna untuk menempatkan beban kerja infrastruktur, seperti aplikasi pemantauan atau pelaporan kluster.
  • PickN adalah opsi penempatan yang paling fleksibel dan memungkinkan pemilihan kluster berdasarkan batasan penyebaran afinitas atau topologi dan berguna saat menyebarkan beban kerja di beberapa kluster yang sesuai untuk memastikan ketersediaan diinginkan.

Jenis penempatan PickFixed

Jika Anda ingin menyebarkan beban kerja ke sekumpulan kluster anggota yang PickFixed diketahui, Anda dapat menggunakan kebijakan penempatan untuk memilih kluster berdasarkan nama.

clusterNames adalah satu-satunya opsi kebijakan yang valid untuk jenis penempatan ini.

Contoh berikut menunjukkan cara menyebarkan test-deployment namespace layanan ke kluster cluster1 anggota dan cluster2.

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp-fixed
spec:
  policy:
    placementType: PickFixed
    clusterNames:
    - cluster1
    - cluster2
  resourceSelectors:
    - group: ""
      kind: Namespace
      name: test-deployment
      version: v1

Jenis penempatan PickAll

Anda dapat menggunakan PickAll jenis penempatan untuk menyebarkan beban kerja di semua kluster anggota dalam armada atau ke subset kluster yang cocok dengan kriteria yang Anda tetapkan.

Saat membuat jenis penempatan ini, jenis afinitas kluster berikut dapat ditentukan:

  • requiredDuringSchedulingIgnoredDuringExecution: karena kebijakan ini diperlukan selama penjadwalan, kebijakan ini memfilter kluster berdasarkan kriteria yang ditentukan.

Contoh berikut menunjukkan cara menyebarkan prod-deployment namespace layanan dan semua objeknya di semua kluster berlabel :environment: production

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp-pickall
spec:
  policy:
    placementType: PickAll
    affinity:
        clusterAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
                clusterSelectorTerms:
                - labelSelector:
                    matchLabels:
                        environment: production
  resourceSelectors:
    - group: ""
      kind: Namespace
      name: prod-deployment
      version: v1

Jenis penempatan PickN

Jenis PickN penempatan adalah opsi yang paling fleksibel dan memungkinkan penempatan sumber daya ke dalam jumlah kluster yang dapat dikonfigurasi berdasarkan batasan penyebaran afinitas dan topologi.

Saat membuat jenis penempatan ini, jenis afinitas kluster berikut dapat ditentukan:

  • requiredDuringSchedulingIgnoredDuringExecution: karena kebijakan ini diperlukan selama penjadwalan, kebijakan ini memfilter kluster berdasarkan kriteria yang ditentukan.
  • preferredDuringSchedulingIgnoredDuringExecution: karena kebijakan ini lebih disukai, tetapi tidak diperlukan selama penjadwalan, kebijakan ini memberi peringkat kluster berdasarkan kriteria yang ditentukan.

Anda dapat mengatur afinitas yang diperlukan dan lebih disukai. Afinitas yang diperlukan mencegah penempatan ke kluster yang tidak cocok, dan afinitas pilihan menyediakan pengurutan kluster yang valid.

PickN dengan afinitas

Menggunakan afinitas dengan PickN fungsi kebijakan penempatan yang mirip dengan menggunakan afinitas dengan penjadwalan pod.

Contoh berikut menunjukkan cara menyebarkan beban kerja ke tiga kluster. Hanya kluster dengan critical-allowed: "true" label yang merupakan target penempatan yang valid, dan preferensi diberikan kepada kluster dengan label critical-level: 1:

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp-pickn-01
spec:
  resourceSelectors:
    - ...
  policy:
    placementType: PickN
    numberOfClusters: 3
    affinity:
        clusterAffinity:
            preferredDuringSchedulingIgnoredDuringExecution:
              weight: 20
              preference:
              - labelSelector:
                  matchLabels:
                    critical-level: 1
            requiredDuringSchedulingIgnoredDuringExecution:
                clusterSelectorTerms:
                - labelSelector:
                    matchLabels:
                      critical-allowed: "true"

PickN dengan batasan penyebaran topologi

Anda dapat menggunakan batasan penyebaran topologi untuk memaksa pembagian penempatan kluster di seluruh batas topologi untuk memenuhi persyaratan ketersediaan. Misalnya, gunakan batasan ini untuk membagi penempatan di seluruh wilayah atau memperbarui cincin. Anda juga dapat mengonfigurasi batasan penyebaran topologi untuk mencegah penjadwalan jika batasan tidak dapat dipenuhi (whenUnsatisfiable: DoNotSchedule) atau menjadwalkan sebaik mungkin (whenUnsatisfiable: ScheduleAnyway).

Contoh berikut menunjukkan cara menyebarkan sekumpulan sumber daya tertentu di beberapa wilayah dan mencoba menjadwalkan di seluruh kluster anggota dengan hari pembaruan yang berbeda.

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp-pickn-02
spec:
  resourceSelectors:
    - ...
  policy:
    placementType: PickN
    topologySpreadConstraints:
    - maxSkew: 2
      topologyKey: region
      whenUnsatisfiable: DoNotSchedule
    - maxSkew: 2
      topologyKey: updateDay
      whenUnsatisfiable: ScheduleAnyway

Untuk informasi selengkapnya, lihat dokumentasi KubeFleet tentang batasan penyebaran topologi.

Opsi kebijakan penempatan

Tabel ini meringkas bidang kebijakan penjadwalan yang tersedia untuk setiap jenis penempatan.

Bidang Kebijakan PickFixed PilihSemua PickN
placementType
affinity
clusterNames
numberOfClusters
topologySpreadConstraints

Memilih kluster berdasarkan label dan properti

Label dan properti yang tersedia untuk memilih kluster

Saat menggunakan PickN jenis penempatan dan PickAll , Anda dapat menggunakan label dan properti berikut sebagai bagian dari kebijakan Anda.

Label

Label berikut secara otomatis ditambahkan ke semua kluster anggota dan dapat digunakan untuk pemilihan kluster target dalam kebijakan penempatan sumber daya.

Etiket Deskripsi
fleet.azure.com/location Wilayah Azure kluster (westus)
fleet.azure.com/resource-group Grup Sumber Daya Azure dari kluster (rg_prodapps_01)
fleet.azure.com/subscription-id Pengidentifikasi Langganan Azure tempat kluster berada. Diformat sebagai UUID/GUID.

Anda juga dapat menggunakan label kustom apa pun yang Anda terapkan ke kluster Anda.

Properti

Properti berikut ini tersedia untuk digunakan sebagai bagian dari kebijakan penempatan.

Properti CPU dan memori direpresentasikan sebagai unit sumber daya Kubernetes.

Properti biaya adalah desimal yang mewakili biaya per jam dalam Dolar AS untuk komputasi Azure yang digunakan untuk simpul dalam kluster. Biaya didasarkan pada harga publik Azure.

Nama Properti Deskripsi
kubernetes-fleet.io/node-count Simpul yang tersedia pada kluster anggota.
resources.kubernetes-fleet.io/total-cpu Total unit sumber daya CPU kluster.
resources.kubernetes-fleet.io/allocatable-cpu Unit sumber daya CPU kluster yang dapat dialokasi.
resources.kubernetes-fleet.io/available-cpu Unit sumber daya CPU kluster yang tersedia.
resources.kubernetes-fleet.io/total-memory Total unit sumber daya memori kluster.
resources.kubernetes-fleet.io/memori-yang-dapat-dialokasikan Unit sumber daya memori kluster yang dapat dialokasi.
resources.kubernetes-fleet.io/available-memory Unit sumber daya memori kluster yang tersedia.
kubernetes.azure.com/biaya-per-inti-cpu Biaya inti per CPU kluster.
kubernetes.azure.com/per-gb-memory-cost Biaya memori per GiB kluster.

Menentukan kriteria pencocokan pilihan

Saat menggunakan properti kluster dalam kriteria kebijakan, Anda menentukan:

  • Nama: Nama properti, yang merupakan salah satu properti yang tercantum dalam properti dalam artikel ini.

  • Operator: Operator yang digunakan untuk mengekspresikan kondisi antara nilai batasan/yang diinginkan dan nilai yang diamati pada kluster. Operator berikut saat ini didukung:

    • Gt (Lebih besar dari): nilai kluster yang diamati dari properti yang diberikan harus lebih besar dari nilai dalam kondisi sebelum dapat dipilih untuk penempatan sumber daya.
    • Ge (Lebih besar dari atau sama dengan): nilai kluster yang diamati dari properti yang diberikan harus lebih besar dari atau sama dengan nilai dalam kondisi sebelum dapat dipilih untuk penempatan sumber daya.
    • Lt (Kurang dari): nilai kluster yang diamati dari properti yang diberikan harus kurang dari nilai dalam kondisi sebelum dapat dipilih untuk penempatan sumber daya.
    • Le (Kurang dari atau sama dengan): nilai kluster yang diamati dari properti yang diberikan harus kurang dari atau sama dengan nilai dalam kondisi sebelum dapat dipilih untuk penempatan sumber daya.
    • Eq (Sama dengan): nilai kluster yang diamati dari properti yang diberikan harus sama dengan nilai dalam kondisi sebelum dapat dipilih untuk penempatan sumber daya.
    • Ne (Tidak sama dengan): nilai kluster yang diamati dari properti yang diberikan harus tidak sama dengan nilai dalam kondisi sebelum dapat dipilih untuk penempatan sumber daya.

    Jika Anda menggunakan operator Gt, , Ge, LtLe, Eq, atau Ne, daftar nilai dalam kondisi harus memiliki satu nilai.

  • Nilai: Daftar nilai, yang merupakan nilai properti yang mungkin.

Armada mengevaluasi setiap kluster berdasarkan properti yang ditentukan dalam kondisi. Kegagalan untuk memenuhi kondisi yang tercantum di bawah requiredDuringSchedulingIgnoredDuringExecution mengecualikan kluster anggota ini dari penempatan sumber daya.

Catatan

Jika kluster anggota tidak memiliki properti yang dinyatakan dalam kondisi, kluster tersebut akan secara otomatis gagal dalam kondisi tersebut.

Berikut adalah contoh kebijakan penempatan untuk memilih hanya kluster dengan lima node atau lebih.

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp
spec:
  resourceSelectors:
    - ...
  policy:
    placementType: PickAll
    affinity:
        clusterAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
                clusterSelectorTerms:
                - propertySelector:
                    matchExpressions:
                    - name: "kubernetes-fleet.io/node-count"
                      operator: Ge
                      values:
                      - "5"

Cara kerja peringkat properti

Saat preferredDuringSchedulingIgnoredDuringExecution digunakan, pengurut properti memberi peringkat semua kluster dalam armada berdasarkan nilainya dalam urutan naik atau turun. Bobot yang digunakan untuk pemesanan dihitung berdasarkan nilai yang ditentukan.

Pengurut properti terdiri dari:

  • Nama: Nama properti kluster.
  • Urutan pengurutan: Urutan pengurutan bisa berupa Ascending atau Descending. Ketika Ascending urutan digunakan, kluster anggota dengan nilai yang diamati lebih rendah lebih disukai. Ketika Descending pesanan digunakan, kluster anggota dengan nilai yang diamati lebih tinggi lebih disukai.
Urutan turun

Untuk urutan pengurutan Menurun, bobot proporsional dihitung menggunakan rumus:

((Observed Value - Minimum observed value) / (Maximum observed value - Minimum observed value)) * Weight

Misalnya, Anda ingin memberi peringkat kluster berdasarkan properti kapasitas CPU yang tersedia dalam urutan turun dan Anda memiliki armada tiga kluster dengan CPU yang tersedia berikut:

Kluster Kapasitas CPU yang tersedia
cluster-a 100
cluster-b 20
cluster-c 10

Dalam hal ini, pengurut menghitung bobot berikut:

Kluster Kapasitas CPU yang tersedia Penghitungan Beban
cluster-a 100 (100 - 10) / (100 - 10) 100%
cluster-b 20 (20 - 10) / (100 - 10) 11.11%
cluster-c 10 (10 - 10) / (100 - 10) 0%
Urutan naik

Untuk urutan pengurutan Naik, bobot proporsional dihitung menggunakan rumus:

(1 - ((Observed Value - Minimum observed value) / (Maximum observed value - Minimum observed value))) * Weight

Misalnya, Anda ingin memberi peringkat kluster berdasarkan biaya per CPU-core mereka dalam urutan naik dan Bahwa Anda memiliki armada tiga kluster dengan biaya inti CPU berikut:

Kluster Biaya inti per CPU
cluster-a 1
cluster-b 0,2
cluster-c 0.1

Dalam hal ini, pengurut menghitung bobot berikut:

Kluster Biaya inti per CPU Penghitungan Beban
cluster-a 1 1 - ((1 - 0.1) / (1 - 0.1)) 0%
cluster-b 0,2 1 - ((0.2 - 0.1) / (1 - 0.1)) 88,89%
cluster-c 0.1 1 - (0.1 - 0.1) / (1 - 0.1) 100%

Rekam jepret sumber daya

Manajer Armada menyimpan riwayat 10 kebijakan penjadwalan penempatan yang terakhir digunakan, bersama dengan versi sumber daya yang telah dipilih penempatan.

Rekam jepret ini dapat digunakan dengan strategi peluncuran bertahap untuk mengontrol versi yang disebarkan.

Untuk informasi selengkapnya, lihat dokumentasi tentang rekam jepret.

Menggunakan Tolerations

ClusterResourcePlacement objek mendukung spesifikasi toleransi, yang berlaku untuk ClusterResourcePlacement objek. Setiap objek toleransi terdiri dari bidang berikut:

  • key: Kunci toleransi.
  • value: Nilai toleransi.
  • effect: Efek toleransi, seperti NoSchedule.
  • operator: Operator toleransi, seperti Exists atau Equal.

Setiap toleransi digunakan untuk mentolerir satu atau beberapa taint tertentu yang diterapkan pada ClusterResourcePlacement. Setelah semua taint pada ditoleransi MemberCluster , penjadwal kemudian dapat menyebarkan sumber daya ke kluster. Anda tidak dapat memperbarui atau menghapus toleransi dari ClusterResourcePlacement objek setelah dibuat.

Untuk informasi selengkapnya, lihat dokumentasi tentang toleransi.

Mengonfigurasi strategi peluncuran

Armada menggunakan strategi pembaruan bergulir untuk mengontrol bagaimana pembaruan diluncurkan di seluruh kluster.

Dalam contoh berikut, penjadwal armada meluncurkan pembaruan untuk setiap kluster secara berurutan, menunggu setidaknya unavailablePeriodSeconds di antara kluster. Status peluncuran dianggap berhasil jika semua sumber daya diterapkan dengan benar ke kluster. Pemeriksaan status peluncuran tidak berkade ke sumber daya anak, jadi misalnya, tidak mengonfirmasi bahwa pod yang dibuat oleh penyebaran menjadi siap.

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp
spec:
  resourceSelectors:
    - ...
  policy:
    ...
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
      unavailablePeriodSeconds: 60

Untuk informasi selengkapnya, lihat dokumentasi tentang strategi peluncuran.

Menentukan status penempatan

Penjadwal Armada memperbarui detail dan status pada keputusan penempatan ke ClusterResourcePlacement objek. Output mencakup informasi berikut:

  • Kondisi yang saat ini berlaku untuk penempatan, yang mencakup apakah penempatan berhasil diselesaikan.
  • Bagian status penempatan untuk setiap kluster anggota, yang menunjukkan status penyebaran ke kluster tersebut.

Contoh berikut menunjukkan ClusterResourcePlacement bahwa menyebarkan test namespace layanan dan test-1 ConfigMap ke dalam dua kluster anggota menggunakan PickN. Penempatan berhasil diselesaikan dan sumber daya ditempatkan ke aks-member-1 dalam kluster dan aks-member-2 .

Anda dapat melihat informasi ini menggunakan kubectl describe crp <name> perintah .

kubectl describe crp crp-1
Name:         crp-1
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  placement.kubernetes-fleet.io/v1
Kind:         ClusterResourcePlacement
Metadata:
  ...
Spec:
  Policy:
    Number Of Clusters:  2
    Placement Type:      PickN
  Resource Selectors:
    Group:
    Kind:                  Namespace
    Name:                  test
    Version:               v1
  Revision History Limit:  10
Status:
  Conditions:
    Last Transition Time:  2023-11-10T08:14:52Z
    Message:               found all the clusters needed as specified by the scheduling policy
    Observed Generation:   5
    Reason:                SchedulingPolicyFulfilled
    Status:                True
    Type:                  ClusterResourcePlacementScheduled
    Last Transition Time:  2023-11-10T08:23:43Z
    Message:               All 2 cluster(s) are synchronized to the latest resources on the hub cluster
    Observed Generation:   5
    Reason:                SynchronizeSucceeded
    Status:                True
    Type:                  ClusterResourcePlacementSynchronized
    Last Transition Time:  2023-11-10T08:23:43Z
    Message:               Successfully applied resources to 2 member clusters
    Observed Generation:   5
    Reason:                ApplySucceeded
    Status:                True
    Type:                  ClusterResourcePlacementApplied
  Placement Statuses:
    Cluster Name:  aks-member-1
    Conditions:
      Last Transition Time:  2023-11-10T08:14:52Z
      Message:               Successfully scheduled resources for placement in aks-member-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy
      Observed Generation:   5
      Reason:                ScheduleSucceeded
      Status:                True
      Type:                  ResourceScheduled
      Last Transition Time:  2023-11-10T08:23:43Z
      Message:               Successfully Synchronized work(s) for placement
      Observed Generation:   5
      Reason:                WorkSynchronizeSucceeded
      Status:                True
      Type:                  WorkSynchronized
      Last Transition Time:  2023-11-10T08:23:43Z
      Message:               Successfully applied resources
      Observed Generation:   5
      Reason:                ApplySucceeded
      Status:                True
      Type:                  ResourceApplied
    Cluster Name:            aks-member-2
    Conditions:
      Last Transition Time:  2023-11-10T08:14:52Z
      Message:               Successfully scheduled resources for placement in aks-member-2 (affinity score: 0, topology spread score: 0): picked by scheduling policy
      Observed Generation:   5
      Reason:                ScheduleSucceeded
      Status:                True
      Type:                  ResourceScheduled
      Last Transition Time:  2023-11-10T08:23:43Z
      Message:               Successfully Synchronized work(s) for placement
      Observed Generation:   5
      Reason:                WorkSynchronizeSucceeded
      Status:                True
      Type:                  WorkSynchronized
      Last Transition Time:  2023-11-10T08:23:43Z
      Message:               Successfully applied resources
      Observed Generation:   5
      Reason:                ApplySucceeded
      Status:                True
      Type:                  ResourceApplied
  Selected Resources:
    Kind:       Namespace
    Name:       test
    Version:    v1
    Kind:       ConfigMap
    Name:       test-1
    Namespace:  test
    Version:    v1
Events:
  Type    Reason                     Age                    From                                   Message
  ----    ------                     ----                   ----                                   -------
  Normal  PlacementScheduleSuccess   12m (x5 over 3d22h)    cluster-resource-placement-controller  Successfully scheduled the placement
  Normal  PlacementSyncSuccess       3m28s (x7 over 3d22h)  cluster-resource-placement-controller  Successfully synchronized the placement
  Normal  PlacementRolloutCompleted  3m28s (x7 over 3d22h)  cluster-resource-placement-controller  Resources have been applied to the selected clusters

Pemicu perubahan penempatan

Penjadwal Armada memprioritaskan stabilitas penempatan beban kerja yang ada. Prioritas ini dapat membatasi jumlah perubahan yang menyebabkan beban kerja dihapus dan dijadwalkan ulang. Skenario berikut dapat memicu perubahan penempatan:

  • Perubahan kebijakan penempatan dalam ClusterResourcePlacement objek dapat memicu penghapusan dan penjadwalan ulang beban kerja.
    • Operasi peluasan skala (meningkat numberOfClusters tanpa perubahan lain) menempatkan beban kerja hanya pada kluster baru dan tidak memengaruhi penempatan yang ada.
  • Perubahan kluster, termasuk:
    • Kluster baru yang memenuhi syarat dapat memicu penempatan jika kluster baru memenuhi kebijakan penempatan, misalnya, PickAll kebijakan.
    • Kluster dengan penempatan dihapus dari armada. Tergantung pada kebijakan, penjadwal mencoba menempatkan semua beban kerja yang terpengaruh pada kluster yang tersisa tanpa memengaruhi penempatan yang ada.

Perubahan khusus sumber daya (memperbarui sumber daya atau memperbarui ResourceSelector di ClusterResourcePlacement objek) diluncurkan secara bertahap di penempatan yang ada tetapi tidak memicu penjadwalan ulang beban kerja.

Langkah berikutnya