Menggunakan VM bertingkat dengan cluster GKE Standard


Halaman berikut menjelaskan cara membuat cluster Google Kubernetes Engine (GKE) Standard dengan node yang mendukung virtualisasi bertingkat. VM Compute Engine menggunakan petunjuk Intel VT-x sehingga VM bertingkat dapat berjalan di VM dasar 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.

Mengurangi implikasi performa

Dengan virtualisasi bertingkat yang dibantu hardware, workload yang berjalan di VM bertingkat mungkin mengalami penurunan performa jika dibandingkan dengan konfigurasi virtualisasi non-bertingkat. Jumlah dampak performa akan bergantung pada profil beban kerja tertentu, termasuk karakteristik penggunaan I/O dan memorinya.

Selain itu, membuat VM bertingkat di VM dasar node GKE dapat memengaruhi performa workload lain yang berjalan di 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 lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Persyaratan dan batasan

Pertimbangkan informasi berikut sebelum mengaktifkan virtualisasi bertingkat dengan GKE dan mengizinkan Pod Anda membuat VM bertingkat:

  • Anda hanya dapat mengonfigurasi node pool dengan VM bertingkat dengan jumlah rangkaian mesin VM yang terbatas. Lihat baris Virtualisasi bertingkat di Perbandingan seri mesin untuk mengonfirmasi seri mesin yang didukung.
  • Anda harus menggunakan jenis image UBUNTU_CONTAINERD, atau jenis image COS_CONTAINERD dengan node yang menjalankan versi 1.28.4-gke.1083000 atau yang lebih baru.
  • Anda hanya dapat menggunakan virtualisasi bertingkat dengan cluster Standard, bukan cluster Autopilot.
  • Anda tidak dapat menggunakan penyediaan otomatis node dengan node pool 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 node pool default—atau saat membuat node pool. Anda tidak dapat mengaktifkan atau menonaktifkan fitur untuk node pool yang ada.

Petunjuk di bagian berikut membuat node pool dengan node yang memiliki 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 Standard baru

Buat cluster Standard baru dengan virtualisasi bertingkat yang diaktifkan untuk node pool default. GKE hanya membuat node pool default dengan virtualisasi bertingkat yang diaktifkan. 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:

Secara opsional, periksa apakah virtualisasi bertingkat diaktifkan untuk node di node pool.

Sekarang Anda dapat menjadwalkan Pod yang membuat VM bertingkat di VM dasar node.

Mengaktifkan virtualisasi bertingkat dengan node pool baru

Buat node pool baru dengan virtualisasi bertingkat yang diaktifkan untuk cluster Standard 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:

Secara opsional, periksa apakah virtualisasi bertingkat diaktifkan untuk node di node pool.

Sekarang Anda dapat menjadwalkan Pod yang membuat VM bertingkat di VM dasar node.

Menjadwalkan Pod ke node yang mendukung virtualisasi bertingkat

Untuk menjadwalkan Pod di 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 berhak istimewa dengan mengonfigurasi securityContext.privileged:true.

Langkah selanjutnya