Estadísticas de utilización de direcciones IP de GKE

En esta página se describen las estadísticas de Network Analyzer sobre el uso de direcciones IP de Google Kubernetes Engine (GKE). Para obtener información sobre todos los tipos de estadísticas, consulta el artículo Grupos y tipos de estadísticas.

Ver estadísticas en la API Recommender

Para ver estas estadísticas en la CLI de gcloud o en la API Recommender, usa el siguiente tipo de estadística:

  • google.networkanalyzer.container.ipAddressInsight

Necesitas los siguientes permisos:

  • recommender.networkAnalyzerGkeIpAddressInsights.list
  • recommender.networkAnalyzerGkeIpAddressInsights.get

Para obtener más información sobre cómo usar la API Recommender para obtener estadísticas de Analizador de redes, consulta el artículo Usar la CLI y la API Recommender.

Asignación de intervalos de pods de GKE altos

Esta estadística indica que la utilización de direcciones IP en los intervalos de direcciones de los pods de un clúster de GKE es superior al 80%. La política de asignación de direcciones IP de los pods de GKE varía en función de si el clúster se ha creado como un clúster nativo de VPC o como un clúster basado en rutas.

Clústeres basados en rutas

En GKE, los clústeres se pueden distinguir por la forma en que enrutan el tráfico de un pod a otro. Un clúster que usa Google Cloud rutas se denomina clúster basado en rutas. Para obtener más información, consulta Crear un clúster basado en rutas.

Un clúster basado en rutas tiene un intervalo de direcciones IP que se usan para pods y servicios. Aunque el intervalo se usa tanto para pods como para servicios, se denomina intervalo de direcciones de pods.

Los últimos /20 del intervalo de direcciones de los pods se usan para los servicios. Un intervalo /20 tiene 212 = 4096 direcciones. Por lo tanto, las direcciones 4096 se usan para los servicios y el resto del intervalo se usa para los pods.

Cada nodo del intervalo de direcciones de pods tiene un intervalo de /24 direcciones IP para los pods. Un intervalo /24 tiene 28 = 256 direcciones. Recuerda que las direcciones 4096 del intervalo de direcciones de los pods se usan para los servicios. La parte restante del intervalo de direcciones de pods se usa para los pods y debe ser lo suficientemente grande como para contener el número de nodos multiplicado por 256 direcciones.

La proporción de asignación del intervalo de direcciones de pods se calcula de la siguiente manera:

$\frac{\text {Número de nodos de GKE} \times {256}}{\text {Tamaño del intervalo de direcciones de pods}-{4096}}$

Por ejemplo, supongamos que quieres crear un clúster de nodos 900. A continuación, necesitas las direcciones 900 x 256 = 230,400 de los pods. Ahora, supongamos que tienes un intervalo de direcciones de /14 Pod. Un intervalo /14 tiene 218 = 262,144 direcciones. Resta las 4096 direcciones usadas para los servicios y obtendrás 258,048, que es suficiente para 900 nodos.

Clústeres nativos de VPC

En GKE, los clústeres se pueden distinguir por la forma en que enrutan el tráfico de un pod a otro. Un clúster que usa intervalos de direcciones IP con alias se denomina clúster nativo de VPC. Para obtener más información, consulta Clústeres nativos de VPC.

Cuando creas un grupo de nodos en un clúster nativo de VPC, seleccionas un intervalo de direcciones IP secundario para asignar IPs a los pods de GKE. Los distintos grupos de nodos pueden usar diferentes intervalos secundarios para asignar direcciones IP de pods. Para obtener más información, consulta CIDR de varios pods. Analizador de redes calcula la proporción de asignación de cada intervalo de direcciones IP secundarias que se usa para asignar direcciones IP de pods a un clúster determinado. Si la proporción de asignación general es superior al 80%, obtendrás una estadística de uso alto.

La proporción de asignación de un intervalo de direcciones IP secundarias se calcula de la siguiente manera:

$\frac{\text {Direcciones IP del intervalo secundario asignadas a los nodos}}{\text {Tamaño del intervalo secundario}}$

Por ejemplo, un intervalo de /24 pods secundarios puede contener 256 pods. Si solo hay un nodo 1 con los pods max_pods_per_node, 110 y 16 predeterminados en ejecución, la proporción será del 100% (256/256) en lugar del 6,25% (16/256), ya que, aunque no se utilicen las direcciones IP de los pods 240, siguen perteneciendo a este nodo. Solo se puede crear un nuevo nodo correctamente si hay 256 direcciones IP de Pod sin usar.

La asignación general se calcula de la siguiente manera:

$\frac{\text {Suma de las IPs asignadas en todos los intervalos de direcciones IP secundarias usados para asignar direcciones IP de pods}}{\text {Suma de los tamaños de los intervalos de direcciones IP secundarias usados para asignar direcciones IP de pods}}$

Por ejemplo, si el intervalo de direcciones IPv4 de pods predeterminado y el adicional es /22 y hay 2 grupos de nodos, un grupo de nodos usa el intervalo de direcciones IP de pods predeterminado y tiene 3 nodos, mientras que el segundo grupo de nodos usa un intervalo de direcciones IP de pods adicional y también tiene 3 nodos, con el número máximo de pods predeterminado establecido en 110. Kubernetes asigna un intervalo /24 CIDR a los nodos del clúster. Con 6 nodos y un intervalo CIDR de /24 asignado, hay un total de 256 * 6 = 1536 direcciones IP. Esto supone el 75% del número total de direcciones IP disponibles en los dos intervalos de direcciones IP de pods (1024 * 2 = 2048).

Es importante tener en cuenta que, si la dirección IP secundaria se comparte entre diferentes clústeres, las estadísticas mostrarán el valor total agregado de todos los clústeres. Para ver la utilización de un solo intervalo de IPs de clúster, puedes ejecutar gcloud container cluster describe CLUSTER_NAME para ver el estado de utilización de cada dirección IP secundaria. Sustituye CLUSTER_NAME por el nombre del clúster.

Recomendaciones

La asignación de intervalos de pods de GKE limita el autoescalado

Esta información indica que los intervalos de direcciones IP de los pods del clúster no tienen suficientes direcciones para admitir la creación del número máximo de nodos en todos los grupos de nodos. La página de detalles de la información valiosa incluye una tabla que muestra el número de direcciones IP de pods que se están usando y el número máximo de direcciones IP de pods en cada uno de los intervalos de direcciones IP de pods de tu clúster de GKE.

Network Analyzer genera esta información valiosa cuando el valor de utilización de la dirección IP totalmente escalado automáticamente supera el 100%.

El valor de utilización de direcciones IP con escalado automático completo supera el 100% cuando el número de direcciones IP de pods necesarias para admitir el número máximo de nodos del clúster supera el número de direcciones IP de los intervalos de direcciones IP de pods del clúster. El número máximo de nodos del clúster es la suma del número máximo de nodos de cada grupo de nodos del clúster (maxNodeCount).

El valor de utilización de direcciones IP con escalado automático completo se calcula mediante la fórmula que se encuentra en Asignación de intervalos de pods de GKE elevados.

Clústeres basados en rutas

Esta estadística se genera cuando la proporción de asignación del intervalo de direcciones de pods es superior al 100% y todos los grupos de nodos se escalan automáticamente por completo. Los nodos de GKE no se crearán debido a la falta de espacio de direcciones IP.

Clústeres nativos de VPC

Esta estadística se genera si algún intervalo de direcciones IP secundario usado para asignar direcciones IP de pods no tiene suficiente espacio de direcciones IP sin asignar. El espacio de direcciones IP insuficiente no puede gestionar la situación en la que todos los grupos de nodos se escalan automáticamente por completo.

Para obtener más información, consulta las prácticas recomendadas para las redes de GKE y las limitaciones del autoescalador de clústeres.

Recomendaciones

  • En el caso de los clústeres basados en rutas, vuelve a crear el clúster con un intervalo de direcciones de pod más amplio. Crea este clúster como un clúster nativo de VPC, ya que es el modo de red recomendado. Consulta Clústeres nativos de VPC y basados en rutas.
  • En los clústeres nativos de VPC, añade intervalos de pods adicionales a nivel de clúster mediante CIDR de varios pods y habilita el aprovisionamiento automático de nodos para automatizar el escalado de nodos con la asignación automática de direcciones IP de pods. Si quieres tener más control sobre qué direcciones IP de pod se usan en cada grupo de nodos, puedes crear grupos de nodos que usen un intervalo de direcciones IP secundarias específico mediante CIDR de varios pods. Sin embargo, esta opción solo se aplica a los clústeres estándar.