En esta página se describe la compatibilidad con varias redes para pods, incluidos los casos prácticos, los conceptos relevantes, la terminología y las ventajas.
Información general
Google Cloud admite varias interfaces de red a nivel de instancia de máquina virtual (VM). Puedes conectar una VM a un máximo de ocho redes con varias interfaces de red, incluida la red predeterminada y siete redes adicionales.
La red de Google Kubernetes Engine (GKE) amplía las funciones de varias redes a los pods que se ejecutan en los nodos. Con la compatibilidad con varias redes para pods, puedes habilitar varias interfaces en nodos y pods de un clúster de GKE. La compatibilidad con varias redes para pods elimina la limitación de una sola interfaz para los grupos de nodos, que limitaba los nodos a una sola VPC para las redes.
Network Function Optimizer (NFO) es un servicio de red disponible en GKE que ofrece compatibilidad con varias redes, direcciones IP persistentes y un plano de datos nativo de Kubernetes de alto rendimiento. NFO permite funciones de red contenerizadas en GKE. La multired es uno de los pilares fundamentales de NFO.
Para usar la compatibilidad con varias redes en tus pods y nodos, consulta el artículo Configurar la compatibilidad con varias redes en pods.
Terminología y conceptos
En esta página se utilizan los siguientes conceptos:
VPC principal: la VPC principal es una VPC preconfigurada que incluye un conjunto de ajustes y recursos predeterminados. El clúster de GKE se crea en esta VPC. Si eliminas la VPC preconfigurada, el clúster de GKE se creará en la VPC principal.
Subred: en Google Cloud, una subred es la forma de crear un enrutamiento entre dominios sin clases (CIDR) con máscaras de red en una VPC. Una subred tiene un único intervalo de direcciones IP principal que se asigna a los nodos y puede tener varios intervalos secundarios que pueden pertenecer a pods y servicios.
Red de nodos: se refiere a una combinación específica de una VPC y una subred. En esta red de nodos, a los nodos que pertenecen al grupo de nodos se les asignan direcciones IP del intervalo de direcciones IP principal.
Intervalo secundario: un intervalo secundario es un CIDR y una máscara de subred que pertenecen a una subred. Google Cloud GKE lo usa como red de pods de capa 3. Un Pod puede conectarse a varias redes Pod.
Red de pods: un objeto Network que sirve como punto de conexión para los pods.
La conexión puede ser de tipo Layer 3
o Device
. Puedes configurar redes de tipo Device
en netdevice
o en el modo Data Plane Development Kit (DPDK).
Las redes Layer 3
corresponden a un intervalo secundario de una subred. Device
de red
corresponde a una subred de una VPC. El modelo de datos de la red de pods en GKE con varias redes es el siguiente:
Para
Layer 3
Red: VPC -> Nombre de subred -> Nombre de intervalo secundarioPara la red
Device
: VPC -> Nombre de la subred
Red de pods predeterminada: Google Cloud crea una red de pods predeterminada durante la creación del clúster. La red de pods predeterminada usa la VPC principal como red de nodos. La red de pods predeterminada está disponible en todos los nodos y pods del clúster de forma predeterminada.
Pods con varias interfaces: las interfaces de los pods no pueden conectarse a la misma red de pods.
En el siguiente diagrama se muestra una arquitectura de clúster de GKE típica con redes Layer 3
:
En las redes de tipo Device
, que se pueden configurar en modo netdevice
o DPDK
, la NIC virtual de la VM se gestiona como un recurso y se transfiere al pod. En este caso, los mapas de la red de pods se corresponden directamente con la red de nodos. No es necesario indicar intervalos secundarios para las redes de tipo Device
.
Casos prácticos
La compatibilidad con varias redes para pods aborda los siguientes casos prácticos:
- Implementar funciones de red en contenedores: si ejecutas las funciones de red en contenedores, que tienen planos de datos y de gestión independientes. La función de varias redes para pods aísla las redes de diferentes planos de usuario, alto rendimiento o baja latencia de interfaces específicas, o bien la multitenencia a nivel de red. Esto es necesario para el cumplimiento, la calidad del servicio y la seguridad.
- Conectar VPCs en la misma organización y proyecto: quieres crear clústeres de GKE en una VPC y necesitas conectarte a servicios de otra VPC. Puedes usar la opción de nodos con varias NICs para la conectividad directa. Esto puede deberse a un modelo de concentrador y radios, en el que un servicio centralizado (registro, autenticación) opera en una VPC de concentrador y los radios requieren conectividad privada para acceder a él. Puedes usar la compatibilidad con varias redes para pods para conectar los pods que se ejecutan en el clúster de GKE directamente a la VPC de concentrador.
- Ejecutar aplicaciones DPDK con VFIO: quieres ejecutar aplicaciones DPDK que requieran acceso a la NIC en el nodo a través del controlador VFIO. Para conseguir la velocidad de paquetes óptima, puedes omitir por completo el kernel, Kubernetes y GKE Dataplane V2.
- Habilita el acceso directo a la vNIC sin pasar por Kubernetes ni GKE Dataplane V2: ejecuta las funciones de red en contenedores que requieren acceso directo a la tarjeta de interfaz de red (NIC) del nodo. Por ejemplo, las aplicaciones de computación de alto rendimiento (HPC) que quieran omitir Kubernetes y GKE Dataplane V2 para conseguir la latencia más baja. Algunas aplicaciones también quieren acceder a la información de la topología PCIe de la NIC para colocarse junto con otros dispositivos, como la GPU.
Ventajas
La compatibilidad con varias redes para pods ofrece las siguientes ventajas:
- Aislamiento del tráfico: la compatibilidad con varias redes para pods te permite aislar el tráfico en un clúster de GKE. Puedes crear pods con varias interfaces de red para separar el tráfico en función de la capacidad, como la gestión y el plano de datos, en los pods que ejecutan funciones nativas de la nube (CNFs) específicas.
- Dual homing: esta función permite que un pod tenga varias interfaces y enrute el tráfico a diferentes VPCs, lo que permite que el pod establezca conexiones con una VPC principal y otra secundaria. Si una VPC tiene problemas, la aplicación puede recurrir a la VPC secundaria.
- Segmentación de la red: los pods pueden conectarse a redes internas o externas en función de las necesidades de la carga de trabajo. En función de los requisitos específicos de tus cargas de trabajo, puedes elegir qué pods o grupos de pods se conectan a cada red. Por ejemplo, puedes usar una red interna para la comunicación este-oeste y una red externa para el acceso a Internet. Esto le permite adaptar la conectividad de red de sus cargas de trabajo en función de sus necesidades específicas.
- Rendimiento óptimo con DPDK: la compatibilidad con varias redes para pods en GKE permite que las aplicaciones DPDK se ejecuten en pods de GKE, lo que proporciona un rendimiento óptimo del procesamiento de paquetes.
- NIC de host disponible directamente en el pod: la compatibilidad con NIC en modo
netdevice
con varias redes transfiere la NIC de la VM directamente al pod, sin pasar por Kubernetes ni GKE Dataplane V2. De esta forma, se consigue la latencia más baja para la colaboración entre dispositivos. - Rendimiento: para mejorar el rendimiento de tus aplicaciones, puedes conectarlas a la red que mejor se adapte a sus necesidades.
Siguientes pasos
- Configurar la compatibilidad con varias redes para pods
- Consulta la descripción general de la red de GKE.