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:
- GKE Sandbox.
- Sistem operasi Windows.
- Mengontrol afinitas pemesanan.
- Penskalaan otomatis PersistentVolumes lokal.
- Node penyediaan otomatis dengan SSD lokal sebagai penyimpanan sementara.
- Penyediaan otomatis melalui penjadwalan kustom yang menggunakan Filter yang telah diubah.
- Mengonfigurasi multi-threading simultan (SMT).
Cara kerja penyediaan otomatis node
Penyediaan otomatis node adalah mekanisme autoscaler cluster, yang 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:
- Permintaan resource CPU, memori, dan penyimpanan efemeral.
- Permintaan GPU.
- Afinitas node dan pemilih label Pod yang tertunda.
- Taint dan toleransi node pada Pod yang tertunda.
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
, efekNoExecute
, atau semua efek.
Untuk mendapatkan petunjuk, lihat Mengonfigurasi pemisahan workload di GKE.
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 workload machine learning. Kumpulan node slice TPU host tunggal dan kumpulan node slice TPU multi-host mendukung penskalaan otomatis dan penyediaan otomatis.
Dengan flag --enable-autoprovisioning
di cluster GKE, GKE membuat atau menghapus kumpulan node slice TPU host tunggal atau multi-host dengan versi TPU dan topologi yang memenuhi persyaratan workload yang tertunda.
Saat Anda menggunakan --enable-autoscaling
, GKE menskalakan kumpulan node berdasarkan jenisnya, sebagai berikut:
Kumpulan node slice TPU host tunggal: GKE menambahkan atau menghapus node TPU di kumpulan node yang ada. Kumpulan node dapat berisi sejumlah node TPU antara nol dan ukuran maksimum kumpulan node seperti yang ditentukan oleh tanda --max-nodes dan tanda --total-max-nodes. Saat kumpulan node diskalakan, semua node TPU di kumpulan node memiliki jenis mesin dan topologi yang sama. Untuk mempelajari cara membuat kumpulan node slice TPU host tunggal lebih lanjut, lihat Membuat kumpulan node.
Kumpulan node slice TPU multi-host: GKE meningkatkan skala kumpulan node secara atomik dari nol hingga jumlah node yang diperlukan untuk memenuhi topologi TPU. Misalnya, dengan kumpulan node TPU dengan jenis mesin
ct5lp-hightpu-4t
dan topologi16x16
, kumpulan node tersebut berisi 64 node. Autoscaler GKE memastikan bahwa kumpulan node ini memiliki tepat 0 atau 64 node. Saat melakukan penskalaan kembali, GKE akan mengeluarkan semua pod terjadwal, dan menghabiskan seluruh kumpulan node hingga nol. Untuk mempelajari lebih lanjut cara membuat kumpulan node slice TPU multi-host, lihat Membuat kumpulan node.
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, TPU v4 dengantpu-v4-podslice
atau TPU v5e dengantpu-v5-lite-podslice
.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 topologi2x4
:- Jika Anda menentukan
google.com/tpu = 8
, penyediaan otomatis node akan meningkatkan skala node pool slice TPU host tunggal dengan menambahkan satu mesinct5lp-hightpu-8t
. - Jika Anda menentukan
google.com/tpu = 4
, penyediaan otomatis node akan membuat node pool slice TPU multi-host dengan dua mesinct5lp-hightpu-4t
.
- Jika Anda menentukan
cloud.google.com/reservation-name
: Nama pemesanan yang digunakan workload. Jika dihilangkan, workload tidak akan menggunakan pemesanan apa pun.
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
atau2x4x4
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 |
-
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 selanjutnya
- Pelajari lebih lanjut cara mengaktifkan penyediaan otomatis node
- Pelajari autoscaler cluster lebih lanjut