Instalar y verificar el enrutador nativo de la nube de Juniper para la implementación de Wind River
El enrutador nativo de la nube de Juniper utiliza el controlador JCNR (cRPD) para proporcionar capacidades de plano de control y JCNR-CNI para proporcionar una interfaz de red de contenedores. El enrutador nativo de la nube de Juniper utiliza el vRouter habilitado para DPDK para proporcionar capacidades de plano de datos de alto rendimiento y Syslog-NG para proporcionar funciones de notificación. En esta sección se explica cómo puede instalar estos componentes del enrutador nativo de la nube.
Instalar el enrutador nativo de la nube de Juniper con Helm Chart
Lea esta sección para conocer los pasos necesarios para cargar los componentes de imagen del enrutador nativo de la nube en Docker e instalar los componentes del enrutador nativo de la nube mediante los gráficos de Helm.
- Revise la sección Requisitos del sistema para la implementación de Wind River para asegurarse de que el servidor tiene toda la configuración necesaria.
- Descargue el paquete de software Cloud-Native Router deseado en el directorio de su elección.
Tiene la opción de descargar el paquete para instalar solo Cloud-Native Router o descargar el paquete para instalar JNCR junto con Juniper cSRX. Consulte Paquetes de descarga de software de enrutador nativo de la nube para obtener una descripción de los paquetes disponibles. Si no desea instalar Juniper cSRX ahora, siempre puede optar por instalar Juniper cSRX en la instalación de su enrutador nativo de la nube más adelante.
- Expanda el archivo Juniper_Cloud_Native_Router_release-number.tgz.
tar xzvf Juniper_Cloud_Native_Router_release-number.tgz
- Cambie el directorio al directorio de instalación principal.
Si solo está instalando Cloud-Native Router, entonces:
Este directorio contiene el gráfico de Helm solo para Cloud-Native Router.cd Juniper_Cloud_Native_Router_<release>
Si va a instalar Cloud-Native Router y cSRX al mismo tiempo, entonces:
Este directorio contiene la combinación del gráfico de Helm para Cloud-Native Router y cSRX.cd Juniper_Cloud_Native_Router_CSRX_<release>
Nota:En todos los pasos restantes de la instalación se supone que el directorio de trabajo actual es ahora Juniper_Cloud_Native_Router_<release> o Juniper_Cloud_Native_Router_CSRX_<release>.
- Ver el contenido en el directorio actual.
ls helmchart images README.md secrets
- Cambie al directorio del helmchart y expanda el gráfico de Helm.
cd helmchart
Solo para enrutadores nativos de la nube:
ls jcnr-<release>.tgz
tar -xzvf jcnr-<release>.tgz
El gráfico de Helm se encuentra en el directorio jcnr.ls jcnr jcnr-<release>.tgz
Para el enrutador nativo de la nube y cSRX combinados:
ls jcnr_csrx-<release>.tgz
tar -xzvf jcnr_csrx-<release>.tgz
El gráfico de Helm se encuentra en el directorio jcnr_csrx.ls jcnr_csrx jcnr_csrx-<release>.tgz
- Las imágenes de contenedor del enrutador nativo de la nube son necesarias para la implementación. Elija una de las siguientes opciones:
-
Configure su clúster para implementar imágenes del repositorio de Juniper Networks
enterprise-hub.juniper.net. Consulte Configurar credenciales de repositorio para obtener instrucciones sobre cómo configurar credenciales de repositorio en el gráfico de Helm de implementación. -
Configure el clúster para implementar imágenes a partir del tarball de imágenes incluido en el paquete de software Cloud-Native Router descargado. Consulte Implementar imágenes preempaquetadas para obtener instrucciones sobre cómo importar imágenes al motor de ejecución del contenedor local.
-
- Siga los pasos descritos en Instalación de la licencia para instalar la licencia del enrutador nativo de la nube.
- Introduzca la contraseña raíz del servidor host en el archivo secrets/jcnr-secrets.yaml en la línea siguiente:
root-password: <add your password in base64 format>
Debe introducir la contraseña en formato codificado en base64. Codifique su contraseña de la siguiente manera: Copie el resultado de este comando en secrets/jcnr-secrets.yaml.echo -n "password" | base64 -w0
- Aplique secrets/jcnr-secrets.yaml al clúster.
kubectl apply -f secrets/jcnr-secrets.yaml namespace/jcnr created secret/jcnr-secrets created
- Si lo desea, configure cómo se asignan los núcleos a los contenedores DPDK de vRouter. Consulte Asignar CPU al plano de reenvío del enrutador nativo de la nube.
- Personalice el gráfico de Helm para su implementación mediante el archivo helmchart/jcnr/values.yaml o helmchart/jcnr_csrx/values.yaml.
Consulte Personalizar el gráfico de timón del enrutador nativo de la nube para la implementación de Wind River para obtener descripciones de las configuraciones del gráfico de Helm.
- Opcionalmente, personalice la configuración del enrutador nativo de la nube.
Consulte Personalizar la configuración del enrutador nativo de la nube para crear y aplicar las personalizaciones de cRPD.
- Si va a instalar Juniper cSRX ahora, siga el procedimiento descrito en Aplicar la licencia cSRX y configurar cSRX.
- Etiquete los nodos en los que desea instalar Cloud-Native Router en función de la
nodeaffinityconfiguración (si está definida en ).values.yamlPor ejemplo:kubectl label nodes ip-10.0.100.17.lab.net key1=jcnr --overwrite
- Implemente el enrutador nativo de la nube de Juniper mediante el gráfico de Helm.
Desplácese hasta el directorio helmchart/jcnr o helmchart/jcnr_csrx y ejecute el siguiente comando:
o bienhelm install jcnr .
helm install jcnr-csrx .
NAME: jcnr LAST DEPLOYED: Fri Dec 22 06:04:33 2023 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
- Confirme la implementación del enrutador nativo de la nube de Juniper.
helm ls
Ejemplo de salida:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION jcnr default 1 2023-12-22 06:04:33.144611017 -0400 EDT deployed jcnr-<version> <version>
Verificar la instalación
El resultado que se muestra en este procedimiento de ejemplo se ve afectado por el número de nodos del clúster. El resultado que ve en su configuración puede diferir en ese sentido.
- Verifique el estado de los pods del enrutador nativo de la nube emitiendo el
kubectl get pods -Acomando.El resultado delkubectlcomando muestra todos los pods del clúster de Kubernetes en todos los espacios de nombres. La implementación correcta significa que todos los pods están en estado de ejecución. En este ejemplo, hemos marcado los pods del enrutador nativo de la nube de Juniper en negrita. Por ejemplo:kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE contrail-deploy contrail-k8s-deployer-579cd5bc74-g27gs 1/1 Running 0 103s contrail jcnr-0-dp-contrail-vrouter-nodes-b2jxp 2/2 Running 0 87s contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk-g7wrk 1/1 Running 0 87s jcnr jcnr-0-crpd-0 1/1 Running 0 103s jcnr syslog-ng-ds5qd 1/1 Running 0 103s kube-system calico-kube-controllers-5f4fd8666-m78hk 1/1 Running 1 (3h13m ago) 4h2m kube-system calico-node-28w98 1/1 Running 3 (4d1h ago) 86d kube-system coredns-54bf8d85c7-vkpgs 1/1 Running 0 3h8m kube-system dns-autoscaler-7944dc7978-ws9fn 1/1 Running 3 (4d1h ago) 86d kube-system kube-apiserver-ix-esx-06 1/1 Running 4 (4d1h ago) 86d kube-system kube-controller-manager-ix-esx-06 1/1 Running 8 (4d1h ago) 86d kube-system kube-multus-ds-amd64-jl69w 1/1 Running 3 (4d1h ago) 86d kube-system kube-proxy-qm5bl 1/1 Running 3 (4d1h ago) 86d kube-system kube-scheduler-ix-esx-06 1/1 Running 9 (4d1h ago) 86d kube-system nodelocaldns-bntfp 1/1 Running 4 (4d1h ago) 86d
- Compruebe los demonios del enrutador nativo de la nube emitiendo el
kubectl get ds -Acomando.Utilice el
kubectl get ds -Acomando para obtener una lista de demonios. Los demonios del enrutador nativo de la nube se resaltan en negrita.kubectl get ds -A
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE contrail jcnr-0-dp-contrail-vrouter-nodes 1 1 1 1 1 <none> 90m contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk 1 1 1 1 1 <none> 90m jcnr syslog-ng 1 1 1 1 1 <none> 90m kube-system calico-node 1 1 1 1 1 kubernetes.io/os=linux 86d kube-system kube-multus-ds-amd64 1 1 1 1 1 kubernetes.io/arch=amd64 86d kube-system kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 86d kube-system nodelocaldns 1 1 1 1 1 kubernetes.io/os=linux 86d
- Verifique los conjuntos de estado del enrutador nativo de la nube emitiendo el
kubectl get statefulsets -Acomando.El resultado del comando proporciona los statefulsets.
kubectl get statefulsets -A
NAMESPACE NAME READY AGE jcnr jcnr-0-crpd 1/1 27m
- Verificar si el cRPD tiene licencia y tiene las configuraciones apropiadas
- Vea la sección Acceder a la CLI de cRPD para acceder a la CLI de cRPD.
- Una vez que haya accedido a la CLI de cRPD, ejecute el
show system licensecomando en el modo CLI para ver las licencias del sistema. Por ejemplo:root@jcnr-01:/# cli root@jcnr-01> show system license License usage: Licenses Licenses Licenses Expiry Feature name used installed needed containerized-rpd-standard 1 1 0 2024-09-20 16:59:00 PDT Licenses installed: License identifier: 85e5229f-0c64-0000-c10e4-a98c09ab34a1 License SKU: S-CRPD-10-A1-PF-5 License version: 1 Order Type: commercial Software Serial Number: 1000098711000-iHpgf Customer ID: Juniper Networks Inc. License count: 15000 Features: containerized-rpd-standard - Containerized routing protocol daemon with standard features date-based, 2022-08-21 17:00:00 PDT - 2027-09-20 16:59:00 PDT - Ejecute el
show configuration | display setcomando en el modo CLI para ver la configuración predeterminada y personalizada de cRPD. El resultado se basará en la configuración personalizada y en el modo de implementación del enrutador nativo de la nube.root@jcnr-01# cli root@jcnr-01> show configuration | display set
- Escriba el
exitcomando para salir del shell del pod.
- Verificar la configuración de las interfaces de vRouter
- Vea la sección Access vRouter CLI para acceder a la CLI de vRouter.
- Una vez que haya accedido a la CLI de vRouter, ejecute el
vif --listcomando para ver las interfaces de vRouter. El resultado dependerá del modo y la configuración de implementación del enrutador nativo de la nube. A continuación se proporciona un ejemplo de implementación en modo L3, con una interfaz de estructura configurada:$ vif --list Vrouter Interface Table Flags: P=Policy, X=Cross Connect, S=Service Chain, Mr=Receive Mirror Mt=Transmit Mirror, Tc=Transmit Checksum Offload, L3=Layer 3, L2=Layer 2 D=DHCP, Vp=Vhost Physical, Pr=Promiscuous, Vnt=Native Vlan Tagged Mnp=No MAC Proxy, Dpdk=DPDK PMD Interface, Rfl=Receive Filtering Offload, Mon=Interface is Monitored Uuf=Unknown Unicast Flood, Vof=VLAN insert/strip offload, Df=Drop New Flows, L=MAC Learning Enabled Proxy=MAC Requests Proxied Always, Er=Etree Root, Mn=Mirror without Vlan Tag, HbsL=HBS Left Intf HbsR=HBS Right Intf, Ig=Igmp Trap Enabled, Ml=MAC-IP Learning Enabled, Me=Multicast Enabled vif0/0 Socket: unix MTU: 1514 Type:Agent HWaddr:00:00:5e:00:01:00 Vrf:65535 Flags:L2 QOS:-1 Ref:3 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:0 bytes:0 errors:0 Drops:0 vif0/1 PCI: 0000:5a:02.1 (Speed 10000, Duplex 1) NH: 6 MTU: 9000 Type:Physical HWaddr:ba:9c:0f:ab:e2:c9 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:L3L2Vof QOS:0 Ref:12 RX port packets:66 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:5a:02.1 Status: UP Driver: net_iavf RX packets:66 bytes:5116 errors:0 TX packets:0 bytes:0 errors:0 Drops:0 vif0/2 PMD: eno3v1 NH: 9 MTU: 9000 Type:Host HWaddr:ba:9c:0f:ab:e2:c9 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:65535 Flags:L3L2DProxyEr QOS:-1 Ref:13 TxXVif:1 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:66 bytes:5116 errors:0 Drops:0 TX queue packets:66 errors:0 TX device packets:66 bytes:5116 errors:0 - Escriba el
exitcomando para salir del shell del pod.
- Si lo desea, descargue y ejecute pruebas de topología de Validation Factory. Consulte Validación.