La pagina seguente spiega come creare Google Kubernetes Engine (GKE) Cluster standard con nodi che supportano i cluster nidificati la virtualizzazione. Le VM di Compute Engine utilizzano Intel VT-x in modo che le VM nidificate possano essere eseguite sull'infrastruttura una VM sottostante. Quindi, puoi eseguire il deployment di pod che utilizzano strumenti come QEMU per creare VM nidificate. Puoi utilizzare VM nidificate per eseguire carichi di lavoro specializzati come come emulatori Android o carichi di lavoro che traggono vantaggio dalla VM come un isolamento confine.
Implicazioni in termini di prestazioni ridotte
Con la virtualizzazione nidificata con assistenza hardware, i carichi di lavoro in esecuzione Le VM potrebbero subire una ridotta prestazioni rispetto alle configurazioni di virtualizzazione non nidificate. La quantità di l'impatto sulle prestazioni dipenderà dal profilo del carico di lavoro specifico, inclusi i suoi Caratteristiche di I/O e utilizzo della memoria.
Inoltre, la creazione di VM nidificate sui nodi GKE sottostante Le VM potrebbero influire sulle prestazioni di altri carichi di lavoro in esecuzione sui nodi.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Attiva l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
install e poi
inizializzare
con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente
eseguendo
gcloud components update
.
- Assicurati che il criterio dell'organizzazione supporti la creazione di VM nidificate.
- Esamina la VM nidificata limitazioni.
Requisiti e limitazioni
Considera le seguenti informazioni prima di abilitare la virtualizzazione nidificata con GKE e consentire ai tuoi pod di creare VM nidificate:
- Puoi configurare pool di nodi solo con VM nidificate con un numero limitato di di macchine virtuali. Guarda la riga Virtualizzazione nidificata in Macchina confronto tra serie per confermare le serie di macchine supportate.
- Devi utilizzare il tipo di immagine
UBUNTU_CONTAINERD
oCOS_CONTAINERD
con nodi che eseguono la versione 1.28.4-gke.1083000 o successive. - Puoi utilizzare la virtualizzazione nidificata solo con i cluster Standard, non Autopilot.
- Non puoi utilizzare nodo provisioning automatico con pool di nodi abilitati per la virtualizzazione nidificata.
- Non puoi utilizzare la virtualizzazione nidificata se Disabilita la virtualizzazione nidificata delle VM vincolo viene applicata in modo forzato per i criteri dell'organizzazione.
- Devi impostare
securityContext.privileged:true
affinché i pod possano interagire nidificate.
Abilita virtualizzazione nidificata
Puoi abilitare la virtualizzazione nidificata quando crei un cluster, abilitandola per il pool di nodi predefinito o quando crei un pool di nodi. Non puoi abilitare o la funzionalità per un pool di nodi esistente.
Le istruzioni nelle sezioni seguenti creano pool di nodi con nodi con
etichetta nested-virtualization=enabled
. Dopo che GKE ha creato
puoi pianificare i pod che hanno creato VM nidificate sull'infrastruttura
VM.
Abilita la virtualizzazione nidificata con un nuovo cluster Standard
Crea un nuovo cluster Standard con la virtualizzazione nidificata abilitata per il pool di nodi predefinito. GKE crea solo il pool di nodi predefinito con la virtualizzazione nidificata abilitata. GKE non esegue automaticamente abilita la funzionalità per tutti i nuovi pool di nodi creati per il cluster:
gcloud container clusters create CLUSTER_NAME \
--enable-nested-virtualization \
--node-labels=nested-virtualization=enabled \
--machine-type=MACHINE_TYPE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.MACHINE_TYPE
: un tipo di macchina supportato (vedi il riga della virtualizzazione nidificata).
Facoltativamente, verifica che la virtualizzazione nidificata sia attivata per un nodo nel pool di nodi.
Ora puoi pianificare pod che creano VM nidificate sottostante del nodo.
Abilita la virtualizzazione nidificata con un nuovo pool di nodi
Crea un nuovo pool di nodi con la virtualizzazione nidificata abilitata per un pool esistente Cluster standard:
gcloud container node pools create NODEPOOL_NAME \
--enable-nested-virtualization \
--node-labels=nested-virtualization=enabled \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del pool di nodi in cui è abilitata la virtualizzazione nidificata.CLUSTER_NAME
: il nome del cluster.MACHINE_TYPE
: un tipo di macchina di supporto (vedi il riga della virtualizzazione nidificata).
Facoltativamente, verifica che la virtualizzazione nidificata sia attivata per un nodo nel pool di nodi.
Ora puoi pianificare pod che creano VM nidificate sottostante del nodo.
Pianifica un pod su un nodo che supporta la virtualizzazione nidificata
Per pianificare un pod su un nodo in cui è abilitata la virtualizzazione nidificata, aggiungi seguente selettore di nodi alla specifica:
nodeSelector:
nested-virtualization: enabled
Inoltre, affinché il pod si connetta con una VM nidificata, devi impostarlo come
privilegiati configurando securityContext.privileged:true
.