Tentang penyediaan otomatis node


Halaman ini menjelaskan cara kerja penyediaan otomatis node di cluster Google Kubernetes Engine (GKE) Standar. Dengan penyediaan otomatis node, node diskalakan secara otomatis untuk memenuhi persyaratan workload Anda.

Dengan cluster Autopilot, Anda tidak perlu menyediakan node atau mengelola node pool secara manual karena GKE secara otomatis mengelola penskalaan dan penyediaan node.

Alasan menggunakan penyediaan otomatis node

Penyediaan otomatis node mengelola dan menskalakan serangkaian node pool secara otomatis atas nama pengguna. Tanpa penyediaan otomatis node, autoscaler cluster GKE akan membuat node hanya dari node pool yang dibuat pengguna. Dengan penyediaan otomatis node, GKE secara otomatis membuat dan menghapus node pool.

Fitur yang tidak didukung

Penyediaan otomatis node tidak membuat node pool yang menggunakan salah satu fitur berikut. Namun, autoscaler cluster akan menskalakan node di node pool yang ada dengan fitur berikut:

Cara kerja penyediaan otomatis node

Penyediaan otomatis node adalah mekanisme autoscaler cluster. Autoscaler cluster hanya menskalakan node pool yang ada. Dengan penyediaan otomatis node aktif, autoscaler cluster dapat membuat node pool secara otomatis berdasarkan spesifikasi Pod yang tidak dapat dijadwalkan.

Penyediaan otomatis node membuat node pool berdasarkan informasi berikut:

Batas resource

Penyediaan otomatis node dan autoscaler cluster memiliki batas pada tingkat berikut:

  • Level node pool: node pool yang disediakan secara otomatis dibatasi hingga 1.000 node.
  • Level cluster:
    • Batas penyediaan otomatis yang Anda tetapkan akan diterapkan berdasarkan total resource CPU dan memori yang digunakan di semua node pool, bukan hanya kumpulan yang disediakan secara otomatis.
    • Autoscaler cluster tidak membuat node baru jika tindakan tersebut akan melebihi salah satu batas yang ditentukan. Jika batas terlampaui, GKE tidak akan menghapus node.

Pemisahan workload

Jika Pod yang tertunda memiliki afinitas dan toleransi node, penyediaan otomatis node dapat menyediakan node dengan label dan taint yang cocok.

Penyediaan otomatis node dapat membuat node pool dengan label dan taint jika semua kondisi berikut terpenuhi:

  • Pod yang tertunda memerlukan node dengan kunci label dan nilai tertentu.
  • Pod memiliki toleransi untuk taint dengan kunci yang sama.
  • Toleransi tersebut adalah untuk efek NoSchedule, efek NoExecute, atau semua efek.

Untuk mendapatkan petunjuk, lihat Mengonfigurasi pemisahan workload di GKE.

Batasan penggunaan label untuk pemisahan beban kerja

Penyediaan otomatis node memicu pembuatan node pool baru saat Anda menggunakan label yang didukung oleh penyediaan otomatis node, seperti cloud.google.com/gke-spot atau keluarga mesin. Anda dapat menggunakan label lain dalam manifes Pod untuk mempersempit node tempat GKE menempatkan Pod, tetapi GKE tidak akan menggunakan label ini untuk menyediakan node pool baru. Untuk daftar label yang tidak memicu pembuatan node pool secara eksplisit, lihat Batasan pemisahan workload dengan taint dan toleransi.

Penghapusan node pool yang disediakan secara otomatis

Jika tidak ada node dalam node pool yang disediakan secara otomatis, GKE akan menghapus node pool tersebut. GKE tidak menghapus node pool yang tidak disediakan secara otomatis.

Jenis mesin yang didukung

Penyediaan otomatis node mempertimbangkan persyaratan Pod di cluster Anda untuk menentukan jenis node yang paling sesuai dengan Pod tersebut.

Secara default, GKE menggunakan seri mesin E2 kecuali jika salah satu kondisi berikut berlaku:

  • Workload meminta fitur yang tidak tersedia di seri mesin E2. Misalnya, jika GPU diminta oleh workload, rangkaian mesin N1 digunakan untuk node pool baru.
  • Workload meminta TPU resource. Untuk mempelajari TPU lebih lanjut, baca Pengantar Cloud TPU.
  • Workload menggunakan label machine-family. Untuk informasi selengkapnya, lihat Menggunakan keluarga mesin kustom.

Jika Pod meminta GPU, penyediaan otomatis node akan menetapkan jenis mesin yang cukup besar untuk mendukung jumlah GPU yang diminta Pod. Jumlah GPU membatasi CPU dan memori yang dapat dimiliki node. Untuk mengetahui informasi selengkapnya, lihat platform GPU.

Gambar node yang didukung

Penyediaan otomatis node membuat node pool menggunakan salah satu image node berikut:

  • Container-Optimized OS (cos_containerd).
  • Ubuntu (ubuntu_containerd).

Akselerator machine learning yang didukung

Penyediaan otomatis node dapat membuat node pool dengan akselerator hardware seperti GPU dan Cloud TPU. Penyediaan otomatis node mendukung TPU di GKE versi 1.28 dan yang lebih baru.

GPU

Jika Pod meminta GPU, penyediaan otomatis node akan menetapkan jenis mesin yang cukup besar untuk mendukung jumlah GPU yang diminta Pod. Jumlah GPU membatasi CPU dan memori yang dapat dimiliki node. Untuk mengetahui informasi selengkapnya, lihat platform GPU.

Cloud TPU

GKE mendukung Tensor Processing Unit (TPU) untuk mempercepat beban kerja machine learning. Node pool slice TPU host tunggal dan node pool slice TPU multi-host mendukung penskalaan otomatis dan penyediaan otomatis.

Dengan flag --enable-autoprovisioning di cluster GKE, GKE membuat atau menghapus node pool slice TPU host tunggal atau multi-host dengan versi dan topologi TPU yang memenuhi persyaratan workload yang tertunda.

Saat Anda menggunakan --enable-autoscaling, GKE menskalakan node pool berdasarkan jenisnya, sebagai berikut:

  • Node pool slice TPU host tunggal: GKE menambahkan atau menghapus node TPU di node pool yang ada. Node pool dapat berisi jumlah node TPU antara nol dan ukuran maksimum node pool seperti yang ditentukan oleh flag --max-nodes dan --total-max-nodes. Saat node pool diskalakan, semua node TPU dalam node pool memiliki jenis mesin dan topologi yang sama. Untuk mempelajari lebih lanjut cara membuat node pool slice TPU host tunggal, lihat Membuat node pool.

  • Node pool slice TPU multi-host: GKE secara atomik akan meningkatkan skala node pool dari nol hingga jumlah node yang diperlukan untuk memenuhi topologi TPU. Misalnya, dengan node pool TPU dengan jenis mesin ct5lp-hightpu-4t dan topologi 16x16, node pool berisi 64 node. Autoscaler GKE memastikan bahwa node pool ini memiliki tepat 0 atau 64 node. Saat menskalakan kembali, GKE akan mengeluarkan semua pod terjadwal, dan menghabiskan seluruh node pool menjadi nol. Untuk mempelajari lebih lanjut cara membuat node pool slice TPU multi-host, lihat Membuat node pool.

Jika slice TPU tertentu tidak memiliki Pod yang berjalan atau tertunda untuk dijadwalkan, GKE akan memperkecil skala node pool. Node pool slice TPU multi-host mengalami pengecilan skala secara atomik. Node pool slice TPU host tunggal diperkecil dengan menghapus slice TPU host tunggal individual.

Saat Anda mengaktifkan penyediaan otomatis node dengan TPU, GKE akan membuat keputusan penskalaan berdasarkan nilai yang ditentukan dalam permintaan Pod. Manifes berikut adalah contoh spesifikasi Deployment yang menghasilkan satu 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

Dengan keterangan:

  • cloud.google.com/gke-tpu-accelerator: Versi dan jenis TPU. Misalnya, Anda dapat menggunakan salah satu hal berikut:
    • TPU v4 dengan tpu-v4-podslice
    • TPU v5e dengan tpu-v5-lite-podslice.
    • TPU v6e dengan tpu-v6e-slice.
  • cloud.google.com/gke-tpu-topology: Jumlah dan pengaturan fisik TPU chip dalam slice TPU. Saat membuat node pool dan mengaktifkan penyediaan otomatis node, Anda perlu memilih topologi TPU. Untuk mengetahui informasi selengkapnya tentang topologi Cloud TPU, lihat Konfigurasi TPU.
  • limit.google.com/tpu: Jumlah TPU chip di VM TPU. Sebagian besar konfigurasi hanya memiliki satu nilai yang benar. Namun, tpu-v5-lite-podslice dengan konfigurasi topologi 2x4:
    • Jika Anda menentukan google.com/tpu = 8, penyediaan otomatis node akan meningkatkan skala node pool slice TPU host tunggal dengan menambahkan satu mesin ct5lp-hightpu-8t.
    • Jika Anda menentukan google.com/tpu = 4, penyediaan otomatis node akan membuat node pool slice TPU multi-host dengan dua mesin ct5lp-hightpu-4t.
  • cloud.google.com/reservation-name: Nama pemesanan yang digunakan workload. Jika dihilangkan, workload tidak akan menggunakan pemesanan apa pun.

Jika Anda menetapkan v6e, penyediaan otomatis node akan membuat keputusan berikut:

Nilai yang ditetapkan dalam manifes Pod Ditentukan oleh penyediaan otomatis node
gke-tpu-topology limit.google.com/tpu Jenis node pool Ukuran node pool Machine type
1x1 1 Slice TPU host tunggal Fleksibel ct6e-standard-1t
2x2 4 Slice TPU host tunggal Fleksibel ct6e-standard-4t
2x4 8 Slice TPU host tunggal Fleksibel ct6e-standard-8t
2x4 4 Slice TPU multi-host 2 ct6e-standard-4t
4x4 4 Slice TPU multi-host 4 ct6e-standard-4t
4x8 4 Slice TPU multi-host 8 ct6e-standard-4t
8x8 4 Slice TPU multi-host 16 ct6e-standard-4t
8x16 4 Slice TPU multi-host 32 ct6e-standard-4t
16x16 4 Slice TPU multi-host 64 ct6e-standard-4t

Jika Anda menetapkan tpu-v4-podslice, penyediaan otomatis node akan membuat keputusan berikut:

Nilai yang ditetapkan dalam manifes Pod Ditentukan oleh penyediaan otomatis node
gke-tpu-topology limit.google.com/tpu Jenis node pool Ukuran node pool Machine type
2x2x1 4 Slice TPU host tunggal Fleksibel ct4p-hightpu-4t
{A}x{B}x{C} 4 Slice TPU multi-host {A}x{B}x{C}/4 ct4p-hightpu-4t

Produk dari {A}x{B}x{C} menentukan jumlah chip di node pool. Misalnya, Anda dapat menentukan topologi kecil yang terdiri dari 64 chip dengan kombinasi seperti 4x4x4. Jika Anda menggunakan topologi yang lebih besar dari 64 chip, nilai yang Anda tetapkan ke {A},{B}, dan {C} harus memenuhi kondisi berikut:

  • {A},{B}, dan {C} semuanya lebih rendah dari atau sama dengan empat, atau kelipatan dari empat.
  • Topologi terbesar yang didukung adalah 12x16x16.
  • Nilai yang ditetapkan mempertahankan pola A ≤ B ≤ C. Misalnya, 2x2x4 atau 2x4x4 untuk topologi kecil.

Jika Anda menetapkan tpu-v5-lite-podslice, penyediaan otomatis node akan membuat keputusan berikut:

Nilai yang ditetapkan dalam manifes Pod Ditentukan oleh penyediaan otomatis node
gke-tpu-topology limit.google.com/tpu Jenis node pool Ukuran node pool Machine type
1x1 1 Slice TPU host tunggal Fleksibel ct5lp-hightpu-1t
2x2 4 Slice TPU host tunggal Fleksibel ct5lp-hightpu-4t
2x4 8 Slice TPU host tunggal Fleksibel ct5lp-hightpu-8t
2x41 4 Slice TPU multi-host 2 (8/4) ct5lp-hightpu-4t
4x4 4 Slice TPU multi-host 4 (16/4) ct5lp-hightpu-4t
4x8 4 Slice TPU multi-host 8 (32/4) ct5lp-hightpu-4t
4x8 4 Slice TPU multi-host 16 (32/4) ct5lp-hightpu-4t
8x8 4 Slice TPU multi-host 16 (64/4) ct5lp-hightpu-4t
8x16 4 Slice TPU multi-host 32 (128/4) ct5lp-hightpu-4t
16x16 4 Slice TPU multi-host 64 (256/4) ct5lp-hightpu-4t
  1. Kasus khusus saat jenis mesin bergantung pada nilai yang Anda tentukan di kolom batas google.com/tpu.

Jika Anda menetapkan jenis akselerator ke tpu-v5-lite-device, penyediaan otomatis node akan membuat keputusan berikut:

Nilai yang ditetapkan dalam manifes Pod Ditentukan oleh penyediaan otomatis node
gke-tpu-topology limit.google.com/tpu Jenis node pool Ukuran node pool Machine type
1x1 1 Slice TPU host tunggal Fleksibel ct5l-hightpu-1t
2x2 4 Slice TPU host tunggal Fleksibel ct5l-hightpu-4t
2x4 8 Slice TPU host tunggal Fleksibel ct5l-hightpu-8t

Untuk mempelajari petunjuk tentang menyiapkan penyediaan otomatis node, lihat Mengonfigurasi TPU.

Dukungan untuk Spot VM

Penyediaan otomatis node mendukung pembuatan node pool berdasarkan Spot VM.

Membuat node pool berdasarkan Spot VM hanya dipertimbangkan jika pod yang tidak dapat dijadwalkan dengan toleransi untuk taint cloud.google.com/gke-spot="true":NoSchedule tersedia. Taint akan otomatis diterapkan ke node dalam node pool yang disediakan secara otomatis berdasarkan Spot VM.

Anda dapat membuat kombinasi menggunakan toleransi dengan nodeSelector atau aturan afinitas node untuk label node cloud.google.com/gke-spot="true" atau cloud.google.com/gke-provisioning=spot (untuk node yang menjalankan GKE versi 1.25.5-gke.2500 atau lebih baru) untuk memastikan bahwa workload Anda hanya berjalan di node pool berdasarkan Spot VM.

Dukungan untuk Pod yang meminta penyimpanan sementara

Penyediaan otomatis node mendukung pembuatan node pool saat Pod meminta penyimpanan sementara. Ukuran boot disk yang disediakan dalam node pool bersifat konstan untuk semua node pool baru yang disediakan secara otomatis. Ukuran boot disk ini dapat disesuaikan.

Defaultnya adalah 100 GiB. Penyimpanan sementara yang didukung oleh SSD lokal tidak didukung.

Penyediaan otomatis node akan menyediakan node pool 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 tinggi dari yang dapat dialokasikan, penyediaan otomatis node tidak akan menyediakan node pool. Ukuran disk untuk node tidak dikonfigurasi secara dinamis berdasarkan permintaan penyimpanan sementara dari Pod yang tertunda.

Batasan skalabilitas

Penyediaan otomatis node memiliki batasan yang sama seperti autoscaler cluster, serta batasan tambahan berikut:

Batasan jumlah workload yang terpisah
Penyediaan otomatis node mendukung maksimum 100 workload terpisah yang berbeda.
Batas jumlah node pool
Penyediaan otomatis node tidak memprioritaskan pembuatan node pool baru saat jumlah penggabungan dalam cluster mendekati 100. Anda dapat membuat lebih dari 100 node pool, tetapi hanya jika pembuatan node pool adalah satu-satunya opsi untuk menjadwalkan Pod yang tertunda.

Langkah berikutnya