Tentang class komputasi kustom


Halaman ini menjelaskan cara menggunakan class komputasi kustom untuk mengontrol properti node yang disediakan Google Kubernetes Engine (GKE) saat penskalaan otomatis cluster Anda. Dokumen ini ditujukan untuk administrator platform yang ingin menentukan profil penskalaan otomatis untuk node secara deklaratif, beban kerja tertentu yang dijalankan pada perangkat keras yang memenuhi persyaratan mereka.

Ringkasan class Compute

Di GKE, class komputasi adalah profil yang terdiri dari kumpulan atribut node yang digunakan GKE untuk menyediakan node yang menjalankan workload Anda. Class komputasi dapat menargetkan pengoptimalan tertentu, seperti menyediakan node berperforma tinggi atau memprioritaskan biaya konfigurasi untuk biaya operasional yang lebih murah. Class komputasi kustom memungkinkan Anda menentukan profil yang kemudian digunakan GKE untuk menyediakan node yang memenuhi persyaratan beban kerja tertentu.

Class komputasi kustom tersedia untuk digunakan di GKE Mode Autopilot dan mode GKE Standard dalam versi 1.30.3-gke.1451000 dan yang lebih baru, serta menawarkan pendekatan deklaratif untuk mendefinisikan atribut node dan prioritas penskalaan otomatis. Tersedia class komputasi kustom untuk dikonfigurasi dan digunakan di semua cluster GKE yang memenuhi syarat secara default.

Manfaat class komputasi kustom

Class komputasi kustom menawarkan manfaat berikut:

  • Prioritas komputasi penggantian: Menentukan hierarki konfigurasi node di setiap class komputasi agar diprioritaskan oleh GKE. Jika sebagian besar pilihan konfigurasi tidak tersedia, GKE secara otomatis memilih konfigurasi berikutnya dalam hierarki. Model penggantian ini memastikan meskipun resource komputasi tidak tersedia, workload Anda tetap berjalan pada perangkat keras yang dioptimalkan dengan penundaan penjadwalan minimal.
  • Kontrol penskalaan otomatis terperinci: Menentukan konfigurasi node yang terbaik cocok untuk workload tertentu. GKE memprioritaskan konfigurasi saat membuat node selama penskalaan.
  • Konfigurasi infrastruktur deklaratif: Mengadopsi pendekatan deklaratif dalam pengelolaan infrastruktur, sehingga GKE secara otomatis membuat node untuk Anda yang sesuai dengan persyaratan workload spesifik Anda.
  • Migrasi aktif: Jika resource komputasi untuk mesin yang lebih dipilih konfigurasi kustom tersedia di lokasi Anda, GKE akan otomatis memigrasikan workload Anda ke node baru yang menggunakan konfigurasi Anda.
  • Pengoptimalan biaya: Prioritaskan jenis node yang hemat biaya seperti Spot VM untuk mengurangi biaya cluster Anda.
  • Class komputasi default untuk namespace: Tetapkan class komputasi default di setiap namespace Kubernetes, sehingga workload di namespace tersebut berjalan perangkat keras yang dioptimalkan meskipun tidak meminta kelas komputasi tertentu.
  • Nilai minimum penggabungan node kustom: Menentukan penggunaan resource kustom minimum untuk node. Jika penggunaan resource node tertentu berada di bawah GKE, GKE mencoba untuk mengonsolidasikan beban kerja ke dalam sebuah node serupa, yang tersedia, dan memperkecil skala node yang kurang dimanfaatkan.

Kasus penggunaan untuk class komputasi kustom

Pertimbangkan untuk menggunakan class komputasi kustom dalam skenario seperti berikut:

  • Anda ingin menjalankan workload AI/ML pada konfigurasi GPU tertentu.
  • Anda ingin menetapkan konfigurasi perangkat keras {i>default<i} untuk beban kerja yang tim tertentu berjalan, menghilangkan beban dari operator aplikasi.
  • Anda menjalankan workload yang berperforma optimal di Compute Engine tertentu seri mesin atau konfigurasi hardware tertentu.
  • Anda ingin mendeklarasikan konfigurasi hardware yang memenuhi persyaratan bisnis tertentu, persyaratan performa tinggi, seperti performa tinggi, pengoptimalan biaya, atau ketersediaan tinggi.
  • Anda ingin GKE secara hierarkis kembali menggunakan selama ketidaktersediaan resource komputasi, workload selalu berjalan pada komputer yang sesuai dengan kebutuhan mereka.
  • Anda ingin memutuskan konfigurasi optimal secara terpusat di seluruh perangkat perusahaan, sehingga biaya Anda lebih dapat diprediksi dan workload berjalan lebih andal.

Batasan

Anda tidak dapat menggunakan class komputasi kustom dengan kapasitas Compute Engine reservasi dalam mode Autopilot atau dalam penyediaan otomatis Kumpulan node mode standar. Mode Standar yang dibuat secara manual kumpulan node mendukung reservasi kapasitas.

Cara kerja class komputasi kustom

Class komputasi kustom adalah resource kustom Kubernetes yang menyediakan infrastruktur Google Cloud. Anda menentukan objek ComputeClass di lakukan cluster, lalu minta class komputasi tersebut dalam workload atau setel komputasi tersebut sebagai default untuk namespace Kubernetes. Saat Anda men-deploy workload yang kelas komputasi, GKE mencoba menempatkan Pod pada yang memenuhi persyaratan class komputasi.

Guna memastikan bahwa class komputasi kustom dioptimalkan untuk fleet Anda, pertimbangkan pedoman berikut:

  • Pahami persyaratan komputasi fleet Anda, termasuk setiap persyaratan hardware khusus aplikasi.
  • Tentukan tema yang memandu desain setiap class komputasi. Misalnya, class komputasi yang dioptimalkan untuk performa mungkin memiliki strategi penggantian yang hanya menggunakan jenis mesin dengan CPU tinggi.
  • Tentukan kelompok mesin dan rangkaian mesin Compute Engine yang yang paling sesuai dengan workload Anda. Untuk mengetahui detailnya, lihat Panduan perbandingan dan referensi kelompok mesin.
  • Rencanakan strategi penggantian dalam setiap class komputasi agar workload selalu yang berjalan pada node yang menggunakan konfigurasi mesin serupa. Misalnya, jika N4 seri mesin tidak tersedia, Anda dapat beralih kembali ke komputer N2.

Lihat definisi resource kustom lengkap

Guna melihat definisi resource kustom (CRD) lengkap untuk ComputeClass resource kustom, jalankan perintah berikut:

kubectl describe crd computeclasses.cloud.google.com

{i>Output<i} menampilkan seluruh CRD, termasuk semua isian yang didukung dan hubungan antar {i>field<i}. Untuk lebih memahami class komputasi kustom, lihat ke definisi ini saat Anda membaca dokumen ini.

Merencanakan class komputasi kustom

Untuk merencanakan, men-deploy, dan menggunakan class komputasi kustom secara efektif di cluster Anda, lakukan langkah-langkah berikut:

  1. Memilih prioritas komputasi penggantian: Tentukan serangkaian aturan yang mengatur properti {i>node<i} yang GKE dibuat untuk class komputasi.
  2. Konfigurasikan node pool dan class komputasi GKE Standard: Untuk cluster mode Standar, lakukan langkah-langkah konfigurasi yang diperlukan untuk menggunakan class komputasi dengan kumpulan node Anda.
  3. Menentukan perilaku penskalaan saat tidak ada aturan prioritas yang berlaku: secara opsional, beri tahu GKE apa yang harus dilakukan jika node yang memenuhi aturan prioritas Anda tidak dapat disediakan.
  4. Menetapkan parameter penskalaan otomatis untuk konsolidasi node: beri tahu GKE kapan harus menggabungkan workload dan menghapus aset yang kurang dimanfaatkan node.
  5. Mengonfigurasi migrasi aktif ke node dengan prioritas yang lebih tinggi: secara opsional, beri tahu GKE untuk memindahkan workload ke pilihan yang lebih {i>node <i}saat perangkat keras tersedia.

Memilih prioritas komputasi penggantian Anda

Keuntungan utama menggunakan class komputasi kustom adalah memiliki kontrol atas strategi penggantian saat node pilihan Anda tidak tersedia karena faktor seperti kehabisan resource dan keterbatasan kuota.

Anda membuat strategi penggantian dengan menentukan daftar aturan prioritas di di class Compute Engine, Saat sebuah cluster perlu ditingkatkan skalanya, GKE memprioritaskan pembuatan node yang cocok dengan aturan prioritas pertama. Jika GKE tidak dapat membuat node tersebut, GKE akan kembali ke prioritas berikutnya aturan, yang mengulangi proses ini hingga GKE berhasil meningkatkan mengelompokkan atau menghabiskan semua aturan. Jika semua aturan sudah tidak berlaku, GKE membuat node berdasarkan perilaku default atau yang ditentukan dijelaskan dalam Menentukan perilaku penskalaan saat tidak ada aturan prioritas yang berlaku.

Aturan prioritas

Anda menentukan aturan prioritas di kolom spec.priorities dari ComputeClass resource kustom. Setiap aturan di kolom priorities mendeskripsikan properti untuk disediakan oleh node. GKE memproses kolom priorities di urutannya, yang berarti bahwa item pertama di bidang adalah prioritas tertinggi untuk untuk penyediaan node.

Tergantung pada jenis aturan prioritas, Anda dapat menentukan mesin tambahan properti, seperti Spot VM atau kapasitas CPU minimum, untuk GKE yang akan digunakan saat menyediakan node. Kolom priorities mendukung jenis aturan prioritas berikut:

  • machineFamily: Menentukan node menggunakan mesin Compute Engine serial, seperti n2 atau c3.
  • machineType: Menentukan node menggunakan Compute Engine yang telah ditetapkan seperti n2-standard-4.
  • nodepools: Dalam cluster GKE Standard, menyediakan berisi daftar node pool yang dibuat secara manual di mana GKE harus menyediakan node.

jenis aturan machineFamily

Kolom machineFamily menerima Seri mesin Compute Engine seperti n2 atau c3. Jika tidak ditentukan, defaultnya adalah e2. Anda dapat menggunakan kolom di samping jenis aturan machineFamily:

  • spot: Spot VM. Nilai defaultnya adalah false.
  • minCores: vCPU minimum per node. Nilai defaultnya adalah 0.
  • minMemoryGb: Memori minimum per node. Nilai defaultnya adalah 0.
  • storage.bootDiskKMSKey: Jalur ke kunci Cloud Key Management Service yang akan digunakan untuk boot disk enkripsi.

Contoh berikut menunjukkan aturan prioritas machineFamily:

priorities:
- machineFamily: n2
  spot: true
  minCores: 16
  minMemoryGb: 64
  storage:
    bootDiskKMSKey: projects/example/locations/us-central1/keyRings/example/cryptoKeys/key-1

jenis aturan machineType

Kolom machineType menerima mesin Compute Engine yang telah ditetapkan seperti n2-standard-32. Jenis mesin harus mendukung GPU apa pun yang yang Anda tentukan.

Anda dapat menggunakan kolom berikut bersama dengan jenis aturan machineType:

  • spot: Menggunakan Spot VM. Default-nya adalah false.
  • storage: Mengonfigurasi penyimpanan node.
    • storage.bootDiskType: Jenis boot disk.
    • storage.bootDiskKMSKey: Jalur ke kunci Cloud KMS yang akan digunakan untuk boot disk enkripsi.
    • storage.bootDiskSize: Ukuran dalam GB untuk boot disk node.
    • storage.localSSDCount: Jumlah SSD lokal yang akan dipasang ke node. Jika ditentukan, minimal harus 1.
  • gpu: Mengonfigurasi GPU.

Contoh berikut menunjukkan aturan machineType untuk mesin n2-standard-32 jenis:

priorities:
- machineType: n2-standard-32
  spot: true
  storage:
    bootDiskType: pd-balanced
    bootDiskSize: 250
    localSSDCount: 2
    bootDiskKMSKey: projects/example/locations/us-central1/keyRings/example/cryptoKeys/key-1

Contoh berikut menunjukkan aturan machineType untuk GPU:

priorities:
- machineType: g2-standard-16
  spot: false
  gpu:
    type: nvidia-l4
    count: 1

jenis aturan node pool

Kolom nodepools mengambil daftar kumpulan node yang sudah ada GKE mencoba membuat Pod yang tertunda. GKE tidak memproses nilai di isian ini secara berurutan. Anda tidak dapat menentukan komputer lain properti di samping kolom ini dalam item aturan prioritas yang sama. Bidang ini adalah hanya didukung pada mode GKE Standard. Untuk mengetahui detail penggunaan, lihat Menargetkan kumpulan node tertentu dalam definisi class komputasi.

Cara GKE membuat node menggunakan aturan prioritas

Saat Anda men-deploy workload yang meminta class komputasi dan node baru diperlukan, GKE memproses daftar aturan di kolom priorities spesifikasi ComputeClass secara berurutan.

Misalnya, perhatikan spesifikasi berikut:

spec:
  ...
  priorities:
  - machineFamily: n2
    spot: true
    minCores: 64
  - machineFamily: n2
    spot: true
  - machineFamily: n2
    spot: false

Saat Anda men-deploy workload yang meminta class komputasi dengan prioritas ini , GKE mencocokkan node sebagai berikut:

  1. GKE menempatkan Pod pada node yang ada dan terkait dengan class komputasi ini.
  2. Jika node yang ada tidak dapat mengakomodasi Pod, GKE akan menyediakan node baru yang menggunakan seri mesin N2 adalah Spot VM, dan memiliki setidaknya 64 vCPU.
  3. Jika VM Spot N2 dengan minimal 64 vCPU tidak tersedia di region, GKE menyediakan node baru yang menggunakan N2 Spot VM yang sesuai dengan Pod, berapa pun jumlah dengan inti.
  4. Jika tidak ada Spot VM N2 yang tersedia di region ini, GKE menyediakan VM N2 on-demand baru.
  5. Jika tidak ada aturan sebelumnya yang dapat dipenuhi, GKE akan mengikuti logika dalam Bagian Tentukan perilaku penskalaan saat tidak ada aturan prioritas yang berlaku.

Node pool dan class komputasi GKE Standard

Jika Anda menggunakan mode GKE Standard, Anda mungkin harus melakukan untuk memastikan Pod class komputasi Anda dijadwalkan yang diharapkan.

Mengonfigurasi kumpulan node yang dibuat secara manual untuk penggunaan class komputasi

Jika cluster GKE Standard memiliki kumpulan node yang dapat dibuat secara manual tanpa penyediaan otomatis node, Anda harus mengonfigurasi node tersebut kumpulan resource untuk mengaitkannya dengan class komputasi tertentu. Khusus GKE menjadwalkan Pod yang meminta class komputasi tertentu pada node dalam kumpulan node yang yang Anda kaitkan dengan class komputasi tersebut. Autopilot GKE node pool mode GKE Standard yang telah dibuat oleh penyediaan otomatis node akan otomatis melakukan konfigurasi ini untuk Anda.

Untuk mengaitkan kumpulan node yang dibuat secara manual dengan class komputasi, tambahkan node label dan taint node ke kumpulan node selama pembuatan atau selama update dengan menentukan flag --node-labels dan flag --node-taints, sebagai berikut:

  • Label node: cloud.google.com/compute-class=COMPUTE_CLASS
  • Taint: cloud.google.com/compute-class=COMPUTE_CLASS:NoSchedule

Dalam atribut ini, COMPUTE_CLASS adalah nama di class Compute Engine,

Misalnya, perintah berikut mengupdate kumpulan node yang ada dan atribusi dengan class compute dev-class:

gcloud container node-pools update dev-pool \
    --cluster=example-cluster \
    --node-labels="cloud.google.com/compute-class=dev-class" \
    --node-taints="cloud.google.com/compute-class=dev-class:NoSchedule"

Anda dapat mengaitkan setiap kumpulan node di cluster dengan satu class komputasi kustom. Pod yang dijadwalkan GKE pada node pool yang dibuat secara manual saja memicu pembuatan node di dalam kumpulan node tersebut selama peristiwa penskalaan otomatis.

Class komputasi dan penyediaan otomatis node

Anda dapat menggunakan penyediaan otomatis node dengan class komputasi kustom GKE secara otomatis membuat dan menghapus node pool berdasarkan aturan prioritas.

Untuk menggunakan penyediaan otomatis node dengan class komputasi, Anda harus melakukan tindakan berikut:

  1. Pastikan Anda telah mengaktifkan penyediaan otomatis node di cluster.
  2. Tambahkan kolom nodePoolAutoCreation dengan nilai enabled: true ke Spesifikasi ComputeClass.

GKE kemudian dapat menempatkan Pod yang menggunakan class komputasi yang mengonfigurasi penyediaan otomatis node pada kumpulan node baru. GKE memutuskan apakah akan meningkatkan skala kumpulan node yang ada atau membuat kumpulan node baru berdasarkan faktor seperti ukuran cluster dan persyaratan Pod. Pod dengan class komputasi yang jangan konfigurasi penyediaan otomatis node, lanjutkan untuk hanya menskalakan node yang ada Google Cloud.

Anda dapat menggunakan class komputasi yang berinteraksi dengan penyediaan otomatis node bersama dengan class komputasi yang berinteraksi dengan kumpulan node yang dibuat secara manual cluster yang sama.

Pertimbangkan interaksi berikut dengan penyediaan otomatis node:

  • Anda tidak dapat menggunakan kelompok mesin atau Spot VM pemilih node karena pemilih ini bertentangan dengan perilaku class komputasi. GKE menolak Pod apa pun yang meminta class komputasi dan juga Spot VM atau seri mesin tertentu.
  • Anda dapat mengonfigurasi penyediaan otomatis node untuk class komputasi yang menggunakan nodepools untuk merujuk ke kumpulan node yang ada. Penyediaan otomatis node memproses prioritas secara berurutan dan mencoba menskalakan node yang ada untuk menempatkan Pod Anda.

Pertimbangkan contoh berikut untuk cluster yang keduanya dibuat secara manual kumpulan node dan penyediaan otomatis node:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: my-class
spec:
  priorities:
  - nodepools: [manually-created-pool]
  - machineFamily: n2
  - machineFamily: n2d
  nodePoolAutoCreation:
    enabled: true

Dalam contoh ini, GKE mencoba melakukan hal berikut:

  1. Buat node baru di kumpulan node manually-created-pool.
  2. Menyediakan node N2, baik dalam kumpulan node N2 yang sudah ada atau dengan membuat node baru kumpulan node.
  3. Jika tidak dapat membuat node N2, GKE akan mencoba meningkatkan skala kumpulan node N2D yang ada atau membuat kumpulan node N2D baru.

Menargetkan kumpulan node tertentu dalam definisi class komputasi

Kolom priorities.nodepools memungkinkan Anda menentukan daftar kumpulan node tempat GKE mencoba menjadwalkan Pod dalam dalam cluster GKE Standard yang menggunakan cluster penskalaan otomatis. Kolom ini hanya mendukung daftar node pool; Anda tidak dapat menentukan properti mesin tambahan seperti seri mesin dalam aturan prioritas yang sama. Saat Anda men-deploy workload yang meminta class komputasi yang memiliki node bernama Namun, GKE akan mencoba menjadwalkan Pod yang tertunda pada node tersebut Google Cloud. GKE mungkin membuat {i>node<i} baru dalam kumpulan node tersebut untuk menempatkan Pod.

Kumpulan node yang Anda tentukan di kolom priorities.nodepools harus berupa terkait dengan class komputasi tersebut menggunakan label node dan taint node, sebagaimana yang dijelaskan dalam Bagian Mengonfigurasi kumpulan node yang dibuat secara manual untuk class komputasi.

Daftar kumpulan node yang Anda tentukan di kolom nodepools tidak memiliki prioritas Anda. Agar dapat mengonfigurasi urutan fallback untuk kumpulan node yang dinamai, Anda harus menentukan beberapa item priorities.nodepools terpisah. Misalnya, pertimbangkan spesifikasi berikut:

spec:
  ...
  priorities:
  - nodepools: [pool1, pool2]
  - nodepools: [pool3]

Dalam contoh ini, GKE mula-mula mencoba menempatkan Pod tertunda yang meminta class komputasi ini pada node yang ada dalam kumpulan node yang diberi label dengan class compute. Jika node yang ada tidak tersedia, GKE mencoba menyediakan node baru di pool1 atau pool2. Jika GKE tidak dapat menyediakan node baru dalam kumpulan node ini, GKE mencoba menyediakan Pod baru di pool3.

Menentukan perilaku penskalaan saat tidak ada aturan prioritas yang berlaku

Resource kustom ComputeClass memungkinkan Anda menentukan GKE harus dilakukan jika tidak ada {i>node<i} yang dapat memenuhi salah satu aturan prioritas. Tujuan Kolom whenUnsatisfiable dalam spesifikasi mendukung nilai berikut:

  • ScaleUpAnyway: Membuat node baru yang menggunakan mesin default cluster konfigurasi Anda. Ini adalah perilaku default.
    • Di cluster Autopilot, GKE menempatkan Pod pada {i>node<i} baru atau yang sudah ada, terlepas dari konfigurasi mesin {i>node<i}.
    • Pada cluster Standar yang tidak menggunakan penyediaan otomatis node, GKE mencoba meningkatkan skala node pool yang dibuat secara manual menentukan label dan taint yang cocok dengan class komputasi tertentu.
    • Dalam cluster Standar yang menggunakan penyediaan otomatis node, GKE mungkin membuat kumpulan node baru yang menggunakan alamat IP default untuk menempatkan Pod.
  • DoNotScaleUp: Biarkan Pod dalam status Pending hingga node yang yang memenuhi persyaratan class komputasi.

Menetapkan parameter penskalaan otomatis untuk konsolidasi node

Secara default, GKE menghilangkan node yang kurang dimanfaatkan saat menjalankan workload interaktif, mengonsolidasikan workload tersebut di node lain yang memiliki kapasitas. Sebagai semua kelas komputasi, ini adalah perilaku {i>default<i} karena semua cluster yang menggunakan kelas komputasi harus menggunakan autoscaler cluster atau Autopilot klaster. Selama konsolidasi node, GKE menghabiskan node yang kurang dimanfaatkan, membuat ulang workload di node lain, lalu menghapus {i>node<i} yang terkuras.

Waktu dan kriteria untuk penghapusan node bergantung pada profil penskalaan otomatis. Anda dapat menyesuaikan nilai minimum resource yang kurang dimanfaatkan yang memicu node penghapusan dan penggabungan beban kerja menggunakan bagian autoscalingPolicy di definisi class komputasi kustom Anda. Anda dapat menyesuaikan hal berikut parameter:

  • consolidationDelayMinutes: Jumlah menit setelahnya GKE menghapus node yang kurang dimanfaatkan
  • consolidationThreshold: Batas pemakaian untuk CPU dan memori sebagai persentase resource node yang tersedia. Khusus GKE mempertimbangkan node untuk dihapus jika penggunaan resource kurang dari ini nilai minimum.
  • gpuConsolidationThreshold: Batas pemakaian untuk GPU sebagai persentase resource node yang tersedia. Khusus GKE mempertimbangkan node untuk dihapus jika penggunaan resource kurang dari ini nilai minimum. Sebaiknya tetapkan ini ke 100 atau 0 agar GKE menggabungkan node apa pun yang pemakaiannya tidak mencapai 100% GPU terpasang.

Perhatikan contoh berikut:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: my-class
spec:
  priorities:
  - machineFamily: n2
  - machineFamily: n2d
  autoscalingPolicy:
    consolidationDelayMinutes: 5
    consolidationThreshold: 70

Dalam konfigurasi ini, GKE menghapus node yang tidak digunakan setelah lima menit, dan node hanya menjadi kandidat untuk konsolidasi jika CPU-nya dan penggunaan memori kurang dari 70%.

Mengonfigurasi migrasi aktif ke node dengan prioritas yang lebih tinggi

Migrasi aktif adalah fitur penskalaan otomatis opsional di class komputasi kustom yang secara otomatis menggantikan node lama di class komputasi daftar prioritas penggantian dengan node baru yang posisinya lebih tinggi di daftar prioritas tersebut. Hal ini memastikan bahwa semua Pod yang berjalan pada akhirnya berjalan di platform yang paling Anda sukai untuk class komputasi tersebut, meskipun GKE awalnya harus menjalankan Pod tersebut pada node yang kurang disukai.

Saat migrasi aktif terjadi, GKE membuat node baru berdasarkan aturan prioritas class komputasi, lalu menghabiskan dan menghapus node prioritas. Migrasi dilakukan secara bertahap untuk meminimalkan gangguan beban kerja. Migrasi aktif memiliki pertimbangan berikut:

  • Migrasi aktif hanya tersedia di class komputasi yang menggunakan machineFamily jenis aturan prioritas. Jika class komputasi Anda memiliki nodepools atau machineType aturan prioritas, migrasi aktif tidak didukung.
  • Jika Anda telah mengaktifkan penyediaan otomatis node di cluster Standar, aktif migrasi mungkin memicu pembuatan kumpulan node baru jika node yang ada kumpulan tidak memenuhi kriteria prioritas lebih tinggi yang ditentukan dalam komputasi kustom Anda .
  • Untuk menghindari gangguan beban kerja yang kritis, migrasi aktif tidak akan memindahkan Pod berikut ini:
    • Pod yang menetapkan PodDisruptionBudget, jika pemindahan akan melebihi PodDisruptionBudget.
    • Pod yang memiliki anotasi cluster-autoscaler.kubernetes.io/safe-to-evict: "false".

Pertimbangkan contoh spesifikasi class komputasi berikut, yang memprioritaskan Node N2 melalui node E2:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: my-class
spec:
  priorities:
  - machineFamily: n2
  - machineFamily: n2d
  activeMigration:
    optimizeRulePriority: true

Jika node N2 tidak tersedia saat Anda men-deploy Pod dengan class komputasi ini, GKE akan menggunakan node N2D sebagai opsi penggantian. Jika N2 node akan tersedia untuk disediakan nanti, seperti jika kuota Anda meningkat atau jika VM N2 tersedia di lokasi Anda, GKE membuat node N2 baru dan secara bertahap memigrasikan Pod dari node N2D yang ada ke node N2 yang baru. GKE kemudian menghapus node N2D yang sudah tidak digunakan.

Meminta class komputasi dalam workload

Untuk menggunakan class komputasi kustom setelah selesai mendesainnya, Pod harus secara eksplisit meminta class komputasi tersebut dalam spesifikasi Pod. Anda dapat secara opsional menetapkan class komputasi sebagai default di Kubernetes tertentu untuk namespace, Pod dalam namespace tersebut akan menggunakan class komputasi tersebut kecuali jika Pod meminta class komputasi yang berbeda.

Untuk mendapatkan petunjuk tentang cara meminta dan menggunakan class komputasi di GKE, lihat Kontrol atribut node yang diskalakan secara otomatis dengan class komputasi kustom.

Langkah selanjutnya