Whitepaper 'FinOps y gestión de costes para Kubernetes'
Considere darle a OptScale un Estrella en GitHub, es 100% de código abierto. Aumentaría su visibilidad ante los demás y aceleraría el desarrollo de productos. ¡Gracias!
Ebook 'De FinOps a estrategias comprobadas de gestión y optimización de costos en la nube'
OptScale FinOps
OptScale - FinOps
Descripción general de FinOps
Optimización de costos:
AWS
MS Azure
Nube de Google
Alibaba Cloud
Kubernetes
MLOps
OptScale - MLOps
Perfiles de ML/IA
Optimización de ML/IA
Perfilado de Big Data
PRECIOS DE ESCALA OPTICA
cloud migration
Acura: migración a la nube
Descripción general
Cambio de plataforma de la base de datos
Migración a:
AWS
MS Azure
Nube de Google
Alibaba Cloud
VMware
OpenStack
KVM
Nube pública
Migración desde:
En la premisa
disaster recovery
Acura: recuperación ante desastres y respaldo en la nube
Descripción general
Migración a:
AWS
MS Azure
Nube de Google
Alibaba Cloud
VMware
OpenStack
KVM

Problemas de rendimiento de Kubernetes y cómo solucionarlos

Kubernetes, el software de orquestación de contenedores de código abierto, domina el mundo de las aplicaciones en contenedores al tener la mayor cuota de mercado, por lejos. Y hay muchas razones para ello. Kubernetes amplía drásticamente las capacidades del software para entornos habilitados para contenedores, como Docker. Simplifica la gestión de la implementación, el enrutamiento de la red, la utilización de recursos, el equilibrio de carga, la resiliencia de las aplicaciones en ejecución y mucho más.

Sin embargo, esta solución no funcionará de manera efectiva por sí sola sin una preparación adecuada y una configuración adicional, ya que cada clúster recién creado no tiene un rendimiento óptimo por defecto. Siempre existen dificultades y matices sutiles en la implementación y el funcionamiento de Kubernetes, así como el problema del uso subóptimo de sus ventajas, lo que en última instancia conduce a la pérdida de dinero. En este caso, los representantes de los equipos de TI deben poseer suficiente experiencia, métodos e instrumentos para identificar configuraciones incorrectas y cuellos de botella, pero al mismo tiempo, existe una escasez global de expertos en Kubernetes en el mercado, porque en este momento la popularidad de K8s está superando el nivel de conocimiento sobre él entre los especialistas técnicos.

Kubernetes-performance-issues-and-how-to-handle-them

Principales problemas de rendimiento de Kubernetes

Basado en el investigación Según Circonus, los cuatro principales problemas de rendimiento de Kubernetes son:

  • contención de recursos para clústeres/nodos/pods, 
  • problemas de implementación, 
  • desafíos del escalamiento automático,
  • bucles de bloqueo y fallos laborales. 

No fue una sorpresa, ya que esos problemas se deben en gran medida a las peculiaridades de la tecnología y a la falta de conocimientos y experiencia a la hora de trabajar con esta plataforma.

En el corazón de Kubernetes hay un programador que coloca contenedores en los nodos. En pocas palabras, es como llenar cajas de distintos tamaños con elementos de distintos tamaños y formas. Desde ese punto de vista, el programador necesita saber la capacidad exacta de los nodos, así como el tamaño de cada contenedor que se coloca en ellos. Si no lo hace, se produce un exceso de aprovisionamiento de los nodos y graves problemas de rendimiento.

Cómo solucionar los problemas de rendimiento de Kubernetes

Monitoreo de métricas de Kubernetes

La forma más eficiente (y, al mismo tiempo, la más desafiante) de abordar los problemas de rendimiento de K8 es, sin duda, aumentar la capacidad de observación de la plataforma para poder comprender cuáles de las métricas recopiladas debe controlar para identificar la causa raíz de ciertos problemas. De hecho, Kubernetes le proporciona numerosas métricas y la mayoría de ellas son una fuente importante de información sobre cómo utilizar la plataforma, independientemente de cómo la ejecute realmente.

Sistemas de monitoreo de código abierto como Prometeo Puede ser de gran ayuda en Visualizando sus costos de KubernetesY con la ayuda de un programa independiente de exportación, es posible traducir las métricas de los nodos al formato adecuado y enviarlas al servidor Prometheus. Al instalarlo en cada nodo de su clúster, podrá acceder a docenas de categorías de métricas, las más importantes de las cuales están relacionadas con el uso de CPU, disco, memoria y red.

A pesar de que hemos reducido el rango de métricas estudiadas a cuatro categorías, en esta etapa aún nos resultará difícil entender qué indicadores son primordiales para nosotros. Dado que Kubernetes es un ejemplo de un sistema complejo, deberíamos tomar el camino de simplificar las abstracciones en torno a las categorías que nos interesan. Posteriormente, esto nos ayudará a analizar no solo las métricas de los nodos, sino en general todas las métricas de Kubernetes.

Los métodos más comunes para simplificar abstracciones son:

  1. El método USE, introducido en 2012 por Brendan Gregg, dirigido a los recursos de su sistema:

    Utilización: el tiempo promedio que el recurso estuvo ocupado prestando servicio al trabajo.

    Saturación: el grado en el cual el recurso tiene trabajo adicional que no puede atender, a menudo en cola.

    Errores: el recuento de eventos de error.

  2.  El método RED (2015), que define las tres métricas clave que debes medir para cada microservicio en tu arquitectura:

    (Tasa de solicitud): la cantidad de solicitudes atendidas.

    (Errores de solicitud): la cantidad de solicitudes fallidas.

    (Solicitud) Duración: distribuciones de la cantidad de tiempo que toma cada solicitud.

  3. Las Cuatro Señales Doradas (descritas en el libro Site Reliability Engineering de Google) son hasta cierto punto una fusión de los métodos anteriores:

Latencia: el tiempo que lleva atender una solicitud.

Tráfico: una medida de cuánta demanda se coloca en su sistema, medida en una métrica específica del sistema de alto nivel.

Errores: la tasa de solicitudes que fallan, ya sea explícitamente, implícitamente o por la política.

Saturación: qué tan “lleno” está su servicio.

Resulta que no basta con tener información extensa sobre los recursos de los nodos del cluster de Kubernetes, también es importante poder analizarlos. Por ejemplo, analizar los recursos (como CPU, disco, memoria y red) a través de la lente del uso, la saturación y los errores (método USE) puede darnos una idea de cómo se están gastando los recursos y permitirnos optimizar y escalar aún más su uso.

Una vez que su equipo de TI descubra qué recursos están subutilizados y sobreutilizados, podrán definir los límites de almacenamiento óptimos, el tamaño óptimo de CPU y memoria para los nodos del clúster y los grupos de nodos óptimos para cada nodo, lo que a su vez les permitirá Analizar los costos de Kubernetes y analizar su rendimiento..

Cumplir con las mejores prácticas

Independientemente del éxito con el que monitoree y analice el uso de recursos de Kubernetes, hay una serie de prácticas recomendadas a seguir para ayudarlo a aprovechar la plataforma al máximo.

  1. Optimice su entorno para Kubernetes.
    Tenga en cuenta que las herramientas en contenedores se diseñaron originalmente para una arquitectura débilmente acoplada que consta de aplicaciones sin estado que procesan datos pero no almacenan nada. Por lo tanto, es un error no hacer nada antes de implementar aplicaciones con estado que almacenen datos y no adaptar la arquitectura de las aplicaciones monolíticas para permitir que se ejecuten en Kubernetes.
  2. Utilice Kubernetes sólo cuando sea necesario.
    Al migrar a Kubernetes, recuerde que tiene sentido ejecutar bases de datos y algunas aplicaciones en una máquina virtual, y un posible traslado solo por el hecho de hacerlo puede afectar gravemente el rendimiento.
  3. Cuente con especialistas que sepan trabajar con Kubernetes.
    Trabajar con Kubernetes requiere administradores de sistemas con experiencia práctica con la plataforma, ya que mantener con éxito este ecosistema de componentes requiere un alto nivel de experiencia.
  4. Adaptar los procesos de TI para la implementación de Kubernetes.
    Kubernetes está cambiando radicalmente la distribución de funciones y responsabilidades dentro de un equipo de TI. Ahora, la implementación adecuada requiere un cambio hacia los procesos DevOps, y los desarrolladores deben aceptar esta metodología y sus herramientas.

    A través de DevOps, los administradores de sistemas mantienen la infraestructura, mientras que los desarrolladores respaldan la aplicación desde la planificación y la codificación hasta el lanzamiento, la implementación, la supervisión y la producción. Los desarrolladores ahora no pueden evitar conocer la infraestructura; también deben comprender cómo funciona su código en el contexto de todos estos nuevos procesos.

  5. Aproveche herramientas adicionales que amplíen la funcionalidad de Kubernetes sin depender únicamente de la funcionalidad lista para usar.

     

    En el párrafo anterior, nos detuvimos en detalle en el sistema de monitoreo de métricas basado en Prometheus, pero esto está lejos de toda la funcionalidad que pueden proporcionar los servicios adicionales. Además, gracias a varias herramientas, puede optimizar los procesos de almacenamiento de datos de la aplicación (Ceph, GlusterFS), recopilación y almacenamiento de registros (Fluentd, Elasticsearch, Loki), escalamiento automático (Metrics Server, Prometheus Adapter), configuraciones de seguridad (Dex, Keycloak, Open Policy Agent) y mucho más.

Nuestro producto, OptScale, puede ayudar a definir correctamente un conjunto de características y configuraciones como el tamaño correcto de la máquina virtual, los tipos de máquinas, la selección de regiones, la reestructuración de los recursos del trabajo CI/CD o los grupos de afinidad de pods para lograr un mejor rendimiento.

Para probarlo, puedes solicitar una versión de prueba gratuita; no se necesita tarjeta de crédito → https://my.optscale.com/register

Ingresa tu email para recibir contenido nuevo y relevante

¡Gracias por estar con nosotros!

Esperamos que lo encuentre útil.

Puede darse de baja de estas comunicaciones en cualquier momento. política de privacidad

Noticias e informes

FinOps y MLOps

Una descripción completa de OptScale como una plataforma de código abierto FinOps y MLOps para optimizar el rendimiento de la carga de trabajo en la nube y el costo de la infraestructura. Optimización de los costos de la nube, Dimensionamiento correcto de VM, instrumentación PaaS, Buscador de duplicados S3, Uso de RI/SP, detección de anomalías, + herramientas de desarrollo de IA para una utilización óptima de la nube.

FinOps, optimización de costos en la nube y seguridad

Descubra nuestras mejores prácticas: 

  • Cómo liberar direcciones IP elásticas en Amazon EC2
  • Detectar máquinas virtuales de MS Azure detenidas incorrectamente
  • Reduce tu factura de AWS eliminando las copias instantáneas de disco huérfanas y no utilizadas
  • Y conocimientos mucho más profundos

Optimice el uso de RI/SP para equipos de ML/AI con OptScale

Descubra cómo:

  • ver cobertura RI/SP
  • obtenga recomendaciones para el uso óptimo de RI/SP
  • Mejore la utilización de RI/SP por parte de los equipos de ML/AI con OptScale