Compartir a través de


429 Errores de demasiadas solicitudes

En este artículo se describe cómo solucionar errores causados por errores "429 Demasiadas solicitudes" en los clústeres de Microsoft Azure Kubernetes Service (AKS) (o clústeres que usan otra implementación de Kubernetes en Azure).

Síntomas

Recibe errores similares al texto siguiente:

El servicio devolvió un error.

Status=429

Code="OperationNotAllowed"

Message="El servidor rechazó la solicitud porque se han recibido demasiadas solicitudes para esta suscripción".

Details=[{
"code":"TooManyRequests",
"message":"{
\"operationGroup\":\"HighCostGetVMScaleSet30Min\",
\"startTime\":\"2020-09-20T07:13:55.2177346+00:00\",
\"endTime\":\"2020-09-20T07:28:55.2177346+00:00\",
\"allowedRequestCount\":1800,
\"measuredRequestCount\":2208
}",
"target":"HighCostGetVMScaleSet30Min"
}]

InnerError={"internalErrorCode":"TooManyRequestsReceived"}"}

Causa: Los volúmenes de llamadas excesivos hacen que Azure limite la suscripción.

Un clúster de Kubernetes en Azure (con o sin AKS) que realiza una escala o reducción vertical frecuentes, o que usa el escalado automático del clúster, puede provocar un gran volumen de llamadas HTTP. Este volumen de llamadas puede producir un error, ya que supera la cuota asignada para la suscripción de Azure.

Para más información sobre estos errores, consulte Limitación de solicitudes de Azure Resource Manager y Solución de problemas de errores de limitación de API. Para obtener información sobre cómo analizar e identificar la causa de estos errores y obtener recomendaciones para resolverlos, consulte Análisis e identificación de errores mediante diagnóstico y solución de problemas de AKS.

Solución 1: Actualización a una versión posterior de Kubernetes

Ejecute Kubernetes 1.18.x o posterior. Estas versiones contienen muchas mejoras que se describen en errores de limitación de AKS/429 y Compatibilidad con clústeres grandes sin limitación. Sin embargo, si sigue viendo la limitación (debido a la carga real o el número de clientes de la suscripción), puede probar las siguientes soluciones.

Solución 2: Aumento del intervalo de examen del escalador automático

Si encuentra que se ha detectado la limitación de diagnósticos de "Limitación de escalado automático de clústeres" causada por el escalador automático del clúster, puede intentar aumentar el intervalo de examen del escalador automático para reducir el número de llamadas a conjuntos de escalado de máquinas virtuales (VMSS) desde el escalador automático del clúster.

Solución 3: Volver a configurar aplicaciones de terceros para realizar menos llamadas

Al filtrar por agentes de usuario en el diagnóstico "Ver la tasa de solicitudes y limitar los detalles", si encuentra aplicaciones de terceros (como aplicaciones de supervisión) que realizan un número excesivo de solicitudes GET, cambie la configuración de estas aplicaciones para reducir la frecuencia de las llamadas GET. Además, asegúrese de que los clientes de la aplicación usan retroceso exponencial al llamar a las API de Azure.

Solución 4: Dividir los clústeres en distintas suscripciones o regiones

Si hay numerosos clústeres y grupos de nodos que usan conjuntos de escalado de máquinas virtuales, intente dividir los clústeres en distintas suscripciones o regiones (dentro de la misma suscripción). La mayoría de los límites de la API de Azure son límites compartidos en el nivel de la región de la suscripción. Por ejemplo, todos los clústeres y clientes dentro de la sub uno y la región Este de EE. UU. comparten un límite para la API GET de conjuntos de escalado de máquinas virtuales. Por lo tanto, puede mover o escalar nuevos clústeres de AKS en una nueva región y desbloquearse en la limitación de la API de Azure. Esta técnica ayuda si espera que los clústeres tengan una actividad alta (por ejemplo, si tiene un escalador automático de clúster activo). También ayuda si tiene muchos clientes (como Rancher, Terraform, etc.). Dado que todos los clústeres son diferentes en su elasticidad y el número de clientes que sondean las API de Azure, no hay ninguna guía genérica sobre el número de clústeres que puede ejecutar por nivel de región de suscripción. Para obtener instrucciones específicas, puede crear una incidencia de soporte técnico.

Análisis e identificación de errores mediante diagnóstico y solución de problemas de AKS

Para un clúster de AKS, puede usar AKS Diagnostic and Solve Problems para analizar e identificar la causa de estos errores y obtener recomendaciones para resolverlos. Vaya al clúster en Azure Portal y seleccione Diagnosticar y resolver problemas en el panel de navegación izquierdo para abrir AKS Diagnostic and Solve Problems (Diagnosticar y resolver problemas de AKS). Busque y abra limitación de solicitudes de recursos de Azure, donde puede obtener un informe con una serie de diagnósticos. Estos diagnósticos pueden mostrar si el clúster ha experimentado una limitación de velocidad de solicitudes (429 respuestas) de Azure Resource Manager (ARM) o proveedor de recursos (RP) y de dónde procede la limitación. Por ejemplo:

  • Limitación de velocidad de solicitudes se ha detectado para el clúster: este diagnóstico proporciona algunas recomendaciones generales si se ha detectado una limitación en el clúster de AKS actual.

  • Se ha detectado la limitación del escalador automático de clústeres: este diagnóstico se muestra si se ha detectado la limitación y se originó en el escalador automático del clúster.

    Para reducir el volumen de solicitudes del escalador automático del clúster, use los métodos siguientes:

    • Aumente el intervalo de examen del escalador automático para reducir el número de llamadas del escalador automático del clúster a los conjuntos de escalado de máquinas virtuales. Este método puede tener un impacto negativo en la latencia en el tiempo necesario para escalar verticalmente porque el escalador automático del clúster espera más tiempo antes de llamar a Azure Compute Resource Provider (CRP) para una nueva máquina virtual.
    • Asegúrese de que el clúster está en una versión mínima de Kubernetes 1.18. La versión 1.18 y versiones posteriores de Kubernetes controlan mejor el retroceso de la tasa de solicitudes cuando se reciben 429 respuestas de limitación. Se recomienda mantenerse dentro de las versiones de Kubernetes admitidas para recibir revisiones de seguridad.
  • Limitación: Azure Resource Manager: este diagnóstico muestra el número de solicitudes limitadas en el intervalo de tiempo especificado en el clúster de AKS.

  • Tasa de solicitudes: Azure Resource Manager: este diagnóstico muestra el número total de solicitudes en el intervalo de tiempo especificado en el clúster de AKS.

  • Ver detalles de velocidad y limitación de solicitudes: este diagnóstico tiene varios diagramas para determinar los detalles de limitación, incluidas las solicitudes limitadas y el total de solicitudes. También puede filtrar los resultados mediante las siguientes dimensiones:

    • Host: host donde se detectaron respuestas de estado HTTP 429. Las limitaciones de Azure Resource Manager proceden de management.azure.com; cualquier otra cosa es un proveedor de recursos de nivel inferior.
    • Agente de usuario: solicitudes con un agente de usuario especificado limitado.
    • Operación: Operaciones en las que se detectaron respuestas de estado HTTP 429.
    • IP del cliente: la dirección IP del cliente que envió las solicitudes limitadas.

La limitación de solicitudes puede deberse a una combinación de cualquier clúster de esta suscripción, no solo la tasa de solicitudes de este clúster.

Ejemplo 1: Limitación del escalador automático de clústeres

En este ejemplo se trata del análisis de la limitación causada por el escalador automático del clúster.

Si encuentra que se ha detectado un diagnóstico de limitación del escalador automático de clústeres en AKS Diagnostic and Solve Problems Known Issues>, Availability and Performance Azure Resource Request Throttling (Limitación de solicitudes de recursos de Azure de disponibilidad y rendimiento>), indica que se han limitado las solicitudes emitidas por el escalador automático del clúster.

Diagrama que muestra la limitación de solicitudes de escalado automático de clústeres.

Puede encontrar el número de solicitudes limitadas y cuándo se limitan las solicitudes en el diagnóstico throttling - Azure Resource Manager .

Diagrama que muestra cuándo se limitan las solicitudes del escalador automático del clúster.

Puede encontrar el número de todas las solicitudes de ARM en el mismo período de tiempo.

Diagrama de todas las solicitudes de ARM.

Puede comprobar la tasa de solicitudes y el diagnóstico de detalles de limitación para encontrar los detalles de limitación. Seleccione 429s by User Agent (Seleccionar filtro) en la lista desplegable Seleccionar filtro y puede ver que las solicitudes de escalador automático están limitadas de 15:00 a 16:00.

Diagrama de limitaciones por parte de los agentes de usuario.

También puede encontrar el número total de solicitudes limitadas para el escalador automático del clúster y otros agentes de usuario.

Diagrama de limitaciones totales por agente de usuario.

También puede filtrar las limitaciones por operaciones. La operación de eliminación de máquinas virtuales de VMSS se limita en este caso.

Diagrama de limitaciones por operaciones.

Puede encontrar el número de solicitudes limitadas y todas las solicitudes agrupadas por operaciones.

Diagrama de limitaciones totales por operaciones.

A continuación, puede seguir las sugerencias de la acción recomendada para reducir las limitaciones.

En el diagrama se muestra que se detecta la limitación de solicitudes de escalado automático de clústeres.

Ejemplo 2: Limitación del proveedor de nube

En este ejemplo se trata de las limitaciones causadas por el proveedor de nube. A menudo se produce cuando se usan recursos en clústeres más grandes, por ejemplo, aprovisionar una instancia de Azure Load Balancer en un clúster que tenga más de 500 nodos.

Si encuentra una limitación en el clúster, puede ver los detalles de limitación en el diagnóstico ver la velocidad de solicitudes y los detalles de limitación. Seleccione 429s by User Agent en la lista desplegable Seleccionar filtro y puede ver que las solicitudes del proveedor de nube se limitaron de 03:00 a 06:00.

Diagrama que muestra la limitación se detecta.

Diagrama de limitaciones por agente de usuario.

También puede filtrar por operaciones para averiguar que la operación limitada es "Network/loadBalancers/read".

Diagrama de limitaciones por operación.

Puede usar la característica de versión preliminar de AKS Load Balancer basado en IP del nodo para reducir esta limitación.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.