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. 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:
- 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.
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 topologi16x16
, 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
. TPU v6e sedang dalam versi Pratinjau.
- TPU v4 dengan
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 v6e (tersedia di Pratinjau), 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
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 berikutnya
- Pelajari lebih lanjut cara mengaktifkan penyediaan otomatis node
- Pelajari autoscaler cluster lebih lanjut