Requisitos previos para configurar las redes definidas por el usuario (UDN) de Open Virtual Network (OVN) en Red Hat OpenShift on IBM Cloud
Configura los requisitos previos de la red definida por el usuario (CUDN) del clúster OVN de uso único para las redes «Localnet» y «Layer 2 Primary» en Red Hat OpenShift on IBM Cloud.
Este tutorial muestra cómo configurar los requisitos previos para las redes locales de CUDN y las redes primarias de capa 2 en Red Hat® OpenShift® Kubernetes Service en IBM Cloud. Todas las tareas descritas en este tutorial se realizan una vez por clúster.
Descripción general de Localnet
Red Hat OpenShift Kubernetes Service Las redes Localnet requieren una configuración adicional que los clientes no realizan en ROVS. En este tutorial se explican los pasos que hay que seguir.
Preparación del clúster « Red Hat OpenShift on IBM Cloud »
El clúster « Red Hat OpenShift » en IBM Cloud requiere el operador NMState. NMState proporciona una configuración de red persistente para puentes y redes físicas. En este paso se instala el operador.
Ten en cuenta las siguientes consideraciones:
- La instalación tarda entre 5 y 10 minutos en completarse una vez aplicado el manifiesto.
- Crea solo un puente por interfaz.
- No intentes cambiar el puente en
eth0.
Copia el siguiente bloque de código en un archivo y ejecútalo con el comando « oc apply -f step0a.yml » para instalar el operador NMState.
---
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
Espera a que el operador registre la definición de recurso personalizado (CRD) « NMState » antes de crear el recurso personalizado « NMState ». Si aplicas el recurso « NMState » antes de que se haya establecido
el CRD, aparecerá un error del tipo « no matches for kind "NMState" in version "nmstate.io/v1" ».
Ejecuta los siguientes comandos para realizar consultas hasta que aparezca el CRD y, a continuación, espera a que alcance el estado « 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
Comprueba que todos los CRD de NMState estén instalados.
oc get crd | grep nmstate
Salida de ejemplo:
nmstates.nmstate.io ...
nodenetworkconfigurationenactments.nmstate.io ...
nodenetworkconfigurationpolicies.nmstate.io ...
nodenetworkstates.nmstate.io ...
Una vez que los CRD estén listos, copia el siguiente bloque de código en un archivo y aplícalo con « oc apply -f step0b.yml » para crear el recurso personalizado « NMState ».
---
apiVersion: nmstate.io/v1
kind: NMState
metadata:
name: nmstate
spec:
probeConfiguration:
dns:
host: root-servers.net
Aplicación de la configuración en puente
Aplica la configuración básica del puente para utilizar la segunda tarjeta de interfaz de red (NIC) PCI-VNI (Peripheral Component Interconnect-Virtual Network Interface) (eth1).
Copia el siguiente bloque de código en un archivo y aplícalo 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"
Espera a que esta configuración se aplique a todos los nodos antes de pasar al siguiente paso.
% oc get NodeNetworkConfigurationPolicy br-eth1
NAME STATUS REASON
br-eth1 Available SuccessfullyConfigured
Aplicación de la configuración de mapeo de puentes
Aplica la configuración básica de mapeo de puentes.
Copia el siguiente bloque de código en un archivo y aplícalo 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
Creación de un prefijo secundario personalizado y subredes para tu VPC
Las redes locales pueden utilizar subredes VPC secundarias para cada red. En este ejemplo se utilizan tres nuevas subredes de un nuevo prefijo de VPC. Puedes sustituir cualquier prefijo o red, o utilizar los valores predeterminados de la VPC.
Creación de un nuevo prefijo de VPC
Crea un nuevo prefijo para cada zona. En este ejemplo se utiliza la superred 198.18.0.0/16 y se crean tres prefijos (subredes) /18, uno por 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
Creación de nuevas subredes de VPC
Crea tres subredes de VPC (prod, db y app) para 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
Conectar una pasarela pública según sea necesario
Asegúrate de que cada zona tenga asociada una puerta de enlace pública. De lo contrario, la subred sigue siendo privada.
Obtén el ID de cada subred. En este ejemplo, se ha seleccionado la subred « zone1-vm-prod ».
ic is subnets | awk ' $8 ~ /yourVPC-NAME_GOES-HERE/'
Salida de ejemplo:
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
Conectar una puerta de enlace pública a la subred
Conecta una puerta de enlace pública a la subred zone1-vm-prod utilizando el ID de subred 0716-efd14367-eed3-429d-b390-ea17f0e8cfb1.
ic is subnet-public-gateway-attach zone1-vm-prod --pgw r134-053cb8b1-d966-4b02-9f20-5fcbeda76048
Debes repetir este paso para cada nueva subred y cada zona. Las puertas de enlace públicas se asignan por VPC y por zona.
Nivel 2: Instalación de fontanería principal
Las redes primarias de capa 2 requieren una configuración inicial antes de que el usuario final pueda utilizarlas.
Antes de poder utilizar las redes primarias de capa 2, debes realizar una configuración inicial.
Instalación del FRR OVN Router Pod
Aplica el parche « Red Hat OpenShift » al clúster IBM Cloud para habilitar la opción «Free Range Routing» (FRR) en el pod de Open Virtual Networking (OVN). Aplica el siguiente parche para habilitar FRR como proveedor de enrutamiento adicional y para anunciar rutas en la configuración de OVN- Kubernetes.
oc patch Network.operator.openshift.io cluster --type=merge -p='{"spec":{"additionalRoutingCapabilities":{"providers":["FRR"]},"defaultNetwork":{"ovnKubernetesConfig":{"routeAdvertisements":"Enabled"}}}}'
Habilitación de la conectividad de red entre espacios de nombres
Aplica la configuración de red básica que permita la conectividad entre espacios de nombres para las redes definidas por el usuario en clúster (CUDN) anunciadas a través del Protocolo de puerta de enlace fronteriza (BGP). Esta configuración
suaviza el comportamiento predeterminado de aislamiento de la red definida por el usuario (UDN). Guarda el siguiente manifiesto en un archivo y aplícalo con el 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"
Activación del selector de anuncios de rutas
Añade anuncios de ruta para configurar OVN de modo que anuncie las redes de pods a través de BGP con el pod OVN FRR. Guarda el siguiente manifiesto en un archivo y aplícalo con el comando « oc apply -f step1.yml ».
Las redes deben llevar la etiqueta « 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"
---