En esta página, se explica cómo puedes lograr una comunicación confiable asignando directamente una o más direcciones IP persistentes (estáticas) a Pods específicos dentro de tus clústeres de Google Kubernetes Engine (GKE).
En algunos casos, cuando ejecutas una solución de traducción de direcciones de red (NAT) personalizada, es posible que desees tener una dirección IP persistente y estática para las conexiones entrantes y salientes, ya sea cuando la solución de NAT inicia la conexión o cuando la recibe. También te recomendamos que tengas control sobre las direcciones IP asignadas a la aplicación para administrar cómo interactúa con otros sistemas o cómo controla tipos específicos de solicitudes según 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 direcciones IP persistentes de forma manual 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 de Google Cloud. Puedes usar las direcciones IP proporcionadas por Google o usar tus propias direcciones IP (BYOIP).
Cuando configuras direcciones IP persistentes para los Pods en GKE, puedes asignar la lógica empresarial y de la aplicación para permitir que Pods específicos envíen y reciban tráfico desde o hacia cualquiera de las direcciones IP persistentes.
En el siguiente diagrama, se ilustra cómo un Pod con varias interfaces de red puede usar una dirección IP persistente de una red secundaria mientras se comunica en la red predeterminada:
Terminología y conceptos
En esta página, se usan los siguientes conceptos:
Clases de puerta de enlace
Las clases de puerta de enlace, que administran 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únicamente)
Las clases de puerta de enlace funcionan dentro de regiones específicas. Las clases de puerta de enlace ofrecen una administración básica de direcciones IP y se enfocan en el enrutamiento de red de la capa 3 (L3).
Objetos de puerta de enlace
Los objetos de puerta de enlace funcionan como el punto central para administrar y configurar las direcciones IP persistentes. Los objetos de puerta de enlace en GKE administran un grupo
de direcciones IP persistentes. Incluyen estas direcciones y definen reglas para asignar estas direcciones IP a GKEIPRoute
.
Objeto de escucha
Un objeto de escucha es una parte de la configuración de GKE Gateway que controla qué Pods de los espacios de nombres de la puerrta de enlace pueden usar las direcciones IP persistentes que contiene la puerta de enlace. El objeto Listener te permite personalizar el acceso para lograr flexibilidad y seguridad. Cada objeto de escucha necesita un nombre único y te permite filtrar el acceso por espacio de nombres (todos, basados en etiquetas o solo el espacio de nombres de la puerta de enlace).
Objeto GKEIPRoute
El objeto GKEIPRoute es un recurso personalizado que configuras para asignar una dirección IP persistente a un Pod específico en tu clúster de GKE. Puedes usar la sección de estado del objeto GKEIPRoute
para supervisar la configuración de tu dirección IP persistente, que proporciona información clave a través de los siguientes campos:
Pod
En el campo Pod, se muestra el nombre exacto del Pod vinculado a las direcciones IP persistentes. Un solo 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 ayudar a diagnosticar problemas si la configuración no es válida. Existen cuatro condiciones:
Accepted
: Indica si la especificación del recursoGKEIPRoute
es válida. Si tu configuración tiene errores, la condiciónAccepted
esFalse
con un motivo.GCPReady
: Indica que Google Cloud preparó todos los recursos necesarios. Los errores durante el proceso de aprovisionamiento de recursos de Google Cloud se reflejan en el estado de la condiciónGCPReady
.DPV2Ready
: Indica el estado de la programación de la ruta de datos, por ejemplo, que 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 la dirección IP persistente es válida y funcional. Se puede acceder a los Pods en las direcciones IP persistentes, siempre que hayas configurado tu aplicación para que las use. Se establece enTrue
cuando todas las otras tres condiciones anteriores también sonTrue
.
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 moverse entre nodos o cuando un Pod coincidente recién creado está disponible. Puedes usar los modos de reacción para mantener tus direcciones IP persistentes utilizables incluso cuando cambian tus Pods.
Los modos de reacción son los siguientes:
ReadyCondition
En el modo ReadyCondition, el sistema de direcciones IP persistentes prioriza el estado del pod. El sistema de direcciones IP persistentes solo asigna direcciones IP a Pods que coinciden con tus etiquetas especificadas y que pasaron las pruebas de estado de Kubernetes, lo que indica que su estado
Ready
esTrue
. Este modo es ideal para aplicaciones en las que es fundamental que el Pod que recibe la dirección IP persistente esté completamente preparado para controlar el tráfico entrante y saliente.Exists
El modo Exists prioriza la presencia de un pod. La dirección IP persistente se adjunta a un Pod si ese Pod coincide con las etiquetas de tu configuración y se programó 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 preparación estricta, o en entornos como el desarrollo y las pruebas, en los que la conectividad inmediata puede ser más importante que el estado 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 dentro de un StatefulSet tienen nombres predecibles (por ejemplo, my-app-0, my-app-1).
Implementaciones
Las implementaciones son un tipo de carga de trabajo de Kubernetes para administrar aplicaciones sin estado en las que los Pods suelen ser intercambiables. Los nombres de los pods dentro de las implementaciones no son totalmente predecibles.
Casos de uso
Las direcciones IP persistentes para Pods de GKE abordan varios casos de uso para proveedores de servicios de red y seguridad que ejecutan aplicaciones relacionadas con la red en GKE y GKE Enterprise.
Las direcciones IP persistentes para Pods de GKE abordan los siguientes casos de uso:
- Control sobre NAT: Cuando asignas direcciones IP persistentes a Pods que ejecutan funciones de red, obtienes un control detallado 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 hacer coincidir direcciones específicas con pods principales de 5G individuales, lo que garantiza la compatibilidad con el software especializado de los proveedores.
- Flujo de tráfico confiable: Dado que el tráfico de retorno debe enrutarse a través de la misma función de red, las direcciones IP persistentes garantizan que los sistemas externos reconozcan y respondan al Pod correcto sin interrupciones en la comunicación.
Beneficios
Las direcciones IP persistentes para Pods de GKE proporcionan los siguientes beneficios:
- Identidad externa: Si le asignas a un Pod una dirección IP externa persistente, los sistemas externos pueden llegar a ese Pod de forma coherente, incluso si se reinicia o se mueve dentro del clúster. Esto es útil para los servicios que necesitan un extremo detectable de forma externa.
- Comunicación confiable: Las aplicaciones que dependen de otros recursos con direcciones IP específicas pueden establecer conexiones de forma confiable con direcciones IP persistentes. Las direcciones IP persistentes son importantes para los sistemas o las aplicaciones heredados con dependencias de direcciones IP codificadas.
- Migraciones heredadas: Las migraciones heredadas pueden ayudar a migrar aplicaciones que dependen de tener direcciones IP específicas durante el proceso de transición.
- BYOIP: BYOIP te permite mantener el control sobre rangos de direcciones IP específicos que ya tienes, ya que puedes usarlos en tus clústeres de GKE.
¿Qué sigue?
- Controla la comunicación con direcciones IP persistentes en Pods de GKE
- Lee Acerca de la compatibilidad con varias redes para Pods
- Lee Configurar la compatibilidad con varias redes para Pods