VM Runtime on GDC consente di configurare reti virtuali per connettere e instradare il traffico per i workload delle macchine virtuali (VM).
Prima di iniziare
Per completare questo documento, devi avere accesso alle seguenti risorse:
- Accesso a un cluster Google Distributed Cloud versione 1.12.0 (
anthosBareMetalVersion: 1.12.0) 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. - Lo strumento client
virtctlinstallato come plug-in perkubectl. Se necessario, installa lo strumento client virtctl.
Panoramica delle reti virtuali
Le reti vengono create utilizzando risorse personalizzate. Una rete può essere creata in qualsiasi momento dopo la creazione del cluster. Le impostazioni della rete per l'interfaccia host e l'assegnazione dell'ID VLAN, se definite, non possono essere modificate dopo la creazione di una rete.
L'eliminazione delle reti è soggetta ad alcune condizioni. Ad esempio, il controller di rete rifiuta l'eliminazione di una rete quando è in uso da parte di risorse, come VM o interfacce di rete.
La definizione della rete può includere informazioni su gateway, route e DNS. Puoi anche attivare l'utilizzo di un server DHCP esterno. Queste impostazioni della rete vengono assegnate in modo statico o dinamico a seconda di come sono definite determinate opzioni di configurazione di rete.
Rete pod predefinita
Per ogni cluster viene creato un pod-network per impostazione predefinita. Questa rete non può essere modificata. Le route per il CIDR del pod e il CIDR del servizio e la configurazione DNS vengono compilate automaticamente. La configurazione DNS utilizza gli stessi valori del cluster.
pod-network può essere utilizzato dai workload che necessitano di un'interfaccia per accedere alla rete dei pod del cluster e non richiedono opzioni di configurazione specifiche.
Le route di pod-network sono sempre configurate per garantire l'accesso al cluster e al servizio per i workload, anche se il gateway predefinito non si trova sull'interfaccia pod-network.
Questo pod-network predefinito ti consente di testare il runtime VM su GDC senza
passaggi aggiuntivi per creare le tue reti virtuali. Molti dei nostri documenti utilizzano questo pod-network predefinito per ridurre la complessità degli esempi. Le esigenze dei workload delle VM determinano se questa pod-network predefinita è sufficiente o se devi creare e utilizzare le tue reti virtuali.
Il seguente manifest YAML mostra una configurazione di esempio per pod-network.
I valori per le route, il DNS e il nome dell'interfaccia sono stati compilati dal cluster:
apiVersion: networking.gke.io/v1
kind: Network
metadata:
name: pod-network
spec:
routes:
- to: 192.168.0.0/16
- to: 10.96.0.0/12
dnsConfig:
nameservers:
- 10.96.0.10
Crea e utilizza reti virtuali
Per supportare i workload di produzione, crea reti che supportino le funzionalità di cui hai bisogno, ad esempio l'utilizzo di un server DHCP esterno o di un ID VLAN. Queste reti forniscono connettività di livello 2 (L2) per le tue VM.
Utilizza un server DHCP esterno
VM Runtime on GDC non fornisce server DHCP. Devi specificare manualmente gli indirizzi IP per le VM o configurare l'utilizzo di server DHCP esterni. Quando attivi l'utilizzo di un server DHCP esterno, puoi saltare la configurazione delle impostazioni DNS e del gateway se sono fornite dal DHCP.
Per creare una rete che utilizza un server DHCP esterno, completa i seguenti passaggi:
Crea un manifest
Network, ad esempiouse-dhcp-network.yaml, nell'editor che preferisci:nano use-dhcp-network.yamlCopia 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: trueSostituisci i seguenti valori:
NETWORK_NAME: il nome della rete.INTERFACE_NAME: il nome dell'interfaccia sul nodo Google Distributed Cloud a cui collegare la rete. Specifica il nome dell'interfaccia fisica da utilizzare sul nodo. Tutti i nodi nel cluster devono avere lo stesso nome dell'interfaccia.
In questo manifest
Network, sono impostati i seguenti valori:typeè impostato suL2. Con questa impostazione, i workload possono avere solo un collegamento di livello 2 a questa rete. Questa è l'unica retetypeche puoi creare nel runtime VM su GDC.externalDHCP4è impostato sutrue. Questa impostazione attiva il DHCP esterno per la rete. Il server DHCP esterno è responsabile dell'allocazione degli indirizzi IPv4, delle route, del gateway e della configurazione DNS per i workload connessi a questa rete.
Salva e chiudi il manifest
Networknell'editor.Crea la rete utilizzando
kubectl:kubectl apply -f use-dhcp-network.yaml
Definisci manualmente le impostazioni della rete
VM Runtime on GDC non fornisce server DHCP. Devi specificare manualmente gli indirizzi IP per le VM o configurare l'utilizzo di server DHCP esterni. Se specifichi manualmente gli indirizzi IP, devi definire le impostazioni della rete per DNS, route e gateway predefinito.
Per creare una rete con impostazioni di networking specificate manualmente per le VM, completa i seguenti passaggi:
Crea un manifest
Network, ad esempiomanual-network.yaml, nell'editor che preferisci:nano manual-network.yamlCopia e incolla il seguente manifest YAML:
apiVersion: networking.gke.io/v1 kind: Network metadata: name: NETWORK_NAME spec: type: L2 nodeInterfaceMatcher: interfaceName: INTERFACE_NAME routes: - to: "ROUTE_ADDRESS" gateway4: GATEWAY_ADDRESS dnsConfig: nameservers: - NAMESERVER_ADDRESSSostituisci i seguenti valori:
NETWORK_NAME: il nome della rete.INTERFACE_NAME: il nome dell'interfaccia sul nodo Google Distributed Cloud a cui collegare la rete. Specifica il nome dell'interfaccia fisica da utilizzare sul nodo. Tutti i nodi nel cluster devono avere lo stesso nome dell'interfaccia.ROUTE_ADDRESS: route facoltative in notazione CIDR per la configurazione su ogni VM connessa a questa rete.GATEWAY_ADDRESS: l'indirizzo IP del gateway che le VM devono utilizzare.NAMESERVER_ADDRESS: uno o più indirizzi IP dei server dei nomi DNS che le VM possono utilizzare.
Salva e chiudi il manifest
Networknell'editor.Crea la rete utilizzando
kubectl:kubectl apply -f manual-network.yaml
Utilizza un ID VLAN
Quando crei reti virtuali, puoi definire VLAN con tag. Queste assegnazioni di VLAN ti aiutano a isolare il traffico di rete in base ai requisiti del workload e alle esigenze di isolamento. In una rete AnthosManaged, il cluster ha l'autorizzazione per creare ed eliminare l'interfaccia VLAN su ogni nodo.
Per creare una rete che definisce un'assegnazione VLAN, completa i seguenti passaggi:
Crea un manifest
Network, ad esempiovlan-network.yaml, nell'editor che preferisci:nano vlan-network.yamlCopia e incolla il seguente manifest YAML:
apiVersion: networking.gke.io/v1 kind: Network metadata: name: NETWORK_NAME spec: type: L2 networkLifecycle: AnthosManaged l2NetworkConfig: vlanID: VLAN_ID nodeInterfaceMatcher: interfaceName: INTERFACE_NAME externalDHCP4: trueSostituisci i seguenti valori:
NETWORK_NAME: il nome della rete.INTERFACE_NAME: il nome dell'interfaccia sul nodo Google Distributed Cloud a cui collegare la rete. Specifica il nome dell'interfaccia fisica da utilizzare sul nodo. Tutti i nodi nel cluster devono avere lo stesso nome dell'interfaccia.VLAN_ID: l'ID VLAN per cui vuoi taggare il traffico.
In questo manifest
Network, sono impostati i seguenti valori:- I workload possono avere un solo collegamento
L2a questa rete. - La rete è
AnthosManaged. Questa impostazione è il ciclo di vita predefinito se non viene specificato.- In questa modalità, il cluster ha l'autorizzazione per creare ed eliminare l'interfaccia VLAN su ogni nodo, ad esempio
INTERFACE_NAME.VLAN_ID. - Se vuoi creare o hai già creato le interfacce VLAN sui nodi, imposta il valore
networkLifecyclesuUserManaged, come mostrato nella sezione successiva.
- In questa modalità, il cluster ha l'autorizzazione per creare ed eliminare l'interfaccia VLAN su ogni nodo, ad esempio
- La rete ha il DHCP esterno abilitato. Il server DHCP esterno è responsabile dell'allocazione degli indirizzi IPv4, delle route, del gateway e della configurazione DNS per i workload connessi a questa rete.
Salva e chiudi il manifest
Networknell'editor.Crea la rete utilizzando
kubectl:kubectl apply -f vlan-network.yaml
Crea una rete gestita dall'utente
Nella rete virtuale di esempio seguente, la rete è gestita dall'utente, a differenza di quella gestita da Anthos in un esempio precedente. Nelle reti gestite dall'utente, sei responsabile della creazione o dell'eliminazione dell'interfaccia VLAN sull'host.
Per creare una rete in modalità gestita dall'utente e definire manualmente la configurazione dell'interfaccia VLAN, completa i seguenti passaggi:
Crea un manifest
Network, ad esempiouser-managed-network.yaml, nell'editor che preferisci:nano user-managed-network.yamlCopia e incolla la seguente definizione YAML:
apiVersion: networking.gke.io/v1 kind: Network metadata: name: NETWORK_NAME spec: type: L2 networkLifecycle: UserManaged l2NetworkConfig: vlanID: VLAN_ID nodeInterfaceMatcher: interfaceName: INTERFACE_NAME externalDHCP4: trueSostituisci i seguenti valori:
NETWORK_NAME: il nome della rete.INTERFACE_NAME: l'interfaccia host a cui collegare la rete.VLAN_ID: l'ID VLAN per cui vuoi taggare il traffico.
In questo manifest
Network, sono impostati i seguenti valori:- I workload possono avere un solo collegamento
L2a questa rete. - La rete è
UserManaged. Devi creare o eliminare l'interfaccia VLANVLAN_IDsu ogni nodo prima della creazione della rete o dopo la sua eliminazione. - La rete ha il DHCP esterno abilitato. Il server DHCP esterno è responsabile dell'allocazione degli indirizzi IPv4, delle route, del gateway e della configurazione DNS per i workload connessi a questa rete.
Salva e chiudi il manifest
Networknell'editor.Crea la rete utilizzando
kubectl:kubectl apply -f user-managed-network.yaml
Connetti una VM a una rete
Le impostazioni di rete per la VM, come DNS e DHCP, vengono assegnate in modo statico o dinamico a seconda di come sono definite determinate opzioni di configurazione di rete:
- Se configuri un indirizzo IP statico sulla VM, non viene inviata alcuna query a un server DHCP. Le informazioni aggiuntive per configurare il gateway e la route devono provenire dalla risorsa di rete.
- Se non configuri un indirizzo IP statico sulla VM, viene inviata una query al server DHCP. La VM riceve tutte le informazioni dal server DHCP e ignora qualsiasi configurazione definita nella risorsa di rete.
- Se il DHCP esterno non è impostato su
truenella risorsa di rete, devi configurare un indirizzo IP statico per la VM. Tutte le altre informazioni provengono dalla configurazione definita nella risorsa di rete.
Per creare una VM che si connette a una rete, completa i seguenti passaggi:
Interfaccia a riga di comando
Per creare una VM utilizzando
kubectl, completa i seguenti passaggi:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --network NETWORK_NAMESostituisci i seguenti valori:
VM_NAME: il nome della VM.NETWORK_NAME: il nome della rete a cui connetterti.- Se la rete è configurata per consentire l'utilizzo di server DHCP esterni, alla VM viene assegnato automaticamente un indirizzo IP. Se devi definire un indirizzo IP statico, aggiungi il parametro e il valore facoltativi
--ip IP_ADDRESS.
- Se la rete è configurata per consentire l'utilizzo di server DHCP esterni, alla VM viene assegnato automaticamente un indirizzo IP. Se devi definire un indirizzo IP statico, aggiungi il parametro e il valore facoltativi
Manifest
Per creare una VM utilizzando un manifest YAML, completa i seguenti passaggi:
Crea un manifest
VirtualMachine, ad esempiomy-vm.yaml, nell'editor che preferisci:nano my-vm.yamlCopia e incolla il seguente manifest YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: NETWORK_NAME ipAddresses: - IP_ADDRESS default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: trueIn questo manifest YAML, definisci le seguenti impostazioni:
VM_NAME: il nome della VM.NETWORK_NAME: il nome della rete a cui connetterti.IP_ADDRESS: l'indirizzo IP in notazione CIDR da assegnare alla VM, ad esempio192.0.2.10/24.- Se la tua rete è configurata per consentire l'utilizzo di server DHCP esterni, rimuovi questo campo dal manifest
VirtualMachine.
- Se la tua rete è configurata per consentire l'utilizzo di server DHCP esterni, rimuovi questo campo dal manifest
Il disco di avvio denominato
VM_NAME-boot-dvdeve già esistere. Per saperne di più, consulta Crea un disco di avvio della VM.Salva e chiudi il manifest
VirtualMachinenell'editor.Crea la VM utilizzando
kubectl:kubectl apply -f my-vm.yaml
Passaggi successivi
- Modifica una VM in Google Distributed Cloud.
- Scopri di più su ruoli e attività utente GKE comuni.