Halaman berikut menjelaskan cara membuat Google Kubernetes Engine (GKE) Cluster standar dengan node yang mendukung cluster bertingkat virtualisasi. VM Compute Engine menggunakan Intel VT-x agar VM bertingkat dapat berjalan di node GKE VM dasar. Kemudian, Anda dapat men-deploy Pod yang menggunakan alat seperti QEMU untuk membuat VM bertingkat. VM bertingkat dapat digunakan untuk menjalankan workload khusus seperti emulator Android, atau workload yang mendapatkan manfaat dari VM sebagai isolasi {i>border<i}.
Berkurangnya implikasi performa
Dengan virtualisasi bertingkat dengan bantuan hardware, workload berjalan di VM mungkin mengalami pengurangan performa jika dibandingkan dengan konfigurasi virtualisasi tanpa bertingkat. Jumlah dampak performa akan bergantung pada profil workload tertentu, termasuk Karakteristik penggunaan memori dan I/O.
Selain itu, pembuatan VM bertingkat di node GKE dasar VM dapat memengaruhi performa workload lain yang berjalan pada node tersebut.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
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.
- Meninjau VM bertingkat pembatasan.
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 dengan VM bertingkat seri mesin VM. Lihat baris Nested virtualization pada Machine perbandingan serial 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 node penyediaan otomatis dengan kumpulan node bertingkat yang mendukung virtualisasi.
- Anda tidak dapat menggunakan virtualisasi bertingkat jika Menonaktifkan virtualisasi bertingkat VM batasan diberlakukan untuk kebijakan organisasi Anda.
- Anda harus menetapkan
securityContext.privileged:true
agar Pod dapat berinteraksi 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 kumpulan node dengan node dengan
label nested-virtualization=enabled
Setelah GKE membuat
untuk node khusus, Anda dapat menjadwalkan Pod yang membuat VM bertingkat
Pesan Suara.
Mengaktifkan virtualisasi bertingkat dengan cluster Standar baru
Membuat cluster Standar baru dengan virtualisasi bertingkat yang diaktifkan untuk kumpulan node default. GKE hanya membuat node pool default dengan mengaktifkan virtualisasi bertingkat. GKE tidak secara otomatis mengaktifkan fitur untuk semua kumpulan node 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).
Atau, periksa apakah virtualisasi bertingkat yang diaktifkan untuk sebuah node dalam kumpulan node.
Sekarang Anda dapat menjadwalkan Pod yang membuat VM bertingkat di VM yang mendasari.
Mengaktifkan virtualisasi bertingkat dengan kumpulan node baru
Membuat kumpulan node baru dengan virtualisasi bertingkat yang diaktifkan untuk node yang ada Cluster standar:
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).
Atau, periksa apakah virtualisasi bertingkat yang diaktifkan untuk sebuah node dalam kumpulan node.
Sekarang Anda dapat menjadwalkan Pod yang membuat VM bertingkat di VM yang mendasari.
Menjadwalkan Pod ke node yang mendukung virtualisasi bertingkat
Untuk menjadwalkan Pod pada node dengan virtualisasi bertingkat yang diaktifkan, tambahkan pemilih node berikut ke spesifikasi:
nodeSelector:
nested-virtualization: enabled
Selain itu, agar Pod dapat terhubung dengan VM bertingkat, Anda harus menetapkan Pod sebagai
dilindungi dengan mengonfigurasi securityContext.privileged:true
.