Kubernetes proporciona varias formas de controlar la cantidad de recursos que pueden consumir contenedores individuales. Una forma importante de limitar el número de recursos utilizados por los contenedores individuales es a través de los límites de tasa de eventos. Este artículo describe los límites de la tasa de eventos y cómo usar esta función para limitar el consumo de recursos para sus aplicaciones que se ejecutan en Kubernetes.
¿Cuál es el límite de tasa de evento en Kubernetes??
Los límites de la tasa de eventos son una forma de controlar la velocidad a la que las cápsulas de su aplicación pueden consumir CPU y memoria adicionales en un clúster. Por ejemplo, si una solicitud para enviar datos al servicio llega al backend demasiado rápido (e.gramo., diez solicitudes por segundo), un limitador de tasa bloqueará la solicitud hasta que se haya procesado la solicitud anterior. Si alguno de sus cápsulas intenta exceder este límite solicitando más de tres solicitudes por segundo, será rechazado. Esto permite que sus aplicaciones se ejecuten sin problemas incluso cuando múltiples instancias de la misma aplicación se ejecutan simultáneamente, sin consumir cantidades excesivas de recursos del clúster. Puede configurar los límites de velocidad para un espacio de nombres, un usuario, un servidor y una fuente+objeto.
¿Por qué debería usar el límite de tasa de evento??
Estas son las razones por las que es mejor usar un límite de tasa de evento:
Controla la velocidad a la que se emiten los eventos desde sus nodos
Esto es importante para controlar la velocidad a la que se emiten los eventos desde sus nodos. La tasa a la que se envían los eventos a K8s es variable, dependiendo de la carga de trabajo que impone a su clúster. Cualquier evento anormal podría causar cargas de trabajo inesperadas en los componentes de infraestructura subyacentes y aumentar la utilización de la CPU en los nodos maestros. Por ejemplo, si un nodo está experimentando una alta carga debido a un aumento inesperado en el tráfico, podría producir un número excesivo de eventos que podrían afectar el rendimiento del clúster. Por lo tanto, es importante configurar un umbral en la tasa de eventos que el clúster puede procesar para evitar la sobrecarga.
Considere el siguiente escenario: tiene una flota de cincuenta vainas ejecutándose en su clúster, y cada uno emite aproximadamente un evento por segundo en promedio. En este escenario, sería aconsejable configurar una tasa de eventos de menos de mil eventos por minuto para evitar que el clúster se sobrecargue y no responda.
Tendrá control sobre la cantidad de vainas que se pueden crear
Desea controlar la cantidad de vainas que se pueden crear o lanzar en cualquier momento. Esto podría ser necesario para administrar efectivamente la carga de trabajo en su clúster y evitar problemas de sobrecarga y contención de recursos.
Evita que los recursos disponibles para una aplicación sean abrumados
Desea limitar la tasa de eventos provenientes de una sola aplicación para evitar los recursos disponibles para esa aplicación. Por ejemplo, supongamos que una aplicación de transmisión era generar muchos eventos cada segundo. En ese caso, esto podría abrumar los recursos asignados y hacer que el sistema se ejecute más lento o funcione más de lo contrario. En particular, se aseguran de que la CPU y la memoria, los recursos críticos y se mantengan energizados por suficientes recursos en poco tiempo.
Asegura que una aplicación cumpla con sus requisitos de rendimiento esperados
Desea establecer un límite mínimo en la cantidad de recursos que utiliza una aplicación específica para garantizar que cumpla con sus requisitos de rendimiento esperados en todo momento. Por ejemplo, suponga que una aplicación tiene una asignación de CPU y RAM especificada, que debe usar para funcionar correctamente. En ese caso, debe asegurarse de que solo intente asignar más recursos de los que tiene disponibles.
Se pueden evitar notificaciones innecesarias
Los administradores pueden evitar inundar su infraestructura con notificaciones innecesarias al limitar el número de eventos generados.
Le ayudará a proteger su entorno de producción de una congestión de red excesiva
Habilitar la limitación de la tasa de eventos ayudará a proteger su entorno de producción de la congestión de la red excesiva y evitará que sus usuarios experimenten un tiempo de inactividad inesperado debido a nodos sobrecargados o componentes de mal funcionamiento de. También le permitirá identificar rápidamente los cuellos de botella y los problemas de rendimiento para que pueda solucionarlos antes de que causen daños graves en su sistema. Para las organizaciones con requisitos de cumplimiento como PCI-DSS, habilitar la limitación de la tasa de eventos es una obligación absoluta si desea asegurarse de que los datos de su aplicación estén seguros en todo momento.
Cómo configurar el límite de tasa de evento?
Hay algunas formas en que puede habilitar el límite de tasa de eventos en Kubernetes. La forma más simple es usar la configuración de configuración de límites mencionados aquí.
Debe crear un nuevo archivo de configuración llamado límites o cualquier nombre con el que esté de acuerdo. Después de crear su YAML en el directorio de su clúster, agregue los siguientes contenidos:
"
Yamlkind: LimitRange
Min: "1"
Max: "3"
Esto define un rango o mínimo y el número máximo de vainas que pueden ejecutarse en un momento dado. El valor 1 se establece en "Min" y el valor 3 se establece en "Max".
Después de agregar el siguiente contenido, aplíquelo a través de la API. También puede realizar la siguiente acción en un archivo de configuración para habilitar el límite de tasa de evento:
Servicios:
event_rate_limit:
habilitado: verdadero
Kube-API:
Puede ver en el texto anterior que la opción "habilitada" está configurada en verdadero.
También puede verificar para ver los valores predeterminados en/etc/kubernetes/[configuration_file_name].YAML después de que la tasa de eventos esté habilitada:
…
Complementos:
- configuración:
APiversión: EventRatelimit.admisión.K8S.io/v1alpha1
tipo: configuración
Límites:
- Burst: 20000
QP: 5000
Tipo: servidor
…
Debe proporcionar todo el recurso de Kubernetes para la configuración en la Directiva de configuración si desea cambiar el límite de velocidad de evento:
Servicios:
Kube-API:
event_rate_limit:
habilitado: verdadero
configuración:
APiversión: EventRatelimit.admisión.K8S.io/v1alpha1
tipo: configuración
Límites:
- Tipo: servidor
QP: 8000
Burst: 40000
Conclusión
El límite de tasa de eventos es una herramienta potente que los administradores de Kubernetes pueden usar para limitar el volumen de eventos producidos por sus nodos. Puede limitar el número de consultas que un usuario externo puede convertir en el clúster limitando el número de eventos creados. Este artículo discutió muchos más beneficios de habilitar los límites de la tasa de eventos de Kubernetes y señala por qué debe habilitar los límites de la tasa de eventos y cómo habilitarlos.