Questa pagina descrive come gestire le macchine virtuali sui server Google Distributed Cloud connected che eseguono VM Runtime su Google Distributed Cloud. Prima di completare i passaggi di questa pagina, devi avere familiarità con VM Runtime su GDC. Per un elenco dei sistemi operativi guest supportati, vedi Sistemi operativi guest verificati per VM Runtime su GDC.
Per scoprire in che modo le macchine virtuali fungono da componente essenziale della piattaforma Distributed Cloud connected, consulta Estendere GKE Enterprise per gestire le VM edge on-premise.
I cluster Google Distributed Cloud connesso supportano i webhook delle macchine virtuali. Ciò consente a Distributed Cloud connesso di convalidare le richieste degli utenti effettuate al server API Kubernetes locale. Le richieste rifiutate generano informazioni dettagliate sul motivo del rifiuto.
Configura Symcloud Storage
I server Google Distributed Cloud connected utilizzano Rakuten Symcloud Storage come soluzione di archiviazione. Symcloud Storage è una soluzione di terze parti che funge da livello di astrazione dell'archiviazione locale su ogni nodo Distributed Cloud connesso e rende disponibile l'archiviazione locale ai carichi di lavoro in esecuzione su altri nodi Distributed Cloud connessi.
Symcloud Storage viene implementato da Google Cloud Marketplace ed è soggetto ai termini ivi indicati. Google fornisce un supporto limitato per l'utilizzo di Symcloud Storage con Distributed Cloud connesso e potrebbe coinvolgere il fornitore di terze parti per ricevere assistenza. Gli aggiornamenti software per Symcloud Storage sono inclusi negli aggiornamenti software connessi a Distributed Cloud.
Configura il cluster connesso a Google Distributed Cloud nel seguente modo per abilitare Symcloud Storage per le macchine virtuali:
Crea lo spazio dei nomi
robiniocon il seguente comando:kubectl create ns robinio
Ottieni il file di licenza di Symcloud Storage e applicalo al cluster con il comando seguente:
kubectl apply LICENSE_FILE
Verifica che Symcloud Storage sia in esecuzione con questo comando:
kubectl apply LICENSE_FILE
Il comando restituisce un output simile al seguente:
Name: robin Namespace: Labels: app.kubernetes.io/instance=robin app.kubernetes.io/managed-by=robin.io app.kubernetes.io/name=robin Annotations: <none> API Version: manage.robin.io/v1 Kind: RobinCluster Metadata: … Spec: … Status: … Phase: Ready …Crea la classe di archiviazione
robin-block-immediateapplicando la seguente configurazione al cluster:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: robin-block-immediate parameters: faultdomain: host replication: "3" blocksize: "512" provisioner: robin reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true
Crea la classe snapshot del volume
robin-snapshotclassapplicando la seguente configurazione al cluster:apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: robin-snapshotclass labels: app.kubernetes.io/instance: robin app.kubernetes.io/managed-by: robin.io app.kubernetes.io/name: robin annotations: snapshot.storage.kubernetes.io/is-default-class: "true" driver: robin deletionPolicy: Delete
Abilita il supporto del runtime delle VM su GDC su Distributed Cloud connected
Per impostazione predefinita, il supporto delle macchine virtuali del runtime VM su GDC è abilitato su Distributed Cloud connected. Se devi attivarlo manualmente, completa i passaggi descritti in questa sezione. Le istruzioni riportate in questa sezione presuppongono che tu disponga di un cluster Distributed Cloud connesso completamente funzionante. Per disattivare il supporto della macchina virtuale GDC per il runtime VM sul cluster, annulla le modifiche descritte in questa sezione.
Per attivare VM Runtime nel sottosistema di macchine virtuali GDC, completa i seguenti passaggi:
Modifica la risorsa personalizzata
VMRuntimecon i seguenti contenuti e applicala al cluster:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: annotations: baremetal.cluster.gke.io/vmrumtime-force-disable: "false" vm.cluster.gke.io/enable-vm-backup: "true" spec: enabled: true storage: defaultStorageClass: robin-block-immediate haPolicy: defaultRecoveryStrategy: Reschedule nodeHeartbeatInterval: 15s nodeMonitorGracePeriod: 55s
In genere, il completamento di questa procedura richiede diversi minuti.
Utilizza questo comando per verificare che la risorsa personalizzata
VMRuntimesia stata applicata al cluster:kubectl get vmruntime
Il comando restituisce un output simile al seguente esempio:
NAME AGE ENABLED READY PREFLIGHTCHECK vmruntime 5m true true trueModifica
storageprofileper la classe di archiviazionerobin-block-immediatecon i seguenti contenuti e applicala al cluster:apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: robin-block-immediate spec: claimPropertySets: accessModes: ReadWriteMany volumeMode: Block
Installa lo strumento di gestione virtctl
Per gestire le macchine virtuali nel cluster Distributed Cloud connesso, devi utilizzare lo strumento client virtctl. Per installare lo strumento, completa i seguenti passaggi:
Installa lo strumento client
virtctlcome plug-inkubectl:export VERSION=v0.59.0-anthos1.28-gke.8 gcloud storage cp gs://anthos-baremetal-release/virtctl/${VERSION}/linux-amd64/virtctl/usr/local/bin/virtctl cd /usr/local/bin sudo ln -s virtctl kubectl-virt sudo chmod a+x virtctl cd -
Verifica che il plug-in
virtsia installato:kubectl plugin list
Se il plug-in è stato installato correttamente, l'output del comando elenca
kubectl-virttra i plug-in.
Crea un bucket Cloud Storage per le immagini delle macchine virtuali
Completa i passaggi descritti in questa sezione per creare un bucket Cloud Storage per le immagini delle macchine virtuali. Se hai già un repository di immagini consolidato, salta questa sezione.
Completa i passaggi descritti in Crea bucket per creare un bucket.
Configura un account di servizio e una chiave per accedere al bucket con i seguenti comandi:
export PROJECT_ID=$(gcloud config get-value project) gcloud iam service-accounts create image-access gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:image-access@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/storage.objectViewer" \ gcloud iam service-accounts keys create ./image-access-gcr.json \ --iam-account="image-access@${PROJECT_ID}.iam.gserviceaccount.com"
Crea un secret nel cluster per accedere al bucket. Se il bucket è pubblico, salta questo passaggio. Questo secret deve esistere nello stesso spazio dei nomi dei dischi della macchina virtuale. Devi creare un secret in ogni spazio dei nomi interessato.
kubectl create secret generic gcs-image-sa --from-file=creds-gcp.json=./image-access-gcr.json -n NAMESPACE
Sostituisci
CLUSTER_IDcon il nome dello spazio dei nomi di destinazione.Archivia le immagini nel bucket.
Crea un disco della macchina virtuale da un'immagine della macchina virtuale
Completa i passaggi descritti in questa sezione per creare un disco della macchina virtuale da un'immagine della macchina virtuale.
Crea un disco da un'immagine archiviata in Cloud Storage
Crea un disco della macchina virtuale da una macchina virtuale archiviata nel bucket Cloud Storage applicando la seguente configurazione al cluster:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME namespace: NAMESPACE spec: source: gcs: url: gs://{PROJECT_ID}-vm-images/IMAGE_FILE secretRef: gcs-image-sa size: DISK_SIZE storageClassName: robin-block-immediate
Sostituisci quanto segue:
DISK_NAME: il nome del disco della macchina virtuale.NAMESPACE: lo spazio dei nomi di destinazione.IMAGE_FILE: il nome del file immagine della macchina virtuale.DISK_SIZE: le dimensioni del disco desiderate. Questo valore deve essere maggiore del valorevirtual-sizedel file immagine della macchina virtuale. Puoi trovare questo valore con il comandoqemu-img info DISK_SIZE.
Se non specifichi un valore storageClassName, viene utilizzato il valore predefinito specificato nella risorsa VMRuntime.
Crea un disco da un'immagine del disco esistente
Crea un disco della macchina virtuale da un disco o un file immagine della macchina virtuale esistente sul cluster nel seguente modo.
Crea il disco di destinazione applicando la seguente configurazione al cluster:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: IMAGE_DISK_NAME namespace: NAMESPACE spec: source: virtualMachineDisk: name: EXISTING_DISK_NAME size: DISK_SIZE storageClassName: robin-block-immediate
Sostituisci quanto segue:
IMAGE_DISK_NAME: il nome del disco della macchina virtuale.NAMESPACE: lo spazio dei nomi di destinazione.EXISTING_DISK_NAME: il nome del disco della macchina virtuale esistente.DISK_SIZE: le dimensioni del disco desiderate. Questo valore deve essere uguale o maggiore delle dimensioni del disco o del file immagine esistente.
Puoi ottenere le dimensioni del file immagine o del disco esistente utilizzando lo strumento
qemu-imgcome segue:qemu-img info EXISTING_DISK_NAME
Se non specifichi un valore
storageClassName, viene utilizzato il valore predefinito specificato nella risorsaVMRuntime.Crea un nuovo disco dal file immagine esistente applicando la seguente configurazione al cluster:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME namespace: NAMESPACE spec: source: virtualMachineDisk: name: IMAGE_DISK_NAME size: DISK_SIZE storageClassName: robin-block-immediate
Sostituisci quanto segue:
IMAGE_DISK_NAME: il nome del disco della macchina virtuale creato nel passaggio precedente.NAMESPACE: lo spazio dei nomi di destinazione.DISK_SIZE: le dimensioni del disco desiderate. che devono essere uguali alle dimensioni del disco della macchina virtuale creato nel passaggio precedente.
Ridimensiona il disco di destinazione alle dimensioni desiderate utilizzando il seguente comando:
kubectl edit gdisk DISK_NAME -n NAMESPACE
Sostituisci quanto segue:
DISK_NAME: il nome del disco della macchina virtuale creato nel passaggio precedente.NAMESPACE: lo spazio dei nomi di destinazione.
Modifica il valore
spec.sizenella configurazione del disco e applicalo al cluster.
Crea un disco vuoto
Crea un disco della macchina virtuale vuoto applicando la seguente configurazione al cluster:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME namespace: NAMESPACE spec: size: DISK_SIZE storageClassName: robin-block-immediate
Sostituisci quanto segue:
DISK_NAME: il nome del disco della macchina virtuale.NAMESPACE: lo spazio dei nomi di destinazione.DISK_SIZE: le dimensioni del disco desiderate in gibibyte. Questo valore deve essere maggiore del valorevirtual-sizedel file immagine della macchina virtuale. Puoi trovare questo valore con il comandoqemu-img info DISK_SIZE.
Se non specifichi un valore storageClassName, viene utilizzato il valore predefinito specificato nella risorsa VMRuntime.
Configura il networking virtuale
Segui i passaggi descritti in Networking per configurare il networking virtuale per le tue macchine virtuali.
Creare una macchina virtuale
Completa i passaggi descritti in questa sezione per creare una macchina virtuale nel deployment del server connesso a Distributed Cloud. Le istruzioni in questa sezione sono esempi pensati per illustrare le configurazioni per diversi scenari. Per informazioni dettagliate sulla configurazione delle macchine virtuali, consulta Crea una VM con risorse CPU e di memoria specifiche utilizzando VM Runtime su GDC.
Crea una macchina virtuale utilizzando la console Google Cloud
Per creare una macchina virtuale utilizzando la console Google Cloud :
Nella console Google Cloud , vai alla pagina Cluster.
Seleziona il progetto Google Cloud di destinazione.
(Facoltativo) Se non l'hai ancora fatto, accedi al cluster di destinazione:
Nel riquadro di navigazione a sinistra, fai clic su Cluster.
Nell'elenco Anthos Managed Clusters, fai clic sul cluster di destinazione.
Nel riquadro delle informazioni a destra, fai clic su ACCEDI.
Nella finestra di dialogo popup visualizzata, seleziona il metodo di autenticazione preferito, inserisci le tue credenziali e fai clic su ACCEDI.
Vai alla pagina Macchine virtuali.
Fai clic su CREA.
Nella sezione Nozioni di base, segui questi passaggi:
Nel campo Nome, inserisci un nome significativo per la macchina virtuale.
Nel campo Seleziona cluster, seleziona il cluster di destinazione per la macchina virtuale.
Nel campo Spazio dei nomi, seleziona lo spazio dei nomi di destinazione.
Nel campo Tipo di sistema operativo, seleziona il sistema operativo di destinazione.
(Facoltativo) Se vuoi aggiungere una o più etichette alla configurazione di questa macchina virtuale, fai clic su AGGIUNGI ETICHETTA.
Nella sezione Configurazione macchina, esegui una delle seguenti operazioni:
Se vuoi specificare il numero di vCPU e la quantità di memoria per questa macchina virtuale, seleziona Configurazione personalizzata e inserisci i valori target, poi fai clic su AVANTI.
Se vuoi utilizzare un numero predeterminato di vCPU e una quantità di memoria per questa macchina virtuale, seleziona Configurazione standard e seleziona una configurazione della macchina dall'elenco a discesa Tipo di macchina, poi fai clic su AVANTI.
Nella sezione Spazio di archiviazione, esegui una delle seguenti operazioni:
Se vuoi creare un nuovo disco virtuale per questa macchina virtuale, seleziona Aggiungi un nuovo disco e inserisci un nome significativo nel campo Nome, una dimensione in gigabyte nel campo GiB e un URL nel campo Immagine.
Se vuoi utilizzare un disco virtuale esistente per questa macchina virtuale, seleziona Seleziona un disco esistente e seleziona l'immagine disco di destinazione dall'elenco a discesa Seleziona un disco.
Specifica se vuoi che il disco sia di sola lettura e se verrà eliminato automaticamente quando questa macchina virtuale viene eliminata utilizzando le caselle di controllo Sola lettura ed Eliminazione automatica.
Specifica un driver del disco virtuale nell'elenco a discesa Driver.
Per aggiungere un altro disco a questa macchina virtuale, fai clic su AGGIUNGI UN DISCO nella sezione Dischi aggiuntivi.
Fai clic su AVANTI.
Nella sezione Rete, segui questi passaggi:
Nella sottosezione Interfaccia di rete predefinita, specifica il nome dell'interfaccia di rete principale per questa macchina virtuale nel campo Nome interfaccia.
Seleziona il tipo di rete corrispondente dall'elenco a discesa Tipo di rete.
Specifica se consentire l'accesso esterno a questa interfaccia di rete utilizzando la casella di controllo Consenti accesso esterno. Se attivi questa opzione, devi inserire un elenco separato da virgole di porte da esporre esternamente nel campo Porte esposte.
Se vuoi aggiungere una o più interfacce di rete secondarie a questa macchina virtuale, fai clic su AGGIUNGI UN'INTERFACCIA DI RETE.
Fai clic su AVANTI.
Nella sezione Opzioni avanzate, utilizza la casella di controllo Riavvio automatico all'aggiornamento per specificare se riavviare questa macchina virtuale dopo l'aggiornamento del software connesso a Distributed Cloud nel cluster di destinazione.
Nella sezione Firmware, segui questi passaggi:
Seleziona il tipo di firmware di destinazione nel campo Tipo di bootloader. Se selezioni il firmware UEFI, hai la possibilità di abilitare l'avvio protetto utilizzando la casella di controllo Avvio protetto.
Specifica un numero di serie per questa macchina virtuale nel campo Seriale.
Specifica un UUID (Universally Unique Identifier) per questa macchina virtuale nel campo UUID.
Nella sezione Cloud-init, segui questi passaggi:
Specifica un valore del secret dei dati di rete nel campo Secret dei dati di rete.
Specifica un valore segreto dei dati utente nel campo Segreto dei dati utente.
Fai clic su CREA VM per creare la macchina virtuale.
Crea una macchina virtuale da un file YAML
Per creare una macchina virtuale da un file di configurazione YAML:
Nella console Google Cloud , vai alla pagina Cluster.
Seleziona il progetto Google Cloud di destinazione.
(Facoltativo) Se non l'hai ancora fatto, accedi al cluster di destinazione:
Nel riquadro di navigazione a sinistra, fai clic su Cluster.
Nell'elenco Anthos Managed Clusters, fai clic sul cluster di destinazione.
Nel riquadro delle informazioni a destra, fai clic su ACCEDI.
Nella finestra di dialogo popup visualizzata, seleziona il metodo di autenticazione preferito, inserisci le tue credenziali e fai clic su ACCEDI.
Vai alla pagina Macchine virtuali.
Fai clic su CREA CON YAML.
Nel campo Seleziona cluster, seleziona il cluster di destinazione per la macchina virtuale.
Incolla la configurazione della macchina virtuale in formato YAML nel campo YAML.
Fai clic su CREA.
Crea una macchina virtuale da un'immagine disco avviabile
Per creare una macchina virtuale da un'immagine disco avviabile, applica la seguente configurazione al cluster:
kind: VirtualMachine metadata: name: my-virtual-machine namespace: my-vm-namespace spec: osType: Linux/Windows guestEnvironment: {} // comment out this line to enable guest environment for access management autoRestartOnConfigurationChange: true compute: cpu: vcpus: 6 memory: capacity: 8Gi interfaces: - name: eth0 networkName: network-410 ipAddresses: - 10.223.237.10/25 disks: - virtualMachineDiskName: my-boot-disk boot: true - virtualMachineDiskName: my-data-disk
Sostituisci quanto segue:
DISK_NAME: il nome del disco della macchina virtuale.NAMESPACE: lo spazio dei nomi di destinazione.
Crea una macchina virtuale da un'immagine del disco ottico ISO
Per creare una macchina virtuale da un'immagine disco ottico ISO, completa i passaggi descritti in Crea una VM Windows da un'immagine ISO in Google Distributed Cloud.
Crea una macchina virtuale con supporto GPU
Completa i passaggi descritti in questa pagina per creare una macchina virtuale configurata per soddisfare i requisiti della tua attività, quindi completa i passaggi descritti in Configura una macchina virtuale per utilizzare le risorse GPU.
Accedere a una macchina virtuale
Completa i passaggi descritti in questa sezione per accedere a una macchina virtuale in esecuzione nel deployment del server connesso a Distributed Cloud.
Ottenere le credenziali di accesso
Completa i passaggi descritti in questa sezione per ottenere le credenziali necessarie per accedere alla tua macchina virtuale utilizzando la funzionalità dell'ambiente guest Linux.
Attiva l'ambiente guest Linux per la macchina virtuale di destinazione applicando la seguente configurazione al cluster:
kind: VirtualMachine metadata: name: my-virtual-machine namespace: my-vm-namespace spec: osType: Linux guestEnvironment: {} autoRestartOnConfigurationChange: true
Genera un file
id_rsa.pubcontenente una coppia di chiavi SSH con il seguente comando:ssh-keygen -t rsaCrea una risorsa
VirtualMachineAccessRequestapplicando la seguente configurazione al cluster:apiVersion: vm.cluster.gke.io/v1alpha1 kind: VirtualMachineAccessRequest metadata: name: RESOURCE_NAME namespace: NAMESPACE spec: vm: VM_NAME user: USER_NAME ssh: key: RSA_KEY ttl: 2h
Sostituisci quanto segue:
RESOURCE_NAME: un nome descrittivo per questa risorsa di richiesta di accesso alla macchina virtuale.NAMESPACE: lo spazio dei nomi di destinazione.VM_NAME: il nome della macchina virtuale di destinazione.USER_NAME: il nome dell'utente a cui viene concesso l'accesso.RSA_KEY: i contenuti del fileid_rsa.pubgenerato nel passaggio precedente.
Controlla lo stato della richiesta di accesso con il seguente comando:
kubectl get vmar
Quando il comando restituisce lo stato
Configured, vai al passaggio successivo.Accedi alla macchina virtuale con SSH o Remote Desktop:
- Se la macchina virtuale è connessa alla tua rete locale, puoi accedervi direttamente.
- Se la macchina virtuale è connessa alla rete del pod, devi creare un servizio di bilanciamento del carico per accedere alle porte richieste.
Avviare, riavviare o arrestare una macchina virtuale
Utilizza i seguenti comandi per avviare, riavviare o arrestare una macchina virtuale:
- Avvia una macchina virtuale:
kubectl virt start vmVM_NAME-nNAMESPACE - Riavvia una macchina virtuale:
kubectl virt restart vmVM_NAME-nNAMESPACE - Arrestare una macchina virtuale:
kubectl virt stop vmVM_NAME-nNAMESPACE
Sostituisci quanto segue:
VM_NAME: il nome della macchina virtuale di destinazione.NAMESPACE: lo spazio dei nomi di destinazione.
Avviare o arrestare una macchina virtuale utilizzando la console Google Cloud
Nella console Google Cloud , vai alla pagina Cluster.
Seleziona il progetto Google Cloud di destinazione.
(Facoltativo) Se non l'hai ancora fatto, accedi al cluster di destinazione:
Nel riquadro di navigazione a sinistra, fai clic su Cluster.
Nell'elenco Anthos Managed Clusters, fai clic sul cluster di destinazione.
Nel riquadro delle informazioni a destra, fai clic su ACCEDI.
Nella finestra di dialogo visualizzata, seleziona il metodo di autenticazione che preferisci, inserisci le tue credenziali e fai clic su ACCEDI.
Vai alla pagina Macchine virtuali.
Nell'elenco delle macchine virtuali, seleziona le caselle di controllo per le macchine virtuali di destinazione.
Nella parte superiore della pagina, fai clic su AVVIA o INTERROMPI, a seconda dei casi.
Visualizzare lo stato di una macchina virtuale utilizzando la console Google Cloud
Nella console Google Cloud , vai alla pagina Cluster.
Seleziona il progetto Google Cloud di destinazione.
(Facoltativo) Se non l'hai ancora fatto, accedi al cluster di destinazione:
Nel riquadro di navigazione a sinistra, fai clic su Cluster.
Nell'elenco Anthos Managed Clusters, fai clic sul cluster di destinazione.
Nel riquadro delle informazioni a destra, fai clic su ACCEDI.
Nella finestra di dialogo popup visualizzata, seleziona il metodo di autenticazione preferito, inserisci le tue credenziali e fai clic su ACCEDI.
Vai alla pagina Macchine virtuali.
Fai clic sulla macchina virtuale di destinazione.
Nella pagina visualizzata, fai clic sulle schede Dettagli, Eventi e YAML per visualizzare le informazioni corrispondenti su questa macchina virtuale.
Modificare una macchina virtuale
Per modificare una macchina virtuale, devi eliminarla e ricrearla con la configurazione aggiornata.
Eliminare una macchina virtuale utilizzando la console Google Cloud
Nella console Google Cloud , vai alla pagina Cluster.
Seleziona il progetto Google Cloud di destinazione.
(Facoltativo) Se non l'hai ancora fatto, accedi al cluster di destinazione:
Nel riquadro di navigazione a sinistra, fai clic su Cluster.
Nell'elenco Anthos Managed Clusters, fai clic sul cluster di destinazione.
Nel riquadro delle informazioni a destra, fai clic su ACCEDI.
Nella finestra di dialogo visualizzata, seleziona il metodo di autenticazione che preferisci, inserisci le tue credenziali e fai clic su ACCEDI.
vai alla pagina Macchine virtuali.
Nell'elenco delle macchine virtuali, seleziona la casella di controllo della macchina virtuale di destinazione.
Nella parte superiore della pagina, fai clic su ELIMINA.
Nella finestra di dialogo di conferma visualizzata, inserisci il nome della macchina virtuale e fai clic su ELIMINA.
Passaggi successivi
- Gestire le macchine virtuali sui rack Distributed Cloud connected
- Esegui il deployment dei carichi di lavoro su Distributed Cloud connected
- Gestisci i workload GPU
- Gestire le zone
- Gestisci macchine
- Gestire i cluster
- Gestisci i pool di nodi