Questo documento descrive come verificare se la virtualizzazione nidificata è abilitata e come modificare il vincolo booleano che controlla se la virtualizzazione nidificata è abilitata per la tua organizzazione, il tuo progetto o la tua cartella.
Un vincolo booleano all'interno di una policy dell'organizzazione determina se puoi creare VM nidificate. Il vincolo booleano per la virtualizzazione nidificata è una limitazione, il che significa che, quando viene applicato, indica alla policy dell'organizzazione di limitare la creazione di VM nidificate. Se applichi questo vincolo, Compute Engine impedisce l'esposizione delle estensioni di virtualizzazione alle VM (VM L1). Ciò significa che, sebbene tu possa ancora creare VM L1 con configurazioni che abilitano la virtualizzazione nidificata, non puoi eseguire VM nidificate (VM L2) su queste VM L1. Per ulteriori informazioni sui vincoli booleani, consulta la sezione Informazioni sui vincoli.
Il vincolo Disabilita la virtualizzazione nidificata della VM non viene applicato per impostazione predefinita, quindi non devi modificare alcun vincolo booleano per abilitare la virtualizzazione nidificata. Ciò nonostante, Google consiglia di impostare esplicitamente il valore del vincolo in modo che l'organizzazione, le cartelle e i progetti non si basino sull'impostazione predefinita. Se il tuo progetto non è subordinato a un'organizzazione, il vincolo non viene applicato per impostazione predefinita e non puoi modificarlo.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Controllare se la virtualizzazione nidificata è consentita
Verifica se la virtualizzazione nidificata è consentita per un'organizzazione, una cartella o un progetto utilizzando la console Google Cloud , Google Cloud CLI o REST.
Console
Verifica se puoi creare VM nidificate nella tua organizzazione, cartella o progetto controllando se il vincolo booleano per la disattivazione della virtualizzazione nidificata non è applicato. Se il vincolo Disattiva la virtualizzazione nidificata della VM non viene applicato dai criteri dell'organizzazione, puoi creare VM nidificate.
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di organizzazioni, cartelle e progetti, seleziona l'entità per cui visualizzare le policy dell'organizzazione.
Seleziona il vincolo Disabilita la virtualizzazione nidificata della VM per aprire la pagina Dettagli policy.
Visualizza il valore di Applicazione forzata:
Se il valore è Non applicato, la virtualizzazione nidificata è abilitata e puoi creare VM nidificate.
Se il valore è Forzata, la virtualizzazione nidificata è disattivata e non puoi creare VM nidificate.
gcloud
Controlla il valore del vincolo
booleano compute.disableNestedVirtualization utilizzando il comando
gcloud resource-manager org-policies describe.
Se l'output di Google Cloud CLI non mostra un valore per booleanPolicy, la virtualizzazione nidificata è consentita e puoi creare VM nidificate.
Se il valore di output di Google Cloud CLI per booleanPolicy è enforced: true,
allora il criterio dell'organizzazione applica il vincolo di disattivazione della virtualizzazione nidificata e non puoi creare VM nidificate.
gcloud resource-manager org-policies \ describe constraints/compute.disableNestedVirtualization \ (--organization=ORGANIZATION_ID | --folder=FOLDER_ID | --project=PROJECT_ID) --effective
Sostituisci esattamente uno dei seguenti elementi:
ORGANIZATION_ID: l'ID dell'organizzazione di cui ottenere il valore del vincolo. Per un elenco delle organizzazioni accessibili e dei relativi ID, esegui il comandogcloud organizations list.FOLDER_ID: l'ID della cartella di cui ottenere il valore del vincolo. Per un elenco delle cartelle accessibili e dei relativi ID, esegui il comandogcloud resource-manager folders list.PROJECT_ID: l'ID del progetto per ottenere il valore del vincolo. Per un elenco dei progetti accessibili e dei relativi ID, esegui il comandogcloud projects list.
REST
Utilizza REST per controllare il valore del vincolo booleano compute.disableNestedVirtualization, che determina se puoi creare VM nidificate nella tua organizzazione, cartella o progetto.
Se la risposta REST non restituisce un valore per "booleanPolicy"
per il vincolo, la virtualizzazione nidificata non è disattivata e puoi
creare VM nidificate.
Se il valore di "booleanPolicy" nell'output è "enforced": true, la virtualizzazione nidificata è disattivata e non puoi creare VM nidificate.
POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:getOrgPolicy
{
"constraint": "compute.disableNestedVirtualization"
}
Sostituisci quanto segue:
RESOURCE: la risorsa per cui recuperare la policy dell'organizzazione. Imposta uno dei seguenti valori:organizations: chiama il metodoorganizations.getOrgPolicyfolders: chiama il metodofolders.getOrgPolicyprojects: chiama il metodoprojects.getOrgPolicy
RESOURCE_ID: l'organizzazione, la cartella o il progetto su cui controllare lo stato del vincolo di disattivazione della virtualizzazione nidificata
All'interno di una VM Linux, puoi eseguire il comando grep -c vmx /proc/cpuinfo per
verificare se le estensioni di virtualizzazione sono disponibili per la VM. Se questo comando
restituisce 0, le estensioni di virtualizzazione non sono disponibili e non puoi eseguire
VM nidificate. Uno dei motivi potrebbe essere che il vincolo Disabilita la virtualizzazione
nidificata delle VM è applicato da un criterio dell'organizzazione.
Se provi ad avviare una VM nidificata utilizzando KVM, potresti visualizzare un messaggio di errore
simile al seguente: Could not access KVM kernel module: No such file or
directory.
Modificare la policy dell'organizzazione per la virtualizzazione nidificata
Se disponi del ruolo appropriato, puoi controllare se un'organizzazione, una cartella o un progetto possono creare VM nidificate. Controlla questa applicazione utilizzando il vincolo booleano per la virtualizzazione nidificata.
Utilizza la console Google Cloud , Google Cloud CLI o REST per attivare la virtualizzazione nidificata per un'organizzazione, una cartella o un progetto.
Console
Per abilitare la virtualizzazione nidificata, disattiva l'applicazione del vincolo booleano Disattiva la virtualizzazione nidificata della VM e, per disabilitare la virtualizzazione nidificata, attiva l'applicazione del vincolo booleano.
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di organizzazioni, cartelle e progetti, seleziona l'entità per cui modificare le policy dell'organizzazione.
Seleziona il vincolo Disabilita la virtualizzazione nidificata della VM per aprire la pagina Dettagli policy.
Fai clic su Modifica e poi su Personalizza.
In Applicazione forzata, seleziona una delle seguenti opzioni di applicazione forzata per il vincolo booleano Disattiva virtualizzazione nidificata VM:
- On: attiva l'applicazione forzata e disattiva la virtualizzazione nidificata
- Off: disattiva l'applicazione forzata e attiva la virtualizzazione nidificata
Fai clic su Salva.
gcloud
Utilizza il comando gcloud resource-manager org-policies per attivare o disattivare l'applicazione del vincolo booleano della policy dell'organizzazione compute.disableNestedVirtualization.
Se disattivi il vincolo compute.disableNestedVirtualization utilizzando
il comando disable-enforce, puoi creare VM con la virtualizzazione
nidificata attivata.
Se attivi il vincolo utilizzando il comando enable-enforce, non puoi creare VM con la virtualizzazione nidificata abilitata.
gcloud resource-manager org-policies \ ( disable-enforce | enable-enforce ) compute.disableNestedVirtualization \ (--organization=ORGANIZATION_ID | --folder=FOLDER_ID | --project=PROJECT_ID)
Sostituisci esattamente uno dei seguenti elementi:
ORGANIZATION_ID: l'ID dell'organizzazione di cui modificare il valore del vincolo. Per un elenco delle organizzazioni accessibili e dei relativi ID, esegui il comandogcloud organizations list.FOLDER_ID: l'ID della cartella di cui modificare il valore del vincolo. Per un elenco delle cartelle accessibili e dei relativi ID, esegui il comandogcloud resource-manager folders list.PROJECT_ID: l'ID del progetto di cui modificare il valore del vincolo. Per un elenco dei progetti accessibili e dei relativi ID, esegui il comandogcloud projects list.
REST
Utilizza REST per modificare il valore del vincolo booleano compute.disableNestedVirtualization, che determina se puoi creare VM nidificate nella tua organizzazione, cartella o progetto.
POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:setOrgPolicy
{
"policy": {
"booleanPolicy": {
"enforced": ENFORCE
},
"constraint": "constraints/compute.disableNestedVirtualization"
}
}
Sostituisci quanto segue:
RESOURCE: la risorsa per modificare la policy dell'organizzazione. Imposta uno dei seguenti valori:organizations: chiama il metodoorganizations.setOrgPolicyfolders: chiama il metodofolders.setOrgPolicyprojects: chiama il metodoprojects.setOrgPolicy
RESOURCE_ID: l'organizzazione, la cartella o il progetto su cui controllare lo stato del vincolo di disattivazione della virtualizzazione nidificataENFORCE: determina se la policy dell'organizzazione applica il vincolo booleanocompute.disableNestedVirtualization. Imposta uno dei seguenti valori:true: per applicare il vincolo. Con questa impostazione non puoi creare VM con la virtualizzazione nidificata abilitata.false: per non applicare il vincolo. Con questa impostazione, puoi creare VM con la virtualizzazione nidificata abilitata.