VM Extension Manager utilizza le policy di estensione per gestire le estensioni VM su larga scala. Per ulteriori informazioni, consulta Informazioni su VM Extension Manager. Questo documento descrive come visualizzare, aggiornare ed eliminare le policy di estensione VM.
Ruoli e autorizzazioni IAM
Per ottenere le autorizzazioni necessarie per visualizzare, modificare ed eliminare le policy di estensione VM, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Per visualizzare le policy delle estensioni:
-
VM Extension Policy Viewer (
roles/compute.vmExtensionPolicyViewer) -
Compute VM extension policy admin (
roles/compute.vmExtensionPolicyAdmin)
-
VM Extension Policy Viewer (
-
Per modificare le policy di estensione:
VM Extension Policy Admin (
roles/compute.vmExtensionPolicyAdmin) -
Per eliminare le policy di estensione:
VM Extension Policy Admin (
roles/compute.vmExtensionPolicyAdmin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per visualizzare, modificare ed eliminare le policy delle estensioni VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per visualizzare, modificare ed eliminare le policy di estensione VM sono necessarie le seguenti autorizzazioni:
-
Per visualizzare le policy di estensione:
compute.vmExtensionPolicies.list -
Per visualizzare i dettagli di una policy di estensione:
compute.vmExtensionPolicies.get -
Per modificare le policy di estensione:
compute.vmExtensionPolicies.update -
Per eliminare le policy di estensione:
compute.vmExtensionPolicies.delete
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni sui ruoli e le autorizzazioni IAM in Compute Engine, consulta Ruoli e autorizzazioni di Compute Engine.
Visualizzare le policy delle estensioni
Puoi visualizzare un elenco delle policy di estensione VM nel tuo progetto o i dettagli di una policy specifica utilizzando la console Google Cloud o Google Cloud CLI.
Console
- Nella console Google Cloud , vai alla pagina Policy delle estensioni VM. Questa pagina elenca tutte le policy di estensione VM nel progetto.
- Per visualizzare i dettagli di una policy di estensione specifica, fai clic sul nome della policy.
gcloud
Per visualizzare tutte le policy di estensione in un progetto, utilizza il comando gcloud beta compute zone-vm-extension-policies list:
gcloud beta compute zone-vm-extension-policies list \ --project=PROJECT_ID \ --zone=ZONE \ --page-size=PAGE_SIZE
Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.ZONE: il nome della zona in cui vuoi elencare i criteri delle estensioni VM.PAGE_SIZE: il numero massimo di risultati da restituire per pagina.
Per visualizzare i dettagli di una policy di estensione specifica, utilizza il comando gcloud beta compute zone-vm-extension-policies describe:
gcloud beta compute zone-vm-extension-policies describe POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
Sostituisci quanto segue:
POLICY_NAME: il nome della policy di estensione VM che vuoi descrivere.PROJECT_ID: il tuo ID progetto Google Cloud .ZONE: la Google Cloud zona in cui si trova il criterio di estensione VM.
Modificare le estensioni aggiornando una policy di estensione VM
Quando aggiorni una policy, VM Extension Manager implementa le modifiche a tutte le VM applicabili, in genere entro un minuto. Se modifichi le etichette di inclusione, le estensioni potrebbero essere installate su nuove VM o disinstallate da VM esistenti a seconda che corrispondano alle etichette aggiornate.
Console
- Nella console Google Cloud , vai alla pagina Policy delle estensioni VM.
- Seleziona il criterio che vuoi aggiornare.
- Fai clic su Modifica.
- Modifica Descrizione, Priorità, Estensioni o Istanze VM di destinazione.
- Fai clic su Salva.
gcloud
Utilizza il comando gcloud beta compute zone-vm-extension-policies update per modificare una
policy di estensione VM esistente. Quando aggiorni una norma utilizzando gcloud, la richiesta funge da
sostituzione completa. I campi facoltativi omessi vengono ripristinati ai valori predefiniti
anziché conservare i valori esistenti del criterio modificato.
Per aggiornare una policy di estensione VM, esegui questo comando:
gcloud beta compute zone-vm-extension-policies update POLICY_NAME \ --zone=ZONE \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \ --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \ --inclusion-labels=KEY_1=VALUE_1 \ --priority=PRIORITY_NUMBER \ --description="DESCRIPTION"
Sostituisci quanto segue:
POLICY_NAME: il nome della policy di estensione VM da aggiornare.ZONE: la Google Cloud zona in cui si applica la policy.EXTENSION_NAME_1,EXTENSION_NAME_2: i nomi delle estensioni da aggiornare. Devi specificare almeno un'estensione.VERSION_1: la versione della prima estensione VM.VERSION_2: la versione della seconda estensione VM.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: un elenco separato da virgole di coppie chiave-valore in cui la chiave è il nome dell'estensione e il valore è il percorso del file di configurazione per quell'estensione. Questo percorso si trova sulla VM in cui esegui il comandogcloud, non sulla VM in cui installi l'estensione.In alternativa, per fornire la configurazione come stringa incorporata, utilizza il flag
--configanziché--config-from-file, ad esempioEXTENSION_NAME_1="CONFIG_1". Puoi utilizzare--config-from-fileo--config, ma non entrambi nello stesso comando.KEY_1=VALUE_1: un elenco separato da virgole di coppie chiave-valore che definiscono le etichette di inclusione per un selettore. Le VM devono avere tutte le etichette specificate in un selettore per essere prese di mira. Se specifichi--inclusion-labelspiù volte, la policy ha come target le VM che corrispondono a uno qualsiasi dei selettori forniti (operatore logico OR). Se ometti questo flag, la policy ha come target tutte le VM nella zona specificata.PRIORITY_NUMBER: il numero di priorità per la policy di estensione VM.DESCRIPTION: una descrizione della policy di estensione VM.
Disinstallare le estensioni eliminando una policy di estensione VM
Quando elimini una policy, il gestore di estensioni VM disinstalla le estensioni da tutte le VM gestite da quella policy. Tuttavia, se un'altra policy attiva con priorità inferiore si applica a una VM e dichiara la stessa estensione, l'estensione rimane installata su quella VM in base alla policy con priorità inferiore.
Gestore di estensioni VM rimuove le estensioni da tutte le VM accessibili entro un minuto dall'eliminazione della policy. Se una VM è inaccessibile perché l'agente guest è stato rimosso o la VM è stata eliminata, VM Extension Manager salta l'eliminazione dell'estensione. Se una VM di questo tipo torna disponibile, VM Extension Manager rimuove le estensioni in quel momento.
Console
- Nella console Google Cloud , vai alla pagina Policy delle estensioni VM.
- Seleziona la policy che vuoi eliminare.
- Fai clic su Elimina.
- Nella finestra di dialogo di conferma, fai clic su Elimina.
gcloud
Utilizza il comando gcloud beta compute zone-vm-extension-policies delete per eliminare una policy di estensione VM esistente.
gcloud beta compute zone-vm-extension-policies delete POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
Sostituisci quanto segue:
POLICY_NAME: il nome della policy di estensione VM che vuoi eliminare.PROJECT_ID: l'ID del tuo Google Cloud progetto.ZONE: la Google Cloud zona in cui si trova la policy.
Risolvi i problemi relativi alle estensioni VM
Questa sezione descrive come risolvere i problemi relativi alle estensioni VM.
Verificare che un'estensione sia installata
Puoi verificare che un'estensione sia installata controllando quanto segue sulla VM:
Connettiti alla VM e controlla i processi in esecuzione.
La tabella seguente elenca i nomi dei processi per ogni estensione:
Nome estensione Nome del processo di estensione google-cloud-sap-extensiongoogle_cloud_sap_agentgoogle-cloud-workload-extensiongoogle_cloud_workload_agentops-agentops-agentLinux
Sostituiscips aux | grep 'EXTENSION_PROCESS_NAME'
EXTENSION_PROCESS_NAMEcon il nome del processo dell'estensione. Ad esempio, per controllare il processo Ops Agent, esegui questo comando:ps aux | grep 'ops-agent'
Windows
Sostituiscitasklist | findstr "EXTENSION_PROCESS_NAME"
EXTENSION_PROCESS_NAMEcon il nome del processo dell'estensione. Ad esempio, per controllare il processo Ops Agent, esegui questo comando:tasklist | findstr "ops-agent"
L'output del comando
pssu una VM Linux per l'agente Ops potrebbe mostrare una voce simile alla seguente:.... /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3 ....
Abilitare e rivedere i log dell'agente ospite. I log dell'agente ospite mostrano quando un'estensione viene installata e avviata.
Di seguito è riportato un esempio dell'output che potresti visualizzare nei log dell'agente guest quando è installata un'estensione Ops Agent:
my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87" my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]] my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-centrall-a/ops-agent my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87 my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87) my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"
Risolvere i problemi di installazione
Se un'estensione non viene installata su una VM dopo la creazione di una policy, segui questi passaggi per risolvere il problema:
- Attendi l'applicazione delle norme. L'applicazione di un criterio, inclusi eventuali tentativi, può richiedere fino a un'ora.
- Verifica che le etichette di inclusione specificate nella policy corrispondano a quelle della VM.
- Per identificare potenziali errori di installazione, attiva il logging di debug per l'agente guest.
Dopo aver risolto il problema di base, riprova l'installazione utilizzando uno dei seguenti metodi:
- Ricrea la policy: elimina la policy e poi creane una nuova.
Utilizza una policy temporanea ad alta priorità: se vuoi evitare di ricreare una policy che interessa molte VM, utilizza una policy temporanea a priorità più elevata per riprovare l'installazione su VM specifiche:
- Aggiungi una nuova etichetta alle VM per cui l'installazione non è riuscita. Ad esempio, aggiungi un'etichetta
status=failed. - Crea una policy con una priorità più alta che abbia come target la nuova etichetta.
Ad esempio, se la policy originale non riuscita aveva la priorità predefinita
1000, crea una policy con una priorità più alta, ad esempio500.gcloud beta compute zone-vm-extension-policies create temp-policy
--project=test-project
--zone=us-central1-f
--extensions=ops-agent
--config-from-file=ops-agent="/usr/ops-agent-config.yaml"
--priority=500
--inclusion-labels=status=failed - Dopo aver installato correttamente l'estensione, elimina la policy temporanea e rimuovi l'etichetta dalle VM. L'estensione rimane installata perché le norme originali sono ancora attive.
- Aggiungi una nuova etichetta alle VM per cui l'installazione non è riuscita. Ad esempio, aggiungi un'etichetta
Visualizzare i log di debug per l'agente ospite
Per attivare il logging di debug, aggiungi le impostazioni di livello e verbosità del log alla sezione
Core del file di configurazione
dell'agente guest nel seguente modo:
Linux
- Apri il file di configurazione dell'agente guest che si trova in
/etc/default/instance_configs.cfg. Aggiungi le seguenti righe al file. Se la sezione
[Core]esiste già, aggiungi le impostazionilog_levelelog_verbosity.[Core] log_level = 4 log_verbosity = 4Riavvia il gestore dell'agente guest eseguendo questo comando:
sudo systemctl restart google-guest-agent-managerPer visualizzare i log dell'attività dell'agente guest durante l'installazione dell'estensione, esegui questo comando:
journalctl -u google-guest-agent-manager
Windows
- Apri il file di configurazione dell'agente guest che si trova in
C:\Program Files\Google\Compute Engine\instance_configs.cfg. Aggiungi le seguenti righe al file. Se la sezione
[Core]esiste già, aggiungi le impostazionilog_levelelog_verbosity.[Core] log_level = 4 log_verbosity = 4Riavvia il gestore dell'agente guest eseguendo questo comando come amministratore di Windows:
net stop GCEAgentManager net start GCEAgentManagerPer visualizzare i log dell'attività dell'agente guest durante l'installazione dell'estensione, esegui questo comando in PowerShell:
Get-Eventlog -Source google_guest_agent_manager -LogName Application
Dopo aver attivato i log di debug, verifica la presenza dei seguenti errori comuni:
- Spazio su disco insufficiente: se i log segnalano spazio su disco insufficiente, libera spazio sul disco o ridimensionalo per aggiungere altro spazio.
- Utilizzo eccessivo delle risorse: se i log indicano che l'agente guest ha interrotto l'estensione a causa dell'utilizzo eccessivo di memoria o CPU, modifica il tipo di macchina della VM in uno con più risorse.
Passaggi successivi
- Scopri di più su VM Extension Manager.