Halaman berikut menjelaskan cara membuat cluster Standar Google Kubernetes Engine (GKE) dengan node yang mendukung virtualisasi bertingkat. VM Compute Engine menggunakan petunjuk Intel VT-x sehingga VM bertingkat dapat berjalan di VM yang mendasarinya di node GKE. Kemudian, Anda dapat men-deploy Pod yang menggunakan alat seperti QEMU untuk membuat VM bertingkat. Anda dapat menggunakan VM bertingkat untuk menjalankan workload khusus seperti emulator Android, atau workload yang mendapatkan manfaat dari VM sebagai batas isolasi.
Pengurangan implikasi performa
Dengan virtualisasi bertingkat yang dibantu hardware, beban kerja yang berjalan di VM bertingkat mungkin mengalami penurunan performa jika dibandingkan dengan konfigurasi virtualisasi yang tidak bertingkat. Jumlah dampak performa akan bergantung pada profil workload tertentu, termasuk karakteristik I/O dan penggunaan memori.
Selain itu, membuat VM bertingkat di VM dasar node GKE dapat memengaruhi performa beban kerja lain yang berjalan pada node tersebut.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
initialize
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
- Pastikan kebijakan organisasi Anda mendukung pembuatan VM bertingkat.
- Tinjau pembatasan VM bertingkat.
Persyaratan dan batasan
Pertimbangkan informasi berikut sebelum mengaktifkan virtualisasi bertingkat dengan GKE dan mengizinkan Pod Anda untuk membuat VM bertingkat:
- Anda hanya dapat mengonfigurasi node pool menggunakan VM bertingkat dengan rangkaian mesin VM yang jumlahnya terbatas. Lihat baris Virtualisasi bertingkat pada Perbandingan seri mesin untuk mengonfirmasi seri mesin yang didukung.
- Anda harus menggunakan jenis gambar
UBUNTU_CONTAINERD
, atau jenis gambarCOS_CONTAINERD
dengan node yang menjalankan versi 1.28.4-gke.1083000 atau yang lebih baru. - Anda hanya dapat menggunakan virtualisasi bertingkat dengan cluster Standar, bukan cluster Autopilot.
- Anda tidak dapat menggunakan penyediaan otomatis node dengan kumpulan node yang mengaktifkan virtualisasi bertingkat.
- Anda tidak dapat menggunakan virtualisasi bertingkat jika batasan Nonaktifkan virtualisasi bertingkat VM diterapkan untuk kebijakan organisasi Anda.
- Anda harus menetapkan
securityContext.privileged:true
agar Pod dapat berinteraksi dengan VM bertingkat.
Mengaktifkan virtualisasi bertingkat
Anda dapat mengaktifkan virtualisasi bertingkat saat membuat cluster—dengan mengaktifkannya untuk kumpulan node default—atau saat Anda membuat kumpulan node. Anda tidak dapat mengaktifkan atau menonaktifkan fitur untuk kumpulan node yang ada.
Petunjuk di bagian berikut membuat node pool dengan node dengan label nested-virtualization=enabled
. Setelah GKE membuat
node, Anda dapat menjadwalkan Pod yang membuat VM bertingkat di VM
dasar node.
Mengaktifkan virtualisasi bertingkat dengan cluster Standar baru
Buat cluster Standar baru dengan virtualisasi bertingkat yang diaktifkan untuk kumpulan node default. GKE hanya membuat node pool default dengan mengaktifkan virtualisasi bertingkat. GKE tidak otomatis mengaktifkan fitur ini untuk semua node pool baru yang dibuat untuk cluster:
gcloud container clusters create CLUSTER_NAME \
--enable-nested-virtualization \
--node-labels=nested-virtualization=enabled \
--machine-type=MACHINE_TYPE
Ganti kode berikut:
CLUSTER_NAME
: Nama cluster.MACHINE_TYPE
: Jenis mesin yang didukung (lihat Baris virtualisasi bertingkat).
Jika ingin, periksa apakah virtualisasi bertingkat diaktifkan untuk node dalam kumpulan node.
Sekarang Anda dapat menjadwalkan Pod yang membuat VM bertingkat pada VM node yang mendasarinya.
Mengaktifkan virtualisasi bertingkat dengan kumpulan node baru
Buat kumpulan node baru dengan virtualisasi bertingkat yang diaktifkan untuk cluster Standar yang ada:
gcloud container node pools create NODEPOOL_NAME \
--enable-nested-virtualization \
--node-labels=nested-virtualization=enabled \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE
Ganti kode berikut:
NODEPOOL_NAME
: Nama kumpulan node tempat virtualisasi bertingkat diaktifkan.CLUSTER_NAME
: Nama cluster.MACHINE_TYPE
: Jenis mesin dukungan (lihat Baris virtualisasi bertingkat).
Jika ingin, periksa apakah virtualisasi bertingkat diaktifkan untuk node dalam kumpulan node.
Sekarang Anda dapat menjadwalkan Pod yang membuat VM bertingkat pada VM node yang mendasarinya.
Menjadwalkan Pod ke node yang mendukung virtualisasi bertingkat
Untuk menjadwalkan Pod pada node yang mengaktifkan virtualisasi bertingkat, tambahkan pemilih node berikut ke spesifikasi:
nodeSelector:
nested-virtualization: enabled
Selain itu, agar Pod dapat terhubung dengan VM bertingkat, Anda harus menetapkan Pod sebagai hak istimewa dengan mengonfigurasi securityContext.privileged:true
.