Questo tutorial mostra come creare e gestire una macchina virtuale (VM) Linux
in una nuova installazione
di runtime VM su GDC. Imparerai il processo per
crea e definisci le dipendenze di base come StorageClass
e
e poi creare una VM che utilizzi queste risorse. Imparerai quindi a modificare
della VM, ad esempio l'aggiunta di un nuovo disco.
Obiettivi
- Configura le dipendenze di base
- Crea un
StorageClass
per il runtime della VM su GDC - Crea una rete virtuale per le VM
- Crea un
- Crea un disco di avvio di una macchina virtuale
- Crea una VM
- Modifica una VM per aggiungere un nuovo disco virtuale
Prima di iniziare
Per completare questo tutorial, devi accedere alle seguenti risorse e strumenti:
- Accesso a Google Distributed Cloud versione 1.12.0 (
anthosBareMetalVersion: 1.12.0
) o un cluster superiore. Puoi utilizzare qualsiasi tipo di cluster in grado di eseguire carichi di lavoro. Se necessario, prova Google Distributed Cloud su Compute Engine o consulta le Panoramica della creazione del cluster. - Lo strumento client
virtctl
installato come plug-in perkubectl
. Se necessario, installa lo strumento client virtctl.
Crea un StorageClass
Utilizzi un StorageClass
per definire il tipo di spazio di archiviazione che rendi disponibile
delle VM in esecuzione. Classi di archiviazione diverse potrebbero essere mappate a un tipo di archiviazione diverso
su hardware, file system o prestazioni.
Non rientra nell'ambito di questo tutorial fornire istruzioni specifiche per
ogni StorageClass
e partner di archiviazione.
Partner di archiviazione Google Distributed Cloud Ready fornire risorse Container Storage Interface (CSI) che installano e configurano le risorse personalizzate richieste archiviazione. Per installare il driver CSI nel cluster, rivedi l'elenco delle partner di archiviazione e segui le loro istruzioni.
Dopo aver installato il driver CSI per la tua piattaforma di archiviazione, uno o più disponibili nel tuo cluster. Puoi usare una di queste classi di archiviazione come creare un disco rigido virtuale.
Il seguente esempio di base
NFS StorageClass
utilizza
Driver CSI NFS.
Sei tu a definire l'indirizzo e il percorso del server NFS da utilizzare in StorageClass
. Tutti i
nodi del tuo cluster possono connettersi a questo spazio di archiviazione NFS e utilizzarlo:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: example-nfs
provisioner: nfs.csi.k8s.io
parameters:
server: nfs-server.example.com
path: /vm-share
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
- nconnect=8
- nfsvers=4.1
In questo tutorial, utilizza il nome di un StorageClass
nel tuo cluster.
Il runtime VM su GDC genera automaticamente un profilo di archiviazione per
ogni StorageClass
in un cluster. Il nome del profilo di archiviazione è lo stesso
StorageClass
associato. I profili di archiviazione offrono opzioni di configurazione aggiuntive
associati a ogni StorageClass
. Per ulteriori informazioni sullo spazio di archiviazione
profili, comprese le istruzioni di configurazione, vedi
Configurare i profili di archiviazione.
Crea una rete virtuale
Le VM si connettono a una rete virtuale tramite un'interfaccia di rete virtuale. Lo strumento virtuale consente di comunicare con altre VM nel cluster o con le risorse all'esterno del cluster.
In questo tutorial, creerai una rete virtuale di livello 2 (L2
) di base che può utilizzare
da un server DHCP esterno. Quando abiliti l'utilizzo di un server DHCP esterno,
puoi saltare la configurazione delle impostazioni DNS e del gateway se sono fornite
da DHCP.
Per creare una rete che utilizza un server DHCP esterno, completa le operazioni seguenti passaggi:
Crea un manifest
Network
, ad esempiodhcp-network.yaml
, nell'editor di tua scelta:nano dhcp-network.yaml
Copia e incolla il seguente manifest YAML:
apiVersion: networking.gke.io/v1 kind: Network metadata: name: NETWORK_NAME spec: type: L2 nodeInterfaceMatcher: interfaceName: INTERFACE_NAME externalDHCP4: true
Sostituisci i seguenti valori:
NETWORK_NAME
: il nome della tua rete.INTERFACE_NAME
: il nome dell'interfaccia nella Nodo Google Distributed Cloud a cui collegare la rete. Tutti i nodi devono avere con lo stesso nome dell'interfaccia.
In questo manifest
Network
, sono impostati i seguenti valori:- I carichi di lavoro possono avere solo un collegamento
L2
a questa rete. Questo è l'unico retetype
che puoi creare nel runtime VM su GDC. - Sulla rete è abilitato un DHCP esterno. Il server DHCP esterno responsabile dell'allocazione degli indirizzi IPv4, delle route, del gateway e del DNS per i carichi di lavoro connessi a questa rete.
Salva e chiudi il manifest
Network
nell'editor.Crea la rete utilizzando
kubectl
:kubectl apply -f use-dhcp-network.yaml
Crea un disco di avvio per VM
Una VM può utilizzare un'immagine disco creata in precedenza o avviarsi da un'immagine ISO per eseguire
installare il sistema operativo. È possibile archiviare e accedere a queste immagini disco tramite HTTP o
Cloud Storage e a cui si accede utilizzando un Secret
.
In questo tutorial, creerai un disco di avvio dal server Ubuntu Server 20.04 pubblico un'immagine cloud utilizzando HTTP.
Per creare un disco da un'immagine, completa i seguenti passaggi.
Crea un manifest
VirtualMachineDisk
, ad esempiomy-disk.yaml
, nella un editor di tua scelta:nano my-disk.yaml
Copia e incolla la seguente definizione YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 20Gi storageClassName: STORAGE_CLASS_NAME source: http: url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
Sostituisci i seguenti valori:
DISK_NAME
: il nome che vuoi assegnare al disco. Questo Ad esempio, crea un disco20Gi
(20 gibibyte) denominatoDISK_NAME
che utilizza Ubuntu pubblico Immagine server 20.04.STORAGE_CLASS_NAME
:StorageClass
che vuoi da usare perVirtualMachineDisk
.- Utilizza
kubectl get storageclass
per elencare gli elementi disponibili nel cluster.
- Utilizza
Salva e chiudi il manifest
VirtualMachineDisk
nell'editor.Crea il disco utilizzando
kubectl
:kubectl apply -f my-disk.yaml
Crea una VM
Con la rete virtuale e il disco di avvio creati nelle sezioni precedenti, ora
per creare una VM. La VM si connette alla rete virtuale e si avvia
disco. Le seguenti istruzioni creano una VM applicando direttamente un
File manifest YAML VirtualMachine
con l'interfaccia a riga di comando kubectl
.
Crea un manifest che definisce un
VirtualMachine
, ad esempiomy-vm.yaml
, in l'editore che preferisci:nano my-vm.yaml
Copia e incolla la seguente definizione YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: osType: linux compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: NETWORK_NAME default: true disks: - boot: true virtualMachineDiskName: DISK_NAME
Sostituisci i seguenti valori:
VM_NAME
: il nome della VM.VCPU_NUMBER
: il numero facoltativo di vCPU da assegnare la VM. Senza questa impostazione, viene assegnata il valore predefinito di 2 vCPU.- A una VM puoi assegnare da 1 a 96 vCPU.
MEMORY_SIZE
: la quantità facoltativa di memoria da assegnare a la VM. Senza questa impostazione, viene assegnato il valore predefinito di 4 GiB di memoria.- Puoi assegnare tra 1 milione e 1T di memoria a una VM. Per ulteriori informazioni, vedi Unità di risorse di memoria.
NETWORK_NAME
: il nome della tua rete creata in un sezione precedente.DISK_NAME
: il nome del tuo disco di avvio creato nella sezione precedente. Questo disco è impostato suboot: true
.
Salva e chiudi il manifest nell'editor.
Crea la VM e il disco utilizzando
kubectl
:kubectl apply -f my-vm.yaml
La creazione della VM può richiedere alcuni minuti. Controlla lo stato della VM con il comando kubectl:
kubectl get gvm VM_NAME
L'output di esempio seguente mostra la VM in stato
Running
:NAME STATUS AGE IP MY_VM Running 64s 192.168.2.124
Connettiti alla VM
Quando la VM è in esecuzione, connettiti alla console della VM. Questa console di accesso rapido consente di eseguire attività di base come configurare ulteriormente la VM installare un'applicazione.
Per accedere a una VM dalla console, utilizza
kubectl
:kubectl virt console VM_NAME
Quando richiesto, inserisci le credenziali utente specificate per creare la VM.
Dopo aver effettuato la connessione alla console della VM, esci dalla sessione VM e la console:
Ctrl + ]
Modifica la VM
Durante il ciclo di vita della tua VM potrebbe essere utile modificare la VM. Ad esempio: potresti voler aggiungere spazio di archiviazione per installare un'applicazione su un disco dedicato oppure utilizzare spazio di archiviazione aggiuntivo per l'applicazione.
In questo tutorial, crea un disco vuoto e collegalo alla VM. Questo scenario consente di creare un disco dati per archiviare i dati dell'applicazione.
Crea un manifest
VirtualMachineDisk
, ad esempiomy-data-disk.yaml
, nella un editor di tua scelta:nano my-data-disk.yaml
Copia e incolla la seguente definizione YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DATA_DISK_NAME spec: size: 10Gi storageClassName: STORAGE_CLASS_NAME
Sostituisci i seguenti valori:
DATA_DISK_NAME
: il nome che vuoi assegnare del disco dati. In questo esempio viene creato un disco10Gi
(10 gibibyte).STORAGE_CLASS_NAME
:StorageClass
che vuoi da usare perVirtualMachineDisk
.- Utilizza
kubectl get storageclass
per elencare gli elementi disponibili nel cluster.
- Utilizza
Salva e chiudi il manifest del disco nell'editor.
Crea il disco utilizzando
kubectl
:kubectl apply -f my-data-disk.yaml
Utilizza
kubectl
per arrestare la VM prima di collegare il nuovo disco virtuale:kubectl virt stop VM_NAME
Modifica la risorsa VM:
kubectl edit gvm VM_NAME
Aggiorna il manifest YAML
VirtualMachine
per collegare il disco alla fine del Sezionespec.disks
della VM:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: ... disks: - boot: true virtualMachineDiskName: DISK_NAME - virtualMachineDiskName: DATA_DISK_NAME
Sostituisci
DATA_DISK_NAME
con il nome del disco creato nel passaggio precedente.Salva e chiudi il manifest aggiornato della VM nell'editor.
Utilizza
kubectl
per avviare la VM:kubectl virt start VM_NAME
Esegui la pulizia
Per eliminare le risorse create in questo tutorial, completa quanto segue passaggi:
Elimina la VM:
kubectl delete -f my-vm.yaml
Elimina le tue risorse
VirtualMachineDisk
:kubectl delete -f my-data-disk.yaml kubectl delete -f my-disk.yaml
Se non vuoi mantenere le dipendenze di base nel cluster, completa la seguenti passaggi:
Elimina la rete virtuale:
kubectl delete -f use-dhcp-network.yaml
Per rimuovere il driver CSI dal cluster, segui le istruzioni nel tuo di archiviazione.