Compartir a través de


429 Errores de demasiadas solicitudes

En este artículo se describe cómo solucionar errores causados por errores de "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 reducción vertical o vertical frecuente, o usa el escalador 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 obtener 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 resolució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 al 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 informes de diagnóstico "Limitación de escalador automático de clústeres" causada por el escalador automático de clústeres, 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 un retroceso exponencial al llamar a las API de Azure.

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

Si hay varios 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 región de suscripción. Por ejemplo, todos los clústeres y clientes de la sub one y la región Este de EE. UU. comparten un límite para los conjuntos de escalado de máquinas virtuales GET API. 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ústeres activo). También ayuda si tiene muchos clientes (como Rancher, Terraform, etc.). Dado que todos los clústeres son diferentes en su elasticidad y en el número de clientes que sondea las API de Azure, no hay directrices genéricas 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 resolución de problemas de AKS

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

  • Se ha detectado una limitación de frecuencia de solicitudes 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 una limitación del escalador automático de clústeres: este diagnóstico se muestra si se ha detectado una limitación y se ha originado desde 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 al proveedor de recursos de proceso de Azure (CRP) para una nueva máquina virtual.
    • Asegúrese de que el clúster se encuentra en una versión mínima de Kubernetes de la versión 1.18. La versión 1.18 de Kubernetes y versiones posteriores controlan mejor el retroceso de la tasa de solicitudes cuando se reciben 429 respuestas de limitación. Se recomienda encarecidamente permanecer dentro de las versiones admitidas de Kubernetes 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 la velocidad de las solicitudes y los detalles de limitación: 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 dimensiones siguientes:

    • 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 que se limitaron.
    • Operación: operaciones en las que se detectaron respuestas de estado HTTP 429.
    • IP de 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 a la tasa de solicitudes de este clúster.

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

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

Si encuentra que se ha detectado un diagnóstico de limitación de escalador automático de clústeres en AKS Diagnose and Solve ProblemsKnown Issues, Availability and Performance Azure Resource RequestThrottling, it indicates requests issued by the cluster autoscaler have been throttled (Diagnóstico y solución de problemas >conocidos, disponibilidad y rendimiento>de limitación de solicitudes de recursos de Azure), indica que se han limitado las solicitudes emitidas por el escalador automático de clústeres.

Diagrama en el que se muestra la limitación de solicitudes de escalador automático de clústeres.

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

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

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 el diagnóstico Ver tasa de solicitudes y detalles de limitación para encontrar los detalles de limitación. Seleccione 429s by User Agent en la lista desplegable Seleccionar filtro y verá que las solicitudes de escalador automático se limitan de 15:00 a 16:00.

Diagrama de limitaciones por 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. En este caso, la operación de eliminación de máquinas virtuales de VMSS está limitada.

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 una limitación de solicitudes de escalador 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 ocurre cuando se operan recursos en clústeres más grandes, por ejemplo, el aprovisionamiento de un Azure Load Balancer en un clúster que tiene más de 500 nodos.

Si encuentra limitación en el clúster, puede ver los detalles de limitación en el diagnóstico Ver velocidad de solicitud y 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 en el que se muestra la limitación.

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 vista previa de AKS Load Balancer basada en IP de 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.