Gestione delle interfacce di rete virtuali per la virtualizzazione di OpenShift
Cloud privato virtuale 4.20 e successivamente Solo nodi worker in metallo nudo Solo RHCOS OVN- Kubernetes CNI richiesto
È possibile utilizzare le interfacce di rete virtuali (VNI) per abilitare la connettività di rete avanzata per le macchine virtuali (VM) in esecuzione su cluster Red Hat OpenShift on IBM Cloud con OpenShift Virtualization.
Informazioni sulle interfacce di rete virtuali
Una Virtual Network Interface (VNI) è un'astrazione VPC di IBM Cloud che rappresenta le singole connessioni di rete. I VNI incorporano le proprietà di una connessione di rete, come gli indirizzi IP, gli indirizzi MAC e la sottorete VPC a cui appartengono.
Le VNI sono disponibili solo su cluster con nodi worker bare metal.
Red Hat OpenShift on IBM Cloud utilizza gli allegati di rete basati su VNI per consentire una connettività flessibile tra i carichi di lavoro in esecuzione sul cluster e quelli esterni al cluster. I VNI consentono l'esposizione diretta alla
rete delle macchine virtuali (VM) basate su OpenShift Virtualization utilizzando le reti definite dall'utente (UDN) con la topologia Localnet. Con i VNI collegati ai nodi worker bare metal, le migrazioni live delle macchine virtuali
possono preservare le connessioni di rete, poiché il VNI può implicitamente fluttuare e seguire il carico di lavoro VM tra le istanze worker bare metal all'interno della stessa zona.
Funzioni chiave
- VNI statici per nodo worker
- Quando si crea un cluster Red Hat OpenShift on IBM Cloud basato su bare metal o un nuovo pool di lavoratori in IBM Cloud VPC, vengono automaticamente create due VNI e collegate staticamente a ogni nodo lavoratore bare metal. Una VNI gestisce il traffico regolare dei lavoratori (rete di pod, UDN in overlay e comunicazione con il master). La seconda VNI funge da vettore per gli allegati VNI dinamici gestiti dall'utente.
- Allegati dinamici VNI
- È possibile creare e gestire le VNI on-demand dopo la creazione del cluster. I VNI dinamici possono essere collegati a lavoratori specifici o configurati per fluttuare tra i lavoratori della stessa zona, seguendo i carichi di lavoro di VM durante la migrazione live.
- Supporto alla migrazione in tempo reale
- Con le VNI collegate ai nodi worker bare metal, le migrazioni live delle macchine virtuali basate su OpenShift possono preservare le connessioni di rete. Il VNI fluttua implicitamente e segue il carico di lavoro tra le istanze worker bare metal all'interno della stessa zona.
Per importanti limitazioni e considerazioni sui VNI, vedere Limitazioni e considerazioni.
Attacco trasversale al conto
In Red Hat OpenShift on IBM Cloud, i nodi worker non vengono forniti nell'account dell'utente, il che significa che la gestione del ciclo di vita delle VNI è leggermente diversa da quella delle istanze bare metal VPC standalone. L'amministratore del cluster Red Hat OpenShift on IBM Cloud ha una visibilità diversa sugli allegati delle VNI perché sono collegati a carichi di lavoro che non sono visibili all'interno dell'account. Le differenze nella gestione delle VNI sono descritte in questa documentazione.
Per ulteriori informazioni sulle VNI sulle istanze bare metal VPC standalone, vedere Informazioni sulle interfacce di rete virtuali.
Limitazioni e considerazioni
- Modifiche statiche del VNI
- Non modificare i VNI statici creati automaticamente per ogni nodo worker. Sebbene questi VNI siano visibili nell'account VPC, qualsiasi modifica alle loro impostazioni non è supportata. Ciò include l'aggiunta di IP flottanti, la modifica dei gruppi di sicurezza o di qualsiasi altra proprietà della VNI. La modifica dei VNI statici può causare problemi di connettività del cluster.
- Restrizioni alla modifica del VNI per gli allegati galleggianti
- Non è possibile modificare le proprietà VNI per gli allegati dinamici fluttuanti (a livello di cluster). Questo include le modifiche al nome della VNI, agli indirizzi IP flottanti, alle impostazioni NAT dell'infrastruttura e alle assegnazioni dei gruppi di sicurezza. Per aggiornare queste impostazioni, è necessario prima staccare la VNI, apportare le modifiche e poi riattaccarla al cluster. Questa limitazione è temporanea.
- Vincoli di zona
- I VNI sono collegati a una sottorete VPC specifica e non possono fluttuare tra le zone. Nei cluster Red Hat OpenShift on IBM Cloud multizona, i VNI possono gestire il traffico solo per i carichi di lavoro in esecuzione sui lavoratori del cluster nella stessa zona in cui è stato effettuato il provisioning del VNI. Ciò significa anche che bisogna evitare OpenShift Virtualization VM la migrazione live tra le zone quando la specifica VM utilizza una VNI su una UDN Localnet.
- Requisiti del metallo nudo
- Le VNI sono supportate solo sui nodi worker bare metal. I nodi worker dell'istanza server virtuale (VSI) non supportano i VNI.
- Requisiti RHCOS
- I nodi worker devono eseguire il sistema operativo Red Hat CoreOS (RHCOS).
- OVN- Kubernetes CNI
- I cluster devono utilizzare il plugin OVN- Kubernetes Container Network Interface (CNI).
- Requisito della versione
- Il supporto VNI richiede il sito OpenShift 4.20 o successivo.
- Restrizioni UDN Localnet
- Le UDN Localnet hanno la gestione degli indirizzi IP (IPAM) disabilitata sul lato OVN, il che significa che l'assegnazione di indirizzi IP statici ai pod non avviene da OVN. Questa configurazione è progettata per i carichi di lavoro di VM che utilizzano DHCP o impostano IP statici all'interno del sistema operativo guest. I pod regolari non possono essere collegati a UDN localnet.
Prerequisiti
Prima di iniziare, accertatevi di disporre delle seguenti risorse e autorizzazioni.
- Un cluster Red Hat OpenShift on IBM Cloud alla versione 4.20 o successiva con nodi worker bare metal
- Infrastruttura VPC con VNI create
- Sistema operativo RHCOS sui nodi worker
- OpenShift Operatore di virtualizzazione installato
- Storage configurato per la virtualizzazione OpenShift
- Il ruolo di accesso alla piattaforma Operator per Kubernetes Service in IBM Cloud IAM
- Il ruolo di accesso alla piattaforma Editor o Administrator per i servizi di infrastruttura VPC in IBM Cloud IAM
- Consentire l'accesso agli account in elenco per le funzioni VNI
- OVN- Kubernetes CNI (necessario per il supporto VNI in 4.20 +)
Per informazioni generali sulle configurazioni multirete, consultare il sito Red Hat OpenShift documentazione sulle reti multiple.
Creazione di UDN in overlay per Pod e VM
È possibile creare reti definite dall'utente in overlay da utilizzare con pod o carichi di lavoro VM. L'esperienza dell'interfaccia utente della console OpenShift per le reti definite dall'utente è soggetta a modifiche con le ultime versioni. Gli esempi di questa documentazione utilizzano le definizioni YAML per la riusabilità.
Creazione di un UDN primario
Per utilizzare una rete definita dall'utente primaria per i pod o per il carico di lavoro di VM, occorre innanzitutto creare la UDN stessa.
Esempio di rete definita dall'utente del cluster che può essere utilizzata in tutti i namespace:
apiVersion: k8s.ovn.org/v1
kind: ClusterUserDefinedNetwork
metadata:
name: primary
spec:
namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: green
network:
layer2:
ipam:
lifecycle: Persistent
role: Primary
subnets:
- 10.0.0.0/24
topology: Layer2
Quindi, creare gli spazi dei nomi che lo utilizzeranno. Lo spazio dei nomi deve contenere un'etichetta specifica (chiamata k8s.ovn.org/primary-user-defined-network) al momento della creazione per l'utilizzo dell'UDN primario.
Esempio:
kind: Namespace
apiVersion: v1
metadata:
name: green
labels:
k8s.ovn.org/primary-user-defined-network: ''
Una volta che il (C)UDN e gli spazi dei nomi sono stati creati, qualsiasi carico di lavoro creato in questo spazio dei nomi accederà all'UDN con il percorso predefinito.
Creazione di un UDN secondario
La configurazione dell'UDN secondario è simile a quella dell'UDN primario, ma con il ruolo impostato su Secondary. Per informazioni dettagliate, consultare il sito Red Hat OpenShift documentazione sulle reti multiple.
Esporre le macchine virtuali con i bilanciatori di carico VPC
È possibile esporre le macchine virtuali senza utilizzare UDN o localnet VNI utilizzando i VPC Application Load Balancer. Per ulteriori informazioni sulla configurazione dei bilanciatori di carico, vedere Informazioni sui bilanciatori di carico VPC.
Impostazione delle reti definite dall'utente localnet
Le UDN Localnet richiedono la preparazione della rete OVN del cluster Red Hat OpenShift on IBM Cloud. Sui nodi del cluster bare metal, le due interfacce di rete statiche hanno nomi prevedibili sul sistema operativo host. L'interfaccia di rete
dedicata al trasporto del traffico dinamico allegato alla VNI si chiama eth1. L'utilizzo di Localnet richiede la creazione di un bridge OVS dedicato sui nodi del cluster bare metal, in cima a eth1. Preparare un ID
VLAN da utilizzare per collegare le VNI. Si farà riferimento ad esso anche nella risorsa CUDN.
Installazione dell'operatore NMState
OpenShift Servizio di virtualizzazione I cluster hanno l'operatore NMState preinstallato e gestito dal componente aggiuntivo " openshift-virtualization ".
Salta questo passaggio se stai utilizzando il Servizio di virtualizzazione.
-
Distribuire NMState Operator dal sito OperatorHub nella console Red Hat OpenShift on IBM Cloud o utilizzando la CLI.
-
Creare un'istanza di NMState con la configurazione predefinita.
apiVersion: nmstate.io/v1 kind: NMState metadata: name: nmstate spec: probeConfiguration: dns: host: root-servers.net
Creazione del ponte OVS
OpenShift Servizio di virtualizzazione I cluster dispongono delle risorse NNCP necessarie già preconfigurate. È necessario creare manualmente queste risorse solo per i cluster standard di OpenShift con installazione manuale di Virtualization OpenShift.
-
Creare un ponte OVS dedicato con
eth1collegato ad esso distribuendo la seguente risorsa personalizzata NMState.apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: "br-eth1" spec: desiredState: interfaces: - name: "br-eth1" description: A dedicated OVS bridge with a NIC as a port type: ovs-bridge state: up bridge: allow-extra-patch-ports: true options: stp: false port: - name: "eth1" -
Controllare lo stato della risorsa personalizzata e attendere che tutti i nodi del cluster interessati riconcilino la richiesta di creazione del ponte.
-
Collegare il nuovo ponte OVS a quello predefinito creando la seguente risorsa personalizzata NMState. Sostituire
vpc-vlanscon il nome della rete desiderata.apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: "vpc-vlans" spec: desiredState: ovn: bridge-mappings: - localnet: "vpc-vlans" bridge: "br-eth1" state: present -
Controllare lo stato della risorsa personalizzata e attendere che tutti i nodi del cluster interessati riconcilino la richiesta di mappatura del ponte.
Creazione di una rete definita dall'utente localnet
Creare una UDN o ClusterUserDefinedNetwork (CUDN) che renda disponibile il traffico dalle VNI utilizzando la VLAN selezionata.
apiVersion: k8s.ovn.org/v1
kind: ClusterUserDefinedNetwork
metadata:
name: "vlan250"
spec:
namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: In
values:
- "default"
network:
topology: Localnet
localnet:
role: "Secondary"
physicalNetworkName: "vpc-vlans"
ipam:
mode: Disabled
vlan:
mode: Access
access:
id: 250
Sostituisci i seguenti valori:
vlan250: Il nome del vostro CUDNdefault: Lo spazio dei nomi in cui si vuole utilizzare il CUDNvpc-vlans: Il nome della rete fisica definito nella mappatura del ponte250: ID VLAN desiderato (intervallo: 1-500)
In questo modo si conclude l'impianto idraulico di rete di una specifica VLAN. È possibile definire più CUDN utilizzando ID VLAN diversi e riutilizzando le mappature dei ponti.
Dopo aver completato l'impostazione dell'UDN localnet, è possibile collegare le VNI al cluster utilizzando la console IBM Cloud o il comando IBM Cloud CLI ks vni. Si vedano gli esempi nelle sezioni seguenti.
Collegamento delle VNI al cluster
Dopo aver impostato l'UDN localnet, è possibile collegare le VNI al cluster utilizzando la console IBM Cloud o la CLI.
Prima di iniziare
-
Creare le VNI nella VPC con la configurazione appropriata di subnet e indirizzi IP.
-
Assicurarsi di avere le autorizzazioni necessarie per gestire sia il cluster che le VNI.
Collegamento di una VNI dalla console
È possibile collegare una VNI a un nodo worker specifico (non flottante) o al cluster (flottante). I VNI flottanti possono seguire i carichi di lavoro tra i lavoratori della stessa zona.
Le VNI, le sottoreti e i nodi worker sono risorse zonali. La zona di calcolo VNI deve corrispondere alla zona worker selezionata. Per gli attacchi galleggianti, si assume la zona della VNI e anche l'attacco galleggiante ha il vincolo di zona. Le VNI possono essere collegate da sottoreti arbitrarie, ma solo all'interno della stessa VPC del cluster.
-
Dal sito Red Hat OpenShift on IBM Cloud console cluster, selezionare il proprio cluster.
-
Nel menu di navigazione, fare clic su Rete > Allegati VNI.
-
Fare clic su Allega VNI.
-
Nel pannello Attach VNIs, configurare le seguenti impostazioni:
- Sottorete: Selezionare la sottorete in cui si trova la VNI. Sono disponibili solo le sottoreti nella stessa zona dei nodi worker.
- Nodo worker: Selezionare un nodo worker specifico a cui collegare il VNI, oppure selezionare Tutti i nodi worker per creare un collegamento VNI fluttuante che può seguire i carichi di lavoro tra worker della stessa zona.
- VNI: selezionare la VNI da collegare tra quelle disponibili nella sottorete selezionata.
- ID VLAN: Inserire l'ID VLAN (intervallo: 1-500) che corrisponde alla configurazione della localnet UDN.
- Cancellazione automatica: Opzionale. Selezionare questa opzione per eliminare automaticamente la VNI quando viene rimossa dal cluster.
-
Fai clic su Attach.
Collegamento di una VNI dalla CLI
È possibile collegare una VNI a un nodo worker specifico (non flottante) o al cluster (flottante). I VNI flottanti possono seguire i carichi di lavoro tra i lavoratori della stessa zona.
Le VNI, le sottoreti e i nodi worker sono risorse zonali. La zona di calcolo VNI deve corrispondere alla zona worker selezionata. Per gli attacchi galleggianti, si assume la zona della VNI e anche l'attacco galleggiante ha il vincolo di zona. Le VNI possono essere collegate da sottoreti arbitrarie, ma solo all'interno della stessa VPC del cluster.
Per collegare una VNI a un nodo worker specifico, eseguire il seguente comando.
ibmcloud ks vni attach baremetal --worker WORKER_ID --vni VNI_ID --vlan VLAN_ID [--auto-delete]
Per collegare una VNI flottante al cluster, eseguire il seguente comando.
ibmcloud ks vni attach baremetal --cluster-id CLUSTER_ID --vni VNI_ID --vlan VLAN_ID [--auto-delete]
--worker WORKER_ID- L'ID del nodo di lavoro. Per visualizzare l'elenco degli ID dei worker, eseguire il comando
ibmcloud ks workers --cluster CLUSTER``. --cluster-id CLUSTER_ID- L'ID del cluster. Per visualizzare l'elenco degli ID dei cluster, eseguire il comando
ibmcloud ks clusters``. --vni VNI_ID- L'ID della VNI da allegare.
--vlan VLAN_ID- L'ID VLAN per l'allegato (intervallo: 1-500). Questo deve corrispondere all'ID VLAN della configurazione CUDN.
--auto-delete- Opzionale: Eliminare automaticamente la VNI quando viene rimossa dal cluster.
Esempio
ibmcloud ks vni attach baremetal --vni 0716-aac49630-f3b4-4ef6-9a3a-5145481697ba --worker kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123 --vlan 251
Output di esempio
OK
Successfully attached VNI 0716-aac49630-f3b4-4ef6-9a3a-5145481697ba to worker node kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123.
Worker Node ID VNI ID VLAN ID
kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123 0716-aac49630-f3b4-4ef6-9a3a-5145481697ba 251
Visualizzazione degli allegati VNI
È possibile visualizzare gli allegati VNI dalla console IBM Cloud o utilizzando la CLI.
Visualizzazione degli allegati VNI dalla console
-
Dal sito Red Hat OpenShift on IBM Cloud console cluster, selezionare il proprio cluster.
-
Nel menu di navigazione, fare clic su Rete > Allegati VNI.
-
La pagina Allegati dell'interfaccia di rete virtuale visualizza una tabella con le seguenti informazioni per ogni VNI collegata:
- Nome VNI: il nome dell'interfaccia di rete virtuale
- Nome del nodo worker: il nodo worker a cui è collegata la VNI, oppure indica se si tratta di un collegamento flottante
- Subnet: La sottorete VPC associata al VNI
- ID VLAN: L'ID VLAN utilizzato per il collegamento
- IP primario: l'indirizzo IP primario della VNI
-
Facoltativo: Utilizzare i filtri nella parte superiore della pagina per filtrare i VNI in base alla sottorete o al nodo worker.
Visualizzazione degli allegati VNI dalla CLI
Per elencare tutte le VNI collegate a un cluster, eseguire il seguente comando.
ibmcloud ks vni ls --cluster-id CLUSTER_ID
Per elencare le VNI collegate a un lavoratore specifico, eseguire il seguente comando.
ibmcloud ks vni ls --worker WORKER_ID
Output di esempio
ibmcloud ks vni ls --cluster-id c9pqfcmw0tq431jdnrrg
OK
VNI ID Worker Node IP Address MAC Address VLAN Floating Auto-delete
0716-d97d3626-acb2-476b-8b12-bcafa1dec5bb kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000456 10.240.1.5 02:00:02:00:73:A5 250 - false
0716-aac49630-f3b4-4ef6-9a3a-5145481697ba kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123 10.240.1.4 02:00:01:00:73:A5 251 - false
Rimozione di VNI
È possibile staccare le VNI dalla console IBM Cloud o utilizzando la CLI.
Rimozione delle VNI dalla console
-
Dal sito Red Hat OpenShift on IBM Cloud console cluster, selezionare il proprio cluster.
-
Nel menu di navigazione, fare clic su Rete > Allegati VNI.
-
Nella tabella degli allegati dell'interfaccia di rete virtuale, individuare la VNI che si desidera staccare.
-
Fare clic sull'icona del menu Azioni (⋯) per la VNI e selezionare Stacca.
-
Nella finestra di dialogo di conferma, fare clic su Stacca per confermare l'azione.
Rimozione di VNI dalla CLI
Per staccare una VNI da un nodo worker, è necessario specificare sia l'ID della VNI che l'ID del worker.
ibmcloud ks vni detach --worker WORKER_ID --vni VNI_ID
Per i VNI fluttuanti, elencare prima i VNI per trovare l'ID lavoratore corrente, quindi staccarsi utilizzando tale ID lavoratore.
Esempio
ibmcloud ks vni detach --vni 0716-aac49630-f3b4-4ef6-9a3a-5145481697ba --worker kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123
Detach VNI 0716-aac49630-f3b4-4ef6-9a3a-5145481697ba from worker node kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123? This action cannot be undone. [y/N]> y
OK
Successfully detached VNI 0716-aac49630-f3b4-4ef6-9a3a-5145481697ba from worker node kube-c9pqfcmw0tq431jdnrrg-mycluster-default-00000123.
Utilizzo delle VNI con la virtualizzazione OpenShift
Dopo aver collegato le VNI e configurato le UDN localnet, è possibile utilizzarle con le VM di OpenShift Virtualization.
-
Creare le macchine virtuali con OpenShift Virtualization e aggiungere la CUDN come rete secondaria. Gli allegati di Localnet non possono essere utilizzati come reti primarie. È possibile utilizzare la console OpenShift per aggiungere l'allegato.
-
Specificare l'indirizzo MAC dell'allegato per consentire al sistema operativo VM di ottenere il suo indirizzo IP tramite DHCP. In alternativa, è possibile assegnare staticamente l'indirizzo IP della VNI alla rispettiva interfaccia di rete nel sito VM.
Per ulteriori informazioni sulla creazione e la gestione delle macchine virtuali, consultare la seguente documentazione Red Hat:
Risoluzione dei problemi delle VNI
Perché non è possibile collegare pod regolari a UDN localnet?
Le UDN Localnet hanno la gestione degli indirizzi IP (IPAM) disabilitata sul lato OVN, il che significa che l'assegnazione di indirizzi IP statici ai pod non avviene da OVN. Questa configurazione è progettata per i carichi di lavoro di VM che utilizzano DHCP o impostano IP statici all'interno del sistema operativo guest. Queste opzioni non sono disponibili per i carichi di lavoro pod.
Perché la migrazione live è in sospeso tra i pool di lavoratori?
I diversi pool di lavoratori possono avere diversi tipi di lavoratori con CPU di generazioni e capacità diverse. Se l'intero set di funzionalità della CPU è visibile in modo trasparente al carico di lavoro VM, non è possibile eseguire la migrazione live di VM a un altro worker che non supporta tutte le funzionalità della CPU. È possibile limitare le caratteristiche della CPU visibile del sistema operativo guest all'inizio, per ottenere una maggiore compatibilità tra i vari flavor di worker.
Perché i VNI allegati dinamici non funzionano?
Controlla quanto segue:
- Verificare che l'ID VLAN del CUDN corrisponda all'ID VLAN dell'allegato VNI. Il VPC DHCP potrebbe comunque funzionare senza ulteriore traffico se la VLAN non è compatibile.
- Se il floating non è abilitato, assicurarsi che il carico di lavoro sia pianificato sul worker a cui è collegata la VNI.
- Verificare che il bridge OVS dedicato e la mappatura siano presenti sui lavoratori. Controllare lo stato della risorsa NodeNetworkConfigurationPolicy.