Acerca de las direcciones IP persistentes de los pods

En este documento se explica cómo configurar una comunicación fiable asignando una o varias direcciones IP persistentes a pods específicos de tus clústeres de Google Kubernetes Engine (GKE). En el caso de las aplicaciones que requieren alta disponibilidad, también puedes configurar estas direcciones IP persistentes para que admitan la conmutación por error rápida.

En algunos casos, si utilizas una solución de traducción de direcciones de red (NAT) personalizada, puede que quieras una dirección IP estática persistente para las conexiones salientes y entrantes, tanto si la solución de NAT inicia la conexión como si la recibe. También puede que quieras controlar las direcciones IP asignadas a la aplicación para gestionar cómo interactúa con otros sistemas o cómo gestiona tipos específicos de solicitudes en función de los requisitos de tu empresa.

De forma predeterminada, el pod usa las direcciones IP de su interfaz para el tráfico de salida. Las direcciones IP de la interfaz cambian cuando se reinicia o se mueve el Pod. Para tener más control sobre la comunicación de enrutamiento, puedes configurar manualmente direcciones IP persistentes para tus pods en GKE.

Estas direcciones IP pueden ser direcciones IP externas para comunicarse a través de Internet o direcciones IP internas para comunicarse dentro de tu red Google Cloud. Puedes usar las direcciones IP proporcionadas por Google o traer tus propias direcciones IP (BYOIP).

Si configuras direcciones IP persistentes para los pods en GKE, puedes asignar la aplicación y la lógica empresarial para permitir que pods específicos envíen y reciban tráfico a o desde cualquiera de las direcciones IP persistentes.

En el siguiente diagrama se muestra cómo puede usar un Pod con varias interfaces de red una dirección IP persistente de una red secundaria y, al mismo tiempo, comunicarse en la red predeterminada:

Arquitectura de varias redes
Arquitectura de varias redes

Terminología y conceptos

En esta página se utilizan los siguientes conceptos:

Clases de pasarela

Las clases de pasarela, que gestionan tus asignaciones de direcciones IP persistentes, se dividen en las siguientes clases:

  • gke-persistent-regional-external-managed para direcciones IP externas
  • gke-persistent-regional-internal-managed para direcciones IP internas (Google Cloud)
  • gke-persistent-fast-regional-external-managed para direcciones IP externas con conmutación por error rápida
  • gke-persistent-fast-regional-internal-managed para direcciones IP internas (solo de Google Cloud) con conmutación por error rápida

    Las clases de pasarela funcionan en regiones específicas. Las clases de pasarela ofrecen gestión básica de direcciones IP y se centran en el enrutamiento de red de capa 3 (L3).

Objetos de pasarela

Los objetos de pasarela sirven como punto central para gestionar y configurar direcciones IP persistentes. Los objetos de pasarela de GKE gestionan un grupo de direcciones IP persistentes. En ellas se enumeran estas direcciones y se definen reglas sobre cómo se pueden asignar estas direcciones IP a GKEIPRoute.

Listener

Un listener es una parte de la configuración de tu puerta de enlace de GKE que controla qué pods de los espacios de nombres de la puerta de enlace pueden usar las direcciones IP persistentes que tiene la puerta de enlace. Listener te permite personalizar el acceso para ofrecer flexibilidad y seguridad. Cada Listener necesita un nombre único y te permite filtrar el acceso por espacio de nombres (todos, basado en etiquetas o solo el espacio de nombres de la Gateway).

Objeto GKEIPRoute

El objeto GKEIPRoute es un recurso personalizado que se configura para asignar una dirección IP persistente a un pod específico de tu clúster de GKE. Puedes usar la sección de estado del objeto GKEIPRoute para monitorizar la configuración de tu dirección IP persistente, que proporciona información clave a través de los siguientes campos:

  • Pod

    El campo Pod muestra el nombre exacto del pod vinculado a las direcciones IP persistentes. Un mismo pod puede usar varias direcciones IP persistentes.

  • Condiciones

    El campo Condiciones indica si la configuración de tu dirección IP externa funciona correctamente y también puede ayudarte a diagnosticar problemas si la configuración no es válida. Hay cuatro condiciones:

    • Accepted: indica si la especificación de recursos GKEIPRoute es válida. Si tu configuración tiene errores, la condición Accepted es False con un motivo.
    • GCPReady: indica que Google Cloud ha preparado todos los recursos necesarios. Los errores que se produzcan durante el proceso de aprovisionamiento de recursos se reflejan en el estado de la condición GCPReady. Google Cloud
    • DPV2Ready: indica el estado de la programación de la ruta de datos, como si la ruta de datos está lista y programada para permitir conexiones de red en las direcciones IP persistentes configuradas.
    • Ready: indica que la configuración de tu dirección IP persistente es válida y funciona correctamente. Se puede acceder a los pods mediante las direcciones IP persistentes proporcionadas, siempre que hayas configurado tu aplicación para que las use. El valor es True cuando las tres condiciones anteriores también son True.
  • nodeSelector

    Cuando se usa la conmutación por error rápida, debe usar el campo nodeSelector para especificar qué nodos están preconfigurados para la conmutación por error rápida. De esta forma, cuando se produce una conmutación por error, puedes poner en línea rápidamente el nuevo pod en un nodo designado con la dirección IP persistente. Debes programar tus pods con direcciones IP persistentes en estos nodos. Normalmente, esto se hace usando el nodeSelector del Pod para que coincidan las etiquetas de los nodos. Usa el campo nodeSelector al configurar la conmutación por error rápida y asegúrate de que las etiquetas especificadas no seleccionen más de 64 nodos.

Modos de reacción

Los modos de reacción determinan cómo se comporta el sistema cuando el pod vinculado a una dirección IP persistente sufre cambios, como cuando se mueve entre nodos o cuando se crea un pod coincidente. Puedes usar los modos de reacción para que tus direcciones IP persistentes sigan siendo utilizables aunque cambien tus pods.

Los modos de reacción son los siguientes:

  • ReadyCondition

    En el modo ReadyCondition, el sistema de direcciones IP persistentes prioriza el estado de los pods. El sistema de direcciones IP persistentes solo asigna direcciones IP a los pods que coinciden con las etiquetas especificadas y que han superado las comprobaciones de estado de Kubernetes, lo que indica que su estado Ready es True. Este modo es ideal para aplicaciones en las que es crucial que el pod que recibe la dirección IP persistente esté totalmente preparado para gestionar el tráfico entrante y saliente.

  • Exists

    El modo Existe prioriza la presencia de un pod. La dirección IP persistente se asigna a un pod si este coincide con las etiquetas de tu configuración y se ha programado en un nodo específico de tu clúster. Esto significa que el Pod existe y tiene un lugar designado para ejecutarse. Este modo es adecuado para situaciones en las que la asignación rápida de la dirección IP persistente tiene prioridad sobre la disponibilidad estricta, o en entornos como el desarrollo y las pruebas, donde la conectividad inmediata puede ser más importante que el estado de salud completo de la aplicación.

StatefulSets

Los StatefulSets son un tipo de carga de trabajo de Kubernetes diseñada para aplicaciones que necesitan identificadores estables y almacenamiento persistente. Los pods de un StatefulSet tienen nombres predecibles (por ejemplo, my-app-0, my-app-1).

Implementaciones

Las despliegues son un tipo de carga de trabajo de Kubernetes que se usa para gestionar aplicaciones sin estado en las que los pods suelen ser intercambiables. Los nombres de los pods de las implementaciones no se pueden predecir por completo.

Casos prácticos

Las direcciones IP persistentes de los pods de GKE se adaptan a varios casos prácticos de proveedores de servicios de red y seguridad que ejecutan aplicaciones relacionadas con la red en GKE.

Las direcciones IP persistentes de los pods de GKE se usan en los siguientes casos:

  • Control sobre NAT: al asignar direcciones IP persistentes a los pods que ejecutan funciones de red, obtienes un control granular sobre las direcciones IP de origen que se usan para el tráfico saliente. Esto te permite integrar tu lógica de NAT propietaria.
  • Grupos de direcciones IP dedicadas: las direcciones IP dedicadas te permiten asociar direcciones específicas a pods 5G Core concretos, lo que garantiza la compatibilidad con software de proveedores especializados.
  • Flujos de tráfico fiables: como el tráfico de retorno debe enrutarse a través de la misma función de red, las direcciones IP persistentes aseguran que los sistemas externos reconozcan y respondan al pod correcto sin interrupciones en la comunicación.
  • Alta disponibilidad para aplicaciones sensibles al tiempo: en el caso de las aplicaciones con requisitos estrictos de tiempo de actividad, como las del sector de las telecomunicaciones, puedes usar direcciones IP persistentes con una conmutación por error rápida para redirigir rápidamente el tráfico a un pod en buen estado en caso de fallo, lo que puede minimizar el tiempo de inactividad a solo unos segundos.

Ventajas

Las direcciones IP persistentes de los pods de GKE ofrecen las siguientes ventajas:

  • Identidad externa: si asignas a un pod una dirección IP persistente externa, los sistemas externos podrán acceder a ese pod de forma constante, aunque se reinicie o se mueva dentro del clúster. Esto resulta útil para los servicios que necesitan un endpoint visible externamente.
  • Comunicación fiable: las aplicaciones que dependen de otros recursos con direcciones IP específicas pueden establecer conexiones de forma fiable mediante direcciones IP persistentes. Las direcciones IP persistentes son importantes para los sistemas o las aplicaciones antiguos que tienen dependencias de direcciones IP codificadas.
  • Migraciones de versiones anteriores: las migraciones de versiones anteriores pueden ayudar a migrar aplicaciones que dependen de tener direcciones IP específicas durante el proceso de transición.
  • BYOIP: con BYOIP, puedes mantener el control sobre intervalos de direcciones IP específicos que ya tengas usándolos en tus clústeres de GKE.
  • Mayor tiempo de actividad de las aplicaciones: gracias a la rápida conmutación por error, puedes mejorar significativamente el tiempo de actividad de tus aplicaciones críticas minimizando el tiempo de inactividad a solo unos segundos en caso de que falle un pod.

Siguientes pasos