Tentang pembuatan otomatis node pool

Google Kubernetes Engine (GKE) dapat membuat dan mengelola node pool secara otomatis di cluster Anda berdasarkan konfigurasi workload Anda. Dokumen ini menjelaskan cara kerja pembuatan otomatis node pool, parameter penskalaan dan perilaku default, serta memberikan rekomendasi yang dapat membantu Anda meningkatkan skalabilitas. Dokumen ini ditujukan bagi administrator cluster yang ingin mengurangi biaya yang terkait dengan pengelolaan infrastruktur manual di cluster mode Standar mereka.

Anda seharusnya sudah memahami konsep berikut:

Dalam mode Autopilot, GKE selalu membuat dan mengelola node dan node pool untuk Anda berdasarkan workload Anda. Anda tidak perlu mengonfigurasi pembuatan otomatis node pool secara manual untuk cluster Autopilot atau untuk workload Autopilot di cluster Standard. Untuk mengetahui informasi selengkapnya, lihat Ringkasan GKE Autopilot.

Apa yang dimaksud dengan pembuatan otomatis node pool?

Di GKE, node pool adalah grup node logis. Setiap node dalam node pool memiliki konfigurasi yang sama dengan setiap node lainnya dalam node pool tersebut. Pembuatan otomatis node pool adalah mekanisme penskalaan otomatis infrastruktur yang memungkinkan GKE membuat node pool baru di cluster Anda yang memenuhi persyaratan workload Anda. GKE mengelola node pool yang dibuat secara otomatis ini, dengan melakukan tugas seperti memperbarui metadata node, membuat dan menghapus node di node pool, serta menghapus seluruh node pool jika tidak lagi diperlukan. Pembuatan otomatis node pool adalah ekstensi dari autoscaler cluster GKE, yang secara otomatis menskalakan node di setiap node pool.

Pembuatan otomatis node pool dirancang agar GKE dapat otomatis menurunkan skala dan menghapus node pool kosong dari cluster Anda. Anda tidak dapat menetapkan jumlah minimum node yang harus dimiliki setiap node pool yang dibuat otomatis, karena jumlah minimum yang lebih besar dari nol akan mencegah penghapusan node pool kosong. Jika kasus penggunaan Anda memerlukan jumlah minimum node agar selalu berjalan di cluster Anda, buat kumpulan node secara manual dengan penskalaan otomatis yang diaktifkan.

Cara kerjanya

Pembuatan otomatis node pool memperluas autoscaler cluster GKE untuk memungkinkan GKE menyediakan node pool baru yang memenuhi persyaratan hardware dan permintaan resource Pod yang tertunda. Anda dapat menentukan persyaratan hardware dengan cara berikut:

  • Gunakan ComputeClasses, yang kemudian Anda pilih di berbagai Pod menggunakan pemilih node. Sebaiknya gunakan metode ini karena Anda dapat menentukan konfigurasi node umum secara terpusat yang dapat digunakan oleh beberapa workload.
  • Gunakan pemilih node atau afinitas node untuk meminta label node GKE tertentu dalam spesifikasi Pod.

GKE mengonfigurasi node pool baru berdasarkan parameter seperti berikut:

  • Permintaan resource CPU, memori, dan penyimpanan efemeral di Pod dan container Anda, termasuk Pod yang dikelola oleh DaemonSet.
  • Permintaan GPU dan TPU dalam spesifikasi Pod atau di ComputeClass.
  • Persyaratan hardware, seperti jenis mesin atau jenis disk booting, dalam spesifikasi Pod yang tertunda atau di ComputeClass.
  • Toleransi dalam spesifikasi Pod yang tertunda yang memiliki pemilih node yang cocok.

GKE mengonfigurasi kapasitas resource setiap node di node pool yang dibuat secara otomatis agar lebih besar dari atau sama dengan permintaan resource Pod yang tertunda. Anda harus memastikan bahwa permintaan resource Anda cukup besar agar Pod berfungsi seperti yang diharapkan. Jika permintaan Pod Anda terlalu rendah, Pod tidak akan berjalan seperti yang diharapkan setelah GKE menjadwalkannya di node yang dibuat secara otomatis.

Konfigurasi metadata node

GKE juga mengonfigurasi metadata node (seperti label, anotasi, dan taint node) berdasarkan persyaratan workload Anda, seperti dalam contoh berikut:

  • Jika Anda meminta rangkaian mesin N2, GKE akan menambahkan label node cloud.google.com/machine-family: n2 ke setiap node.
  • Jika Anda memilih ComputeClass di Pod, GKE akan menambahkan label node dengan kunci cloud.google.com/compute-class yang ditetapkan ke nama ComputeClass tersebut.
  • Jika Pod Anda memiliki toleransi dan pemilih node untuk label node yang sama, GKE akan menambahkan taint node untuk toleransi tersebut ke node yang dibuat secara otomatis.

Penghapusan node pool yang dibuat otomatis

Pembuatan otomatis node pool memungkinkan autoscaler cluster membuat node pool dan node baru untuk menjalankan Pod yang tertunda. Jika jumlah Pod dalam node pool yang dibuat secara otomatis berkurang, autoscaler cluster akan menurunkan skala node pool secara bertahap. Jika memungkinkan, GKE akan mengosongkan node yang kurang dimanfaatkan di node pool, menggabungkan Pod di node lain, dan menghapus node kosong.

Jika jumlah node dalam node pool yang dibuat otomatis adalah nol, GKE akan menghapus node pool tersebut. GKE tidak menghapus node pool yang Anda kecualikan dari pembuatan otomatis node pool, seperti node pool yang dibuat secara manual. Untuk informasi selengkapnya tentang cara autoscaler cluster menurunkan skala kumpulan node, lihat Cara kerja autoscaler cluster.

Preferensi penskalaan GKE

Preferensi berikut berlaku saat GKE melakukan penskalaan otomatis pada infrastruktur Anda:

  • Mengurangi resource komputasi yang terbuang: GKE menggunakan kapasitas resource node pool yang ada dan dibuat secara otomatis di cluster Anda untuk menentukan jenis mesin yang akan digunakan untuk node pool baru. Seiring bertambahnya ukuran cluster, GKE lebih memilih menggunakan jenis mesin yang lebih besar untuk node pool baru, sehingga lebih banyak Pod Anda dapat berjalan di setiap node dalam node pool.
  • Mengoptimalkan skalabilitas dan latensi: GKE selalu memprioritaskan penskalaan node pool yang ada dan kompatibel, bukan membuat node pool baru. Kekuatan preferensi ini meningkat seiring dengan bertambahnya jumlah kumpulan node yang berbeda dalam cluster Anda. Saat jumlah node pool yang berbeda-beda mendekati batas yang didukung untuk latensi dan skalabilitas yang optimal, GKE tidak memprioritaskan pembuatan node pool baru.

Prioritas ini membantu memastikan bahwa kluster Anda memiliki penggunaan resource komputasi yang efisien dalam skala besar, seperti dalam contoh skenario berikut:

  • Di cluster yang memiliki sedikit node pool dan penggunaan resource yang lebih sedikit, GKE membuat node pool baru lebih sering dan menggunakan jenis mesin yang lebih kecil untuk node pool tersebut.
  • Di cluster yang memiliki banyak kumpulan node, penggunaan resource tinggi. GKE membuat node pool baru lebih jarang dan menggunakan jenis mesin yang lebih besar untuk node pool tersebut, sehingga penjadwalan Pod dapat berlanjut sekaligus memperlambat progres menuju skalabilitas cluster dan batas latensi.

Anda dapat mengontrol ukuran minimum instance yang digunakan GKE untuk node pool yang dibuat otomatis secara manual dengan menggunakan ComputeClass yang memiliki kolom priorities.machineFamily dan kolom priorities.minCores atau priorities.minMemoryGb.

Metode pengaktifan untuk pembuatan otomatis node pool

GKE dapat membuat node pool secara otomatis untuk ComputeClass tertentu atau untuk workload apa pun yang menggunakan konfigurasi yang kompatibel, bergantung pada cara Anda mengonfigurasi cluster.

Metode pengaktifan
Tingkat workload (direkomendasikan)

Di GKE versi 1.33.3-gke.1136000 dan yang lebih baru, gunakan ComputeClass untuk mengaktifkan pembuatan otomatis node pool tanpa menggunakan penyediaan otomatis node tingkat cluster. GKE membuat node pool baru hanya untuk beban kerja yang memilih ComputeClass tertentu yang telah mengaktifkan pembuatan otomatis. Workload yang ada di cluster tidak terpengaruh.

Bahkan di versi GKE yang lebih lama dari 1.33.3-gke.1136000, ComputeClass adalah cara yang direkomendasikan untuk meminta dan mengonfigurasi infrastruktur untuk workload Anda. ComputeClass memberikan kemampuan unik dan memberi Anda cara yang fleksibel untuk mengoptimalkan penskalaan di cluster Anda. Untuk mengetahui informasi selengkapnya, lihat Tentang ComputeClass kustom.

Level cluster

Aktifkan penyediaan otomatis node untuk seluruh cluster. Anda harus menetapkan batas untuk resource seperti CPU dan memori di cluster Anda. Batas ini berlaku untuk seluruh cluster. Konfigurasi tingkat cluster diperlukan untuk mengaktifkan pembuatan otomatis node pool di GKE versi yang lebih lama dari 1.33.3-gke.1136000.

GKE dapat membuat node pool baru untuk setiap workload yang tertunda di cluster menggunakan ComputeClass atau pemilih dalam spesifikasi Pod.

Metode konfigurasi ini tidak saling eksklusif. Anda dapat menggunakan ComputeClass untuk membuat node pool secara otomatis di cluster yang menggunakan penyediaan otomatis node. Jika Anda menggunakan kedua metode ini untuk mengaktifkan pembuatan otomatis node pool di cluster, GKE akan menggunakan urutan preferensi berikut untuk menemukan nilai setelan konfigurasi yang akan digunakan untuk node pool:

  1. Spesifikasi ComputeClass atau Pod: jika Anda menentukan setelan (seperti jenis mesin) di ComputeClass atau dalam spesifikasi Pod, GKE akan menggunakan setelan tersebut.
  2. Default penyediaan otomatis node tingkat cluster: jika setelan tidak ditentukan dalam ComputeClass atau spesifikasi Pod, GKE akan memeriksa apakah Anda menetapkan nilai default untuk penyediaan otomatis node di cluster. Jika nilai default tingkat cluster ada, GKE akan menggunakan nilai tersebut.
  3. Default tingkat cluster: jika setelan tidak ditentukan dalam ComputeClasses, spesifikasi Pod, atau sebagai nilai default untuk penyediaan otomatis node tingkat cluster, GKE akan menggunakan nilai default yang ditetapkan Google Cloud untuk cluster.

Misalnya, pertimbangkan skenario saat GKE mencoba menemukan jenis mesin yang akan digunakan untuk node pool yang dibuat secara otomatis. Urutan preferensi sebelumnya berlaku sebagai berikut:

  1. GKE memeriksa apakah spesifikasi Pod atau ComputeClass Pod menentukan jenis mesin.
  2. Jika spesifikasi Pod atau ComputeClass tidak menentukan jenis mesin, GKE akan memeriksa apakah Anda menetapkan jenis mesin default untuk penyediaan otomatis node di cluster.
  3. Jika Anda tidak menetapkan jenis mesin default untuk penyediaan otomatis node, GKE akan menggunakan jenis mesin default cluster.

Sebaiknya gunakan hanya metode pengaktifan ComputeClass dalam sebagian besar situasi. Bagian berikut memberikan detail tentang setiap metode konfigurasi ini, termasuk batasan dan pertimbangan apa pun.

Pengaktifan tingkat workload dengan ComputeClasses

Anda dapat mengaktifkan pembuatan otomatis node pool untuk ComputeClass apa pun di cluster dengan menggunakan salah satu kolom berikut dalam spesifikasi ComputeClass:

  • nodePoolAutoCreation: memungkinkan GKE membuat node pool secara otomatis sesuai kebutuhan. Anda masih dapat berinteraksi dengan kumpulan node. GKE hanya menerapkan setelan atau batasan yang Anda konfigurasi.
  • autopilot: menjalankan beban kerja yang memilih ComputeClass ini dalam mode Autopilot. Mirip dengan cluster Autopilot, GKE sepenuhnya mengelola node untuk Anda dan menerapkan berbagai batasan dan setelan Autopilot. Jika menggunakan kolom autopilot, Anda dapat melewati dokumen ini. Untuk mengetahui informasi selengkapnya, lihat Tentang workload mode Autopilot di Standard.

Di cluster yang memenuhi persyaratan berikut, Anda dapat menggunakan kolom ini di ComputeClass tanpa mengaktifkan penyediaan otomatis node di tingkat cluster:

  • Gunakan GKE versi 1.33.3-gke.1136000 dan yang lebih baru.
  • Terdaftar di saluran rilis Cepat.

Jika Anda mengonfigurasi pembuatan otomatis node pool di ComputeClass tanpa mengaktifkan penyediaan otomatis node untuk cluster, GKE akan membuat node pool baru hanya untuk workload yang menggunakan ComputeClass. Workload lain tidak terpengaruh.

Contoh manifes ComputeClass berikut memungkinkan pembuatan otomatis node pool untuk Pod apa pun yang menggunakan ComputeClass:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: example-computeclass
spec:
  priorities:
  - machineFamily: n4
  - machineFamily: c4
  whenUnsatisfiable: ScaleUpAnyway
  nodePoolAutoCreation:
    enabled: true

Pengaktifan tingkat cluster dengan penyediaan otomatis node

Untuk mengaktifkan pembuatan otomatis node pool untuk seluruh cluster, Anda mengaktifkan fitur penyediaan otomatis node untuk cluster menggunakan Google Kubernetes Engine API. Penyediaan otomatis node memungkinkan GKE membuat node pool baru sesuai kebutuhan untuk workload apa pun di cluster berdasarkan spesifikasi Pod atau konfigurasi ComputeClass. GKE tidak mengelola node pool yang ada di cluster, tetapi Anda dapat menandai setiap node pool sebagai disediakan otomatis setelah mengaktifkan penyediaan otomatis node untuk cluster.

Aktifkan penyediaan otomatis node dalam situasi seperti berikut:

  • Anda ingin GKE membuat node pool secara otomatis di cluster yang menjalankan versi GKE yang lebih lama dari 1.33.3-gke.1136000.
  • Anda ingin menetapkan batas resource seluruh cluster secara manual. Di GKE versi yang lebih lama dari 1.33.3-gke.1136000, Anda harus menetapkan batas resource di seluruh cluster meskipun Anda menggunakan ComputeClass.

  • Anda ingin menggunakan fitur atau konfigurasi tertentu yang tidak didukung oleh ComputeClasses.

  • Anda ingin menetapkan nilai konfigurasi node default untuk seluruh cluster.

Setelah mengaktifkan penyediaan otomatis node, Anda dapat mengonfigurasi nilai default untuk berbagai setelan node menggunakan Google Cloud CLI atau file konfigurasi YAML.

Batas resource tingkat cluster dengan penyediaan otomatis node

Saat mengaktifkan penyediaan otomatis node untuk seluruh cluster, Anda juga harus mengonfigurasi batas untuk resource seperti CPU, memori, GPU, dan TPU di cluster. Batas ini berlaku untuk jumlah semua kapasitas resource di cluster, termasuk kumpulan node yang dibuat secara manual dan ComputeClass. GKE tidak membuat node atau node pool baru jika operasi tersebut akan melampaui salah satu batas resource ini.

Batas resource tingkat cluster ini hanya diperlukan jika Anda mengaktifkan penyediaan otomatis node di cluster. Di cluster yang memenuhi persyaratan berikut, Anda dapat menggunakan pembuatan otomatis node pool di ComputeClass tanpa mengaktifkan penyediaan otomatis node:

  • Gunakan GKE versi 1.33.3-gke.1136000 dan yang lebih baru.
  • Terdaftar di saluran rilis Cepat.

Jika cluster Anda memenuhi persyaratan ini, sebaiknya gunakan hanya ComputeClass untuk mengonfigurasi node pool yang dibuat secara otomatis.

Setelan default untuk node pool yang dibuat otomatis

Anda dapat menentukan nilai default yang diterapkan GKE ke node pool yang dibuat otomatis di tingkat workload atau di tingkat cluster.

  • Setelan default tingkat beban kerja: Anda dapat menggunakan kolom spec.nodePoolConfig dan kolom spec.priorityDefaults dalam spesifikasi ComputeClass untuk menetapkan nilai default bagi setelan node tertentu. Nilai default ini hanya berlaku untuk node pool yang dibuat GKE untuk ComputeClass tersebut.
  • Setelan default tingkat cluster: Anda dapat menetapkan nilai default untuk node pool yang dibuat otomatis saat mengonfigurasi penyediaan otomatis node. Untuk menentukan nilai default, Anda menggunakan gcloud CLI atau file konfigurasi YAML.

Metode penetapan default ini tidak saling eksklusif. Jika Anda mengonfigurasi nilai default untuk setelan tertentu di ComputeClass dan untuk seluruh cluster, GKE akan menggunakan nilai untuk ComputeClass. Jika ComputeClass tidak menentukan nilai untuk setelan tersebut, GKE akan menggunakan nilai default tingkat cluster.

Setelan default tingkat cluster dengan file konfigurasi

Saat mengaktifkan penyediaan otomatis node, Anda dapat menggunakan file konfigurasi YAML untuk menentukan setelan default di seluruh cluster untuk node pool yang dibuat otomatis. Anda dapat menentukan beberapa setelan dalam satu file konfigurasi. Beberapa konfigurasi lanjutan (seperti setelan perbaikan otomatis) hanya dapat ditentukan menggunakan file konfigurasi.

  • File konfigurasi contoh berikut mengaktifkan perbaikan otomatis dan upgrade otomatis node untuk semua node pool baru yang dibuat otomatis:

    management:
      autoRepair: true
      autoUpgrade: true
    
  • File konfigurasi contoh berikut menetapkan batas resource di seluruh cluster untuk penyediaan otomatis node dan mengonfigurasi beberapa setelan default:

    resourceLimits:
      - resourceType: 'cpu'
        minimum: 4
        maximum: 10
      - resourceType: 'memory'
        maximum: 64
      - resourceType: 'nvidia-tesla-t4'
        maximum: 4
    management:
      autoRepair: true
      autoUpgrade: true
    shieldedInstanceConfig:
      enableSecureBoot: true
      enableIntegrityMonitoring: true
    diskSizeGb: 100
    

    File konfigurasi ini menetapkan nilai default berikut:

Setelah Anda menerapkan file konfigurasi ke cluster, GKE hanya menggunakan setelan dalam file untuk node pool baru yang dibuat otomatis di cluster. Setelan baru atau yang diubah yang Anda tentukan dalam file tidak berlaku untuk node pool yang ada yang dibuat GKE di cluster. Jika Anda memperbarui nilai yang sebelumnya ditetapkan untuk cluster, GKE akan menggunakan nilai baru untuk semua node pool baru. Misalnya, jika sebelumnya Anda menetapkan rangkaian mesin default ke N2, dan Anda memperbarui nilai ke N4 dalam file konfigurasi, semua node pool baru akan menggunakan jenis mesin N4.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan file konfigurasi tingkat cluster, lihat Mengonfigurasi setelan dengan file konfigurasi penyediaan otomatis node.

Kasus penggunaan pembuatan otomatis node pool

Bagian berikut menjelaskan beberapa kasus penggunaan populer dan hardware yang didukung untuk pembuatan otomatis kumpulan node. Untuk mengetahui informasi selengkapnya tentang kasus penggunaan tambahan dan konfigurasi yang didukung, lihat dokumentasi untuk kasus penggunaan spesifik Anda.

Pemilihan seri mesin atau jenis mesin

Anda dapat memilih seri mesin atau jenis mesin Compute Engine yang akan digunakan GKE untuk node pool yang dibuat otomatis dengan salah satu cara berikut:

  • ComputeClasses: gunakan machineFamily atau machineType aturan prioritas.
  • Spesifikasi Pod: untuk seri mesin, gunakan pemilih node untuk label node cloud.google.com/machine-family. Untuk jenis mesin, gunakan label node cloud.google.com/machine-family dan node.kubernetes.io/instance-type. Untuk mengetahui informasi selengkapnya, lihat Memilih seri mesin atau jenis mesin.

Jika Anda tidak memilih mesin secara eksplisit, GKE akan menggunakan seri mesin E2 atau jenis mesin yang kompatibel dengan hardware yang diminta oleh workload Anda. Misalnya, GKE menggunakan jenis mesin GPU untuk GPU dan mesin khusus untuk resource TPU.

Saat Anda meminta seri mesin atau jenis mesin, pastikan pemilih node lainnya dan permintaan resource Pod Anda kompatibel dengan mesin yang ditentukan. Misalnya, Anda tidak dapat meminta GPU dan seri mesin N2 secara bersamaan.

Seri mesin yang didukung

Anda dapat meminta secara eksplisit jenis mesin atau seri mesin Compute Engine yang didukung dalam ComputeClass atau workload. Pembuatan otomatis node pool hanya mendukung rangkaian mesin berikut dalam versi GKE tertentu:

  • Seri mesin Z3: 1.29 dan yang lebih baru.
  • Seri mesin C4:
    • 1.28.15-gke.1159000 dan yang lebih baru.
    • 1.29.10-gke.1227000 dan yang lebih baru.
    • 1.30.3-gke.1225000 dan yang lebih baru.
  • Seri mesin C4A:
    • 1.28.15-gke.1344000 dan yang lebih baru.
    • 1.29.11-gke.1012000 dan yang lebih baru.
    • 1.30.7-gke.1136000 dan yang lebih baru.
    • 1.31.3-gke.1056000 dan yang lebih baru.
  • Seri mesin C4D: 1.32.3-gke.1717000 dan yang lebih baru.
  • Seri mesin N4: 1.29.3 dan yang lebih baru.

Seri mesin lainnya didukung di semua versi GKE.

Pemilihan GPU

Anda dapat meminta GPU untuk node pool yang dibuat otomatis dengan salah satu cara berikut:

  • ComputeClasses:
    1. Gunakan aturan prioritas gpu untuk mengonfigurasi GPU.
    2. Minta resource GPU di Pod.
  • Spesifikasi pod:
    1. Konfigurasi batas GPU seluruh cluster untuk penyediaan otomatis node.
    2. Gunakan pemilih node untuk mengonfigurasi GPU.
    3. Minta resource GPU di Pod.

GKE memilih jenis mesin GPU yang cukup besar untuk mendukung jumlah GPU. Jumlah GPU yang Anda pilih memengaruhi kapasitas CPU dan memori node.

Pemilihan Cloud TPU

Anda dapat meminta resource Cloud TPU untuk node pool yang dibuat otomatis dengan salah satu cara berikut:

Node pool slice TPU host tunggal dan node pool slice TPU multi-host mendukung penskalaan otomatis dan pembuatan otomatis node pool. Untuk pembuatan otomatis node pool, GKE membuat node pool slice TPU host tunggal atau multi-host dengan versi dan topologi TPU yang memenuhi persyaratan workload yang tertunda.

Persyaratan versi GKE untuk Cloud TPU

Pembuatan otomatis node pool hanya mendukung Cloud TPU berikut dalam versi GKE tertentu:

  • Cloud TPU v5p:
    • 1.28.7-gke.1020000 dan yang lebih baru.
    • 1.29.2-gke.1035000 dan yang lebih baru.
  • TPU Trillium: 1.31.1-gke.1146000 dan yang lebih baru.

Jenis Cloud TPU lainnya didukung di semua versi GKE.

Penskalaan otomatis node pool Cloud TPU

GKE menskalakan node pool Cloud TPU yang dibuat secara otomatis atau dibuat secara manual yang menggunakan penskala otomatis cluster dengan salah satu cara berikut:

  • Node pool slice TPU host tunggal: GKE menambahkan atau menghapus node TPU di node pool yang ada. Node pool dapat berisi sejumlah node TPU antara nol dan ukuran maksimum node pool seperti yang ditentukan oleh tanda penskalaan otomatis --max-nodes dan --total-max-nodes. Semua TPU node dalam node pool memiliki jenis mesin dan topologi yang sama. Untuk mengetahui informasi selengkapnya tentang cara membuat node pool slice TPU host tunggal, lihat Membuat node pool.
  • Node pool slice TPU multi-host: GKE secara atomik meningkatkan skala node pool dari nol hingga jumlah node yang diperlukan untuk memenuhi topologi TPU. Misalnya, dengan TPU node pool yang memiliki jenis mesin ct5lp-hightpu-4t dan topologi 16x16, node pool selalu memiliki 64 node atau nol node. GKE akan memperkecil skala node pool jika tidak ada workload TPU di node pool tersebut. Untuk menskalakan node pool, GKE akan mengeluarkan semua Pod terjadwal dan menghapus semua node di node pool. Untuk mengetahui informasi selengkapnya tentang cara membuat node pool slice TPU multi-host, lihat Membuat node pool.

Konfigurasi node pool Cloud TPU

GKE menggunakan konfigurasi di Pod atau ComputeClass Anda untuk menentukan konfigurasi node TPU Anda. Manifes berikut adalah contoh spesifikasi Deployment yang meminta TPU dalam spesifikasi Pod. Jika setelan penyediaan otomatis node tingkat cluster diaktifkan, Deployment ini akan memicu pembuatan otomatis node pool. Saat Anda membuat Deployment contoh ini, GKE akan membuat node pool yang berisi slice TPU v4 dengan topologi 2x2x2 dan dua mesin ct4p-hightpu-4t.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tpu-workload
  labels:
    app: tpu-workload
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-tpu
  template:
    metadata:
      labels:
        app: nginx-tpu
    spec:
      nodeSelector:
        cloud.google.com/gke-tpu-accelerator: tpu-v4-podslice
        cloud.google.com/gke-tpu-topology: 2x2x2
        cloud.google.com/reservation-name: my-reservation
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            google.com/tpu: 4
          limits:
            google.com/tpu: 4
        ports:
        - containerPort: 80

Dalam manifes ini, kolom berikut menentukan konfigurasi TPU:

  • cloud.google.com/gke-tpu-accelerator: versi dan jenis TPU. Misalnya, Anda dapat menggunakan salah satu opsi berikut:
    • TPU v4 dengan tpu-v4-podslice
    • TPU v5e dengan tpu-v5-lite-podslice.
    • TPU v5p dengan tpu-v5p-slice.
    • TPU Trillium (v6e) dengan tpu-v6e-slice.
  • cloud.google.com/gke-tpu-topology: jumlah dan pengaturan fisik chip TPU dalam slice TPU. Untuk mengetahui informasi selengkapnya, lihat Memilih topologi.
  • limits.google.com/tpu: jumlah chip TPU di VM TPU. Sebagian besar konfigurasi hanya memiliki satu nilai yang benar. Untuk mengetahui informasi selengkapnya, lihat Cara kerja TPU di GKE.
  • cloud.google.com/reservation-name: nama reservasi kapasitas yang akan digunakan untuk mendapatkan resource TPU. Jika dihilangkan, workload tidak akan menggunakan pemesanan apa pun.

Konfigurasi node pool yang dibuat otomatis bergantung pada jenis TPU, topologi TPU, dan jumlah chip TPU yang Anda pilih. Untuk memprediksi jenis, ukuran, dan konfigurasi node pool Anda, lakukan hal berikut:

  1. Di Pilih topologi, filter tabel untuk Standard untuk jenis TPU yang Anda tentukan, seperti TPU Trillium atau TPU v5e.
  2. Gunakan nilai yang Anda tentukan untuk mengidentifikasi konfigurasi node pool, sebagai berikut:
    1. gke-tpu-topology: menemukan baris dalam tabel yang memiliki nilai yang sama untuk Topology.
    2. limits: dalam tabel, bagi nilai Jumlah chip TPU dengan nilai Jumlah VM. Temukan baris dalam tabel yang memiliki nilai hasil yang sama dengan nilai yang Anda tentukan.

Misalnya, pertimbangkan skenario saat Anda meminta tpu-v6e-slice (TPU Trillium) dengan topologi 2x4. Dalam skenario ini, Anda memfilter tabel di Pilih topologi untuk TPU Trillium. Kemudian, Anda mengidentifikasi baris yang sesuai dengan konfigurasi yang ditentukan, sebagai berikut:

  • gke-tpu-topology: TPU Trillium memiliki konfigurasi berikut untuk topologi 2x4:
    • Node pool slice TPU host tunggal yang memiliki delapan chip TPU dalam satu instance ct6e-standard-8t.
    • Node pool slice TPU multi-host yang memiliki delapan chip TPU yang tersebar di dua instance ct6e-standard-4t.
  • limits: karena TPU Trillium memiliki beberapa opsi untuk topologi 2x4, nilai yang Anda tentukan di kolom limits bergantung pada jenis node pool yang Anda inginkan, sebagai berikut:
    • Node pool slice TPU host tunggal: tentukan limits.google.com/tpu: 8 untuk mendapatkan node pool yang memiliki delapan chip TPU dan satu VM. Kedelapan chip tersebut terpasang ke VM tersebut.
    • Node pool slice TPU multi-host: tentukan limits.google.com/tpu: 4 untuk mendapatkan node pool yang memiliki delapan chip TPU dan dua VM. Setiap VM memiliki 4 chip.

Pemilihan Spot VM

Anda dapat memilih Spot VM untuk node pool yang dibuat otomatis dengan salah satu cara berikut:

  • ComputeClasses: gunakan kolom spot dalam aturan prioritas.
  • Spesifikasi Pod: gunakan toleransi untuk label node cloud.google.com/gke-spot="true" dengan efek NoSchedule. Tambahkan pemilih node untuk label node cloud.google.com/gke-spot=true atau cloud.google.com/gke-provisioning=spot. Atau, Anda dapat memilih preemptible VM menggunakan label node cloud.google.com/gke-preemptible dalam toleransi dan pemilih node. Namun, sebaiknya gunakan Spot VM.

Konfigurasi penyimpanan efemeral

GKE menggunakan sebagian boot disk node untuk penyimpanan sementara Pod. Anda dapat menyesuaikan ukuran disk boot yang digunakan GKE untuk node yang dibuat otomatis dengan salah satu cara berikut:

  • ComputeClasses: gunakan kolom storage.bootDiskSize dan storage.bootDiskType dalam aturan prioritas. Anda dapat mengonfigurasi setelan disk booting yang berbeda untuk ComputeClass yang berbeda.
  • Spesifikasi Pod: gunakan kolom diskSizeGb dan diskType dalam file konfigurasi tingkat cluster. Anda tidak dapat mengontrol ukuran dan jenis disk booting untuk setiap Pod menggunakan metode ini.

Untuk mengetahui informasi selengkapnya, lihat Boot disk kustom. Jika Anda tidak mengubah setelan boot disk secara eksplisit, defaultnya adalah volume pd-balanced yang memiliki kapasitas 100 GiB.

GKE membuat node pool baru hanya jika penyimpanan sementara yang dapat dialokasikan untuk sebuah node dengan boot disk yang ditentukan lebih besar dari atau sama dengan permintaan penyimpanan sementara dari Pod yang tertunda ini. Jika permintaan penyimpanan sementara lebih besar daripada penyimpanan sementara yang dapat dialokasikan dari sebuah node, GKE tidak akan membuat node pool baru dan Pod akan tetap dalam status tertunda. GKE tidak menyesuaikan ukuran disk booting secara dinamis berdasarkan permintaan penyimpanan sementara Pod Anda.

Pemisahan workload

Anda dapat meminta agar Pod tertentu selalu berjalan di node terpisah dari Pod lain di cluster. GKE menggunakan taint node untuk mencegah beban kerja lain berjalan di node tersebut. Anda dapat mengonfigurasi pemisahan beban kerja di node pool yang dibuat otomatis dengan cara berikut:

  • ComputeClasses: node yang dibuat GKE untuk ComputeClass tertentu hanya dapat menjalankan Pod yang memilih ComputeClass tersebut. Anda tidak perlu mengubah spesifikasi Pod. Anda dapat memisahkan Pod dalam ComputeClass menggunakan afinitas dan anti-afinitas antar-Pod.
  • Spesifikasi Pod: jika mengaktifkan penyediaan otomatis node untuk cluster, Anda dapat mengonfigurasi pemisahan workload menggunakan kolom dalam spesifikasi Pod. Selama pembuatan otomatis node pool, GKE dapat membuat node pool dengan label dan taint jika semua kondisi berikut terpenuhi:
    • Pod menggunakan pemilih node untuk meminta kunci dan nilai label node kustom. Anda tidak dapat menggunakan label node sistem untuk pemisahan workload.
    • Pod memiliki toleransi untuk kunci label node yang sama.
    • Efek toleransi adalah NoSchedule, NoExecute, atau tidak ditentukan.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kolom ini dan batasan, lihat Mengonfigurasi pemisahan workload di GKE.

Batasan

  • Semua batasan autoscaler cluster juga berlaku untuk pembuatan otomatis kumpulan node.
  • Cluster yang memiliki lebih dari 200 total kumpulan node mungkin mengalami peningkatan latensi selama penskalaan otomatis. Konfigurasi apa pun yang memicu pembuatan node pool baru, seperti pemisahan beban kerja atau penggunaan beberapa ComputeClass, akan meningkatkan jumlah ini. Untuk mengetahui informasi selengkapnya tentang batas cluster, lihat batas dan praktik terbaik di "Merencanakan cluster besar".
  • Setiap batas resource yang Anda tetapkan untuk cluster saat mengaktifkan penyediaan otomatis node juga berlaku untuk node pool yang dibuat GKE untuk ComputeClass.
  • Setelan berikut tidak didukung oleh ComputeClasses:
    • Upgrade lonjakan atau upgrade blue-green.
    • Integritas node dan booting aman.
  • Untuk mengaktifkan pembuatan otomatis node pool untuk ComputeClass di GKE versi yang lebih lama dari 1.33.3-gke.1136000, Anda juga harus mengaktifkan penyediaan otomatis node tingkat cluster. Batasan ini tidak berlaku di GKE versi 1.33.3-gke.1136000 dan yang lebih baru.

Konfigurasi yang tidak didukung

GKE tidak membuat node pool baru yang menggunakan konfigurasi berikut:

Autoscaler cluster dapat menskalakan node di node pool yang ada yang menggunakan konfigurasi ini.

Langkah berikutnya