Il runtime VM su GDC ti consente di eseguire e orchestrare macchine virtuali (VM) in un ambiente di sviluppo uniforme su Google Distributed Cloud utilizzando KubeVirt. In questa guida rapida, utilizzerai il runtime VM su GDC per creare una VM nel tuo cluster.
Prima di iniziare
Per completare questa guida rapida, devi avere accesso a un cluster Google Distributed Cloud versione 1.12 (anthosBareMetalVersion: 1.12) o successiva. Puoi utilizzare qualsiasi tipo di cluster in grado di eseguire workload. Se necessario,
prova Google Distributed Cloud su Compute Engine
o consulta la
panoramica della creazione dei cluster.
Abilita VM Runtime on GDC
VM Runtime on GDC viene installato automaticamente in Google Distributed Cloud versione 1.10 o successive, ma è disabilitato per impostazione predefinita. Prima di poter eseguire le risorse VM in Google Distributed Cloud, devi attivare VM Runtime on GDC.
bmctl
Google Distributed Cloud versione 1.11 o successive può utilizzare lo strumento a riga di comando bmctl:
Per attivare il runtime, utilizza lo strumento
bmctl:bmctl enable vmruntime --kubeconfig KUBECONFIG_PATHSpecifica il percorso del file kubeconfig del tuo cluster. Google Distributed Cloud genera il file kubeconfig sulla workstation di amministrazione quando crei un cluster. Per impostazione predefinita, il percorso è
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.Se VM Runtime on GDC è già abilitato, il comando restituisce un errore.
Risorsa personalizzata
Google Distributed Cloud versione 1.10 o successive può utilizzare una definizione di risorsa personalizzata per abilitare il runtime VM su GDC. Questa risorsa personalizzata viene installata per impostazione predefinita.
Modifica la risorsa personalizzata
VMRuntime:kubectl edit vmruntimeImposta
enabled:truenella specifica:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true # useEmulation defaults to "false" if not set. useEmulation: true # vmImageFormat defaults to "qcow2" if not set. vmImageFormat: qcow2Nella sezione
specprecedente, è possibile impostare i seguenti valori:enabled: impostato su true per attivare VM Runtime on GDCuseEmulation: se il nodo non supporta la virtualizzazione hardware o se non hai la certezza, imposta il valore su true. Se disponibile, la virtualizzazione hardware offre prestazioni migliori rispetto all'emulazione software. Il campouseEmulationviene impostato sufalseper impostazione predefinita, se non viene specificato.vmImageFormat: supporta due valori di formato dell'immagine disco:raweqcow2. Se non impostivmImageFormat, il runtime VM su GDC utilizza il formato immagine discorawper creare le VM. Il formatorawpotrebbe offrire prestazioni migliori rispetto aqcow2, un formato copy-on-write, ma potrebbe utilizzare più disco. Per ulteriori informazioni sui formati delle immagini per la tua VM, consulta Formati dei file immagine disco nella documentazione di QEMU.
Salva la risorsa personalizzata nell'editor.
Verifica che la risorsa personalizzata
VMRuntimesia abilitata:kubectl describe vmruntime vmruntimeI dettagli della risorsa personalizzata
VMRuntimeincludono una sezioneStatus. Il runtime VM su GDC è abilitato e funziona quandoVMRuntime.Status.Readyviene visualizzato cometrue.
Installa lo strumento client virtctl
Per creare e gestire le VM, installa lo strumento client virtctl.
Installa lo strumento client
virtctlcome plug-inkubectl:export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json" sudo -E bmctl install virtctlLe credenziali ti consentono di autenticarti e scaricare lo strumento client
virtctl, quindi di installarlo in/usr/bin/kubectl-virtsulla tua macchina locale.Verifica che il plug-in
virtctlsia installato:kubectl plugin listSe
kubectl-virtè elencato nella risposta, il plug-in è stato installato correttamente.Se
kubectl-virtnon è presente nell'elenco, controlla il fileinstall-virtctl.logcome indicato nell'output del comandobmctl installprecedente, ad esempiobmctl-workspace/log/install-virtctl-[date]/install-virtctl.log.
Crea una VM
In questa guida rapida, utilizzerai l'interfaccia a riga di comando kubectl per creare una VM che utilizza un'immagine VM pubblica e le credenziali predefinite.
Crea una VM nel tuo cluster. Il plug-in
virtctlviene utilizzato con il comandokubectl:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --configure-initial-password USERNAME:PASSWORDQuesto comando crea una VM Ubuntu 20.04 e i valori predefiniti di 2 CPU, 4Gi di memoria e un disco di avvio da 20Gi in modalità ReadWriteOnce utilizzando la classe di archiviazione local-shared. Sostituisci i seguenti valori:
VM_NAME: il nome della VM. I nomi delle VM devono contenere solo caratteri alfanumerici minuscoli o "-", iniziare e terminare con un carattere alfanumerico e contenere al massimo 63 caratteri. Per ulteriori informazioni, consulta Nomi delle etichette RFC 1123 nella documentazione di Kubernetes.USERNAME: il nome utente dell'account da creare sulla VM.PASSWORD: la password dell'account utente.
Se ricevi un errore relativo ai parametri della CLI, verifica che il cluster sia alla versione
1.11.1o successiva e di avere l'ultima versione dello strumento clientvirtctl. Per saperne di più sugli errori dell'interfaccia a riga di comando, consulta il log della console. Per le regole relative a nome utente e password, consulta la documentazione del sistema operativo guest. Se qualcosa non funziona come previsto, controlla i problemi noti di VM Runtime on GDC.La creazione della VM può richiedere alcuni minuti. Controlla lo stato della VM con il comando
kubectl:kubectl get gvmL'output di esempio seguente mostra la VM in stato
Running:NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
Connettersi alla VM
Quando la VM è in esecuzione, connettiti alla console della VM.
Per accedere a una VM dalla console, utilizza
kubectl:kubectl virt console VM_NAMEQuando richiesto, inserisci le credenziali utente specificate per creare la VM.
Dopo aver stabilito la connessione alla console della VM, esci dalla sessione e dalla console della VM:
Ctrl + ]
Esegui la pulizia
Per eseguire la pulizia delle risorse create in questa guida rapida, segui questi passaggi.
Per eliminare la VM e il DataVolume associato, utilizza
kubectl:kubectl virt delete vm VM_NAME --all