Prerequisiti per la configurazione delle reti definite dall'utente (UDN) di Open Virtual Network (OVN) su Red Hat OpenShift on IBM Cloud
Configurare i prerequisiti una tantum della rete definita dall'utente (CUDN) del cluster OVN per le reti Localnet e primarie di livello 2 su Red Hat OpenShift on IBM Cloud.
Questo tutorial illustra come configurare i prerequisiti per CUDN Localnets e Layer 2 Primaries su Red Hat® OpenShift® Kubernetes Service su IBM Cloud. Tutte le operazioni descritte in questo tutorial vengono eseguite una volta per ogni cluster.
Panoramica su Localnet
Red Hat OpenShift Kubernetes Service Le reti Localnet richiedono una configurazione aggiuntiva che i clienti non effettuano in ROVS. Questo tutorial illustra i passaggi necessari.
Preparazione del cluster " Red Hat OpenShift on IBM Cloud "
Il cluster " Red Hat OpenShift " su IBM Cloud richiede l'operatore NMState. NMState garantisce una configurazione di rete permanente per i bridge e le reti fisiche. Questo passaggio installa l'operatore.
Si prega di tenere presenti le seguenti considerazioni:
- Una volta applicato il manifesto, l'installazione richiede dai 5 ai 10 minuti per essere completata.
- Creare un solo bridge per ogni interfaccia.
- Non tentare di sostituire il ponte su
eth0.
Copia il seguente blocco di codice in un file e esegui il comando oc apply -f step0a.yml per installare NMState Operator.
---
apiVersion: v1
kind: Namespace
metadata:
name: openshift-nmstate
spec:
finalizers:
- kubernetes
---
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: openshift-nmstate
namespace: openshift-nmstate
spec:
targetNamespaces:
- openshift-nmstate
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: kubernetes-nmstate-operator
namespace: openshift-nmstate
spec:
channel: stable
installPlanApproval: Automatic
name: kubernetes-nmstate-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
Attendere che l'operatore registri la definizione della risorsa personalizzata (CRD) NMState prima di creare la risorsa personalizzata NMState. Se si applica la risorsa NMState prima che il CRD sia stato
creato, viene visualizzato un errore del tipo no matches for kind "NMState" in version "nmstate.io/v1".
Eseguire i seguenti comandi per effettuare il polling fino a quando non compare il CRD, quindi attendere che raggiunga lo stato " Established ".
until oc get crd nmstates.nmstate.io >/dev/null 2>&1; do echo "Waiting for NMState CRD..."; sleep 10; done
oc wait --for=condition=established crd/nmstates.nmstate.io --timeout=300s
Verificare che tutti i CRD NMState siano installati.
oc get crd | grep nmstate
Output di esempio:
nmstates.nmstate.io ...
nodenetworkconfigurationenactments.nmstate.io ...
nodenetworkconfigurationpolicies.nmstate.io ...
nodenetworkstates.nmstate.io ...
Una volta pronti i CRD, copia il seguente blocco di codice in un file e applicalo con il comando oc apply -f step0b.yml per creare la risorsa personalizzata NMState .
---
apiVersion: nmstate.io/v1
kind: NMState
metadata:
name: nmstate
spec:
probeConfiguration:
dns:
host: root-servers.net
Applicazione della configurazione a ponte
Applicare la configurazione di base del bridge per utilizzare la seconda scheda di rete (NIC) PCI-VNI (Peripheral Component Interconnect-Virtual Network Interface) (eth1).
Copia il seguente blocco di codice in un file e applicalo con oc apply -f step1.yml``.
---
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"
Attendere che questa configurazione venga applicata a tutti i nodi prima di passare alla fase successiva.
% oc get NodeNetworkConfigurationPolicy br-eth1
NAME STATUS REASON
br-eth1 Available SuccessfullyConfigured
Applicazione della configurazione di mappatura del bridge
Applicare la configurazione di base del bridge-mapping.
Copia il seguente blocco di codice in un file e applicalo con oc apply -f step2.yml``.
---
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
name: "vpc-vlans"
spec:
desiredState:
ovn:
bridge-mappings:
- localnet: "vpc-vlans" # <- use your desired network name
bridge: "br-eth1"
state: present
Creazione di un prefisso secondario personalizzato e di sottoreti per la propria VPC
Le reti locali possono utilizzare sottoreti VPC secondarie per ciascuna rete. In questo esempio vengono utilizzate tre nuove sottoreti appartenenti a un nuovo prefisso VPC. È possibile sostituire qualsiasi prefisso o rete, oppure utilizzare le impostazioni predefinite della VPC.
Creazione di un nuovo prefisso VPC
Crea un nuovo prefisso per ogni zona. In questo esempio viene utilizzata la superrete 198.18.0.0/16 e vengono creati tre prefissi (sottoreti) /18, uno per ogni zona.
ic is vpc-addrc my-vpc-zone-1-vms my-vpc us-south-1 198.18.0.0/18 --default true
ic is vpc-addrc my-vpc-zone-2-vms my-vpc us-south-2 198.18.64.0/18
ic is vpc-addrc my-vpc-zone-3-vms my-vpc us-south-3 198.18.128.0/18
Creazione di nuove sottoreti VPC
Crea tre sottoreti VPC (prod, db e app) per la zona 1.
ic is subnetc zone1-vm-prod my-vpc us-south-1 --ipv4-cidr-block 198.18.0.0/24
ic is subnetc zone1-vm-db my-vpc us-south-1 --ipv4-cidr-block 198.18.1.0/24
ic is subnetc zone1-vm-app my-vpc us-south-1 --ipv4-cidr-block 198.18.2.0/24
Collegamento di un gateway pubblico secondo necessità
Assicurarsi che a ciascuna zona sia associato un gateway pubblico. In caso contrario, la sottorete rimane privata.
Ottieni l'ID di ciascuna sottorete. In questo esempio, è selezionata la sottorete " zone1-vm-prod ".
ic is subnets | awk ' $8 ~ /yourVPC-NAME_GOES-HERE/'
Output di esempio:
0716-16da748a-5159-480c-b809-5f9e4750028b zone1-vm-app available 198.18.2.0/24 249/256 stone-likeness-bagging-headcount pgw-0ec02020-2f74-11f1-b0c5-bfe21078e55b potato-farm us-south-1 Default
0716-74a2d06b-de5c-40c2-8311-38dbff74ce62 zone1-vm-db available 198.18.1.0/24 249/256 stone-likeness-bagging-headcount - potato-farm us-south-1 Default
0716-efd14367-eed3-429d-b390-ea17f0e8cfb1 zone1-vm-prod available 198.18.0.0/24 249/256 stone-likeness-bagging-headcount pgw-0ec02020-2f74-11f1-b0c5-bfe21078e55b potato-farm us-south-1 Default
Collegamento di un gateway pubblico alla sottorete
Collegare un gateway pubblico alla sottorete zone1-vm-prod utilizzando l'ID della sottorete 0716-efd14367-eed3-429d-b390-ea17f0e8cfb1.
ic is subnet-public-gateway-attach zone1-vm-prod --pgw r134-053cb8b1-d966-4b02-9f20-5fcbeda76048
È necessario ripetere questo passaggio per ogni nuova sottorete e per ogni zona. I gateway pubblici sono associati a ciascuna VPC e a ciascuna zona.
Impianto idraulico primario di livello 2
Le reti primarie di livello 2 richiedono l'esecuzione di alcune operazioni preliminari prima che un utente finale possa utilizzarle.
Prima di poter utilizzare le reti primarie di livello 2, è necessario completare alcune operazioni di configurazione iniziale.
Installazione del router pod FRR OVN
Applicare la patch all' Red Hat OpenShift e del cluster IBM Cloud per rendere disponibile l'opzione Free Range Routing (FRR) nel pod Open Virtual Networking (OVN). Applicare la seguente patch per abilitare FRR come provider di routing aggiuntivo e per gli annunci di routing nella configurazione OVN- Kubernetes.
oc patch Network.operator.openshift.io cluster --type=merge -p='{"spec":{"additionalRoutingCapabilities":{"providers":["FRR"]},"defaultNetwork":{"ovnKubernetesConfig":{"routeAdvertisements":"Enabled"}}}}'
Abilitazione del networking tra spazi dei nomi
Applicare la configurazione di rete di base che consente il collegamento tra spazi dei nomi per le reti definite dall'utente del cluster (CUDN) pubblicizzate tramite il protocollo BGP (Border Gateway Protocol). Questa configurazione rende
meno restrittivo il comportamento predefinito di isolamento della rete definita dall'utente (UDN). Salva il seguente manifesto in un file e applicalo con il comando oc apply -f step0.yml``.
# Permit intra-CUDN-namespace traffic
---
apiVersion: v1
kind: ConfigMap
metadata:
namespace: openshift-network-operator
name: ovn-kubernetes-config-overrides
data:
advertised-udn-isolation-mode: "loose"
Attivazione del selettore degli annunci di percorso
Aggiungere annunci di route per configurare OVN in modo che pubblicizzi le reti dei pod tramite BGP con il pod OVN FRR. Salva il seguente manifesto in un file e applicalo con il comando oc apply -f step1.yml``.
Le reti devono recare l'etichetta “ advertise: true ”.
# Add the RouteAdvertisements
---
kind: RouteAdvertisements
apiVersion: k8s.ovn.org/v1
metadata:
name: default
spec:
nodeSelector: {}
frrConfigurationSelector: {}
networkSelectors:
- networkSelectionType: ClusterUserDefinedNetworks
clusterUserDefinedNetworkSelector:
networkSelector:
matchLabels:
advertise: "true"
advertisements:
- "PodNetwork"
---