Los 6 principales casos de uso de Kubernetes

Hombre de negocios usa una computadora portátil en la oficina

Kubernetes, la plataforma de orquestación de contenedores de código abierto más popular del mundo, se considera un hito importante en la historia de las tecnologías nativas de la nube. Desarrollada internamente en Google y lanzada al público en 2014, Kubernetes permitió a las organizaciones alejarse de la infraestructura de TI tradicional y avanzar hacia la automatización de tareas operativas vinculadas al despliegue, escalado y gestión de aplicaciones en contenedores (o microservicios). Si bien Kubernetes se convirtió en el estándar de facto para la gestión de contenedores, muchas compañías también emplean la tecnología para una gama más amplia de casos de uso.

Descripción general de Kubernetes

Los contenedores, unidades ligeras de software que empaquetan código y todas sus dependencias para ejecutarse en cualquier entorno, forman la base de Kubernetes y son de misión crítica para los microservicios modernos, el software nativo de la nube y los flujos de trabajo de DevOps.

Docker fue la primera herramienta de software de código abierto que popularizó la creación, el despliegue y la gestión de aplicaciones en contenedores. Pero Docker carecía de una herramienta de “orquestación” automatizada, lo que hacía que escalar las aplicaciones fuera una tarea compleja y que requería mucho tiempo para los equipos de ciencia de datos. Kubernetes, también conocido como K8s, se creó específicamente para abordar estos desafíos mediante la automatización de la gestión de aplicaciones en contenedores.

A grandes rasgos, la plataforma de orquestación de Kubernetes se ejecuta a través de contenedores con pods (el enlace reside fuera de ibm.com) y nodos. Un pod opera uno o más contenedores Linux y puede ejecutarse en múltiplos para escalar y resistir fallos. Los nodos ejecutan los pods y suelen agruparse en un clúster Kubernetes, abstrayendo los recursos de hardware físicos subyacentes. 

La infraestructura declarativa basada en API de Kubernetes ha ayudado a liberar a DevOps y otros equipos de los procesos impulsados manualmente para que puedan trabajar de manera más independiente y eficiente para lograr sus objetivos. En 2015, Google donó Kubernetes como una tecnología semilla a la Cloud Native Computing Foundation (CNCF), el centro de código abierto y sin proveedores de computación nativa en la nube.

Hoy en día, Kubernetes se emplea ampliamente en producción para gestionar Docker y, esencialmente, cualquier otro tipo de tiempo de ejecución de contenedores. Si bien Docker incluye su propia herramienta de orquestación, llamada a, la mayoría de los desarrolladores eligen la orquestación de contenedores de Kubernetes.

Como sistema de código abierto, los servicios de Kubernetes Service son compatibles con todos los principales proveedores de nube pública, incluidos IBM, Amazon Web Services (AWS), Microsoft Azure y Google. Kubernetes también puede ejecutarse en Bare Metal Servers y Virtual Machines en entornos de nube privada, nube híbrida y perimetral, siempre y cuando el sistema operativo host sea una versión de Linux o Windows.

Seis casos de uso principales de Kubernetes

Presentamos un resumen de los seis principales casos de uso de Kubernetes que revelan cómo está transformando la infraestructura de TI.

1. Despliegue de aplicaciones a gran escala

Los sitios web con mucho tráfico y las aplicaciones de computación en la nube reciben millones de solicitudes de usuarios cada día. Un beneficio clave de usar Kubernetes para el despliegue de aplicaciones en la nube a gran escala es el autoescalado. Este proceso permite que las aplicaciones se ajusten a los cambios de demanda automáticamente, con velocidad, eficiencia y tiempo de inactividad mínimo. Por ejemplo, cuando la demanda fluctúa, Kubernetes permite que las aplicaciones se ejecuten continuamente y respondan a los cambios en los patrones de tráfico web. Esto ayuda a mantener la cantidad correcta de recursos de carga de trabajo, sin aprovisionamiento excesivo o insuficiente.

Kubernetes emplea el autoescalado horizontal de pods (HPA) para llevar a cabo el equilibrio de carga (en cuanto al uso de CPU o métricas personalizadas) escalando el número de réplicas de pods (clones que facilitan la autocorrección) relacionadas con un despliegue específico. Esto mitiga problemas potenciales como aumentos repentinos de tráfico, problemas de hardware o interrupciones de la red.

Nota: HPA no debe confundirse con el autoescalado vertical de pods (VPA) de Kubernetes, que asigna recursos adicionales, como memoria o CPU, a los pods que ya se están ejecutando para la carga de trabajo.

2. Computación de alto rendimiento

Varias industrias, incluido el gobierno, la ciencia, las finanzas y la ingeniería dependen en gran medida de la computación de alto rendimiento (HPC), la tecnología que procesa big data para realizar cálculos complejos. HPC emplea poderosos procesadores a velocidades extremadamente altas para tomar decisiones instantáneas basadas en datos. Los usos reales de la HPC incluyen la automatización del comercio de acciones, la predicción meteorológica, la secuenciación de ADN y la simulación de vuelo de aeronaves.

Las industrias con un uso intensivo de HPC emplean Kubernetes para gestionar la distribución de los cálculos de HPC en entornos híbridos y de multinube. Kubernetes también puede servir como una herramienta flexible para admitir el procesamiento de trabajos por lotes involucrado en cargas de trabajo informáticas de alto rendimiento, lo que mejora la portabilidad de datos y códigos.

3. IA y machine learning

La construcción e implementación de sistemas de inteligencia artificial (IA) y machine learning (ML) requiere enormes volúmenes de datos y procesos complejos como la computación de alto rendimiento y el análisis de big data. El despliegue del aprendizaje automático en Kubernetes facilita a las organizaciones la automatización de la gestión y el escalado de los ciclos de vida de ML, además de reducir la necesidad de intervención manual.

Por ejemplo, la plataforma de orquestación en contenedores de Kubernetes puede automatizar partes de los flujos de trabajo de mantenimiento predictivo de IA y ML, incluidas las comprobaciones de estado y la planeación de recursos. Por su parte, Kubernetes puede escalar o reducir las cargas de trabajo de ML para satisfacer las demandas de los usuarios, ajustar el uso de recursos y controlar los costos.

Machine learning se basa en grandes modelos de lenguaje para realizar procesamiento de lenguaje natural (PNL) de alto nivel como clasificación de texto, análisis de sentimiento y traducción automática, y Kubernetes ayuda a acelerar el despliegue de modelos de lenguaje grande para automatizar el proceso de PNL. A medida que más organizaciones recurren a las capacidades de la IA generativa, están utilizando Kubernetes para ejecutar y escalar modelos de IA generativa, proporcionando alta disponibilidad y tolerancia a fallas.

En general, Kubernetes proporciona la flexibilidad, la portabilidad y la escalabilidad necesarias para capacitar, probar, programar y desplegar modelos de ML e IA generativa.

4. Gestión de microservicios

Los microservicios (o arquitectura de microservicios) ofrecen un enfoque moderno de arquitectura nativa de la nube en el que cada aplicación se compone de numerosos componentes o servicios más pequeños, poco conectados y desplegables de forma independiente. Por ejemplo, los grandes sitios web de comercio electrónico minorista constan de muchos microservicios. Por lo general, incluyen un servicio de pedidos, un servicio de pago, un servicio de envío y un servicio de atención al cliente. Cada servicio tiene su propia API REST, que los demás servicios emplean para comunicarse con él.

Kubernetes se diseñó para manejar la complejidad involucrada en la administración de todos los componentes independientes que se ejecutan simultáneamente dentro de la arquitectura de microservicios. Por ejemplo, la función de alta disponibilidad (HA) integrada de Kubernetes garantiza operaciones continuas incluso en caso de fallo. Así mismo, la característica de autocorrección de Kubernetes se activa si una aplicación en contenedor o un componente de la aplicación deja de funcionar. La característica de autocorrección puede volver a desplegar instantáneamente la aplicación o el componente de la aplicación, coincidiendo con el estado deseado, lo que ayuda a mantener el tiempo de actividad y la confiabilidad.

5. Despliegues híbridos y multinube

Kubernetes está diseñado para usarse en cualquier lugar, lo que facilita a las organizaciones migrar aplicaciones de entornos on-premises a entornos de nube híbrida y multinube. Kubernetes estandariza la migración al proporcionar a los desarrolladores de software comandos integrados para un despliegue efectivo de aplicaciones. Kubernetes también puede implementar cambios en las aplicaciones y escalarlos hacia arriba y hacia abajo dependiendo de los requerimientos del entorno.

Kubernetes ofrece portabilidad en entornos on premises y en la nube, ya que abstrae los detalles de la infraestructura de las aplicaciones. Esto elimina la necesidad de dependencias de aplicaciones específicas de la plataforma y facilita el movimiento de aplicaciones entre diferentes proveedores de nube o centros de datos con un esfuerzo mínimo.

6. DevOps empresarial

Para los equipos de DevOps empresariales, poder actualizar y desplegar aplicaciones rápidamente es crítico para el éxito del negocio. Kubernetes proporciona a los equipos desarrollo y mantenimiento de sistemas de software para mejorar la agilidad general. Además, la interfaz API de Kubernetes permite a los desarrolladores de software y otros stakeholders de DevOps ver, acceder, desplegar, actualizar y optimizar fácilmente sus ecosistemas de contenedores.

CI/CD, que significa integración continua (CI) y entrega continua (CD),se convirtió en un aspecto clave del desarrollo de software. En DevOps, CI/CD agiliza la programación, las pruebas y el despliegue de aplicaciones al brindar a los equipos un único repositorio para almacenar herramientas de trabajo y automatización a fin de combinar y probar el código de manera uniforme y garantizar que funcione. Kubernetes desempeña un papel importante en las canalizaciones de CI/CD nativas de la nube al automatizar el despliegue de contenedores en entornos de infraestructura de nube y garantizar un uso eficiente de los recursos.

El futuro de Kubernetes

Kubernetes desempeña un papel crítico en la infraestructura de TI, como se puede ver en sus numerosos casos de uso basados en el valor, que van más allá de la orquestación de contenedores. Es por eso que muchas compañías continúan implementando Kubernetes. En 2021, la Cloud Native Survey realizada por la CNCF, mostró que el uso de Kubernetes alcanzó su punto más alto, con el 96% de las organizaciones empleando o evaluando la plataforma en contenedores. Según el mismo estudio, el uso de Kubernetes sigue aumentando en regiones tecnológicas emergentes, como África, donde el 73% de los encuestados emplean Kubernetes en producción.

IBM y Kubernetes

Kubernetes programa y automatiza tareas integrales para la gestión de arquitecturas basadas en contenedores, incluido el despliegue de contenedores, las actualizaciones, el descubrimiento de servicios, el aprovisionamiento de almacenamiento, el equilibrio de carga, la supervisión del estado y mucho más. En IBM ayudamos a nuestros clientes a modernizar sus aplicaciones y optimizar su infraestructura de TI con Kubernetes y otras soluciones nativas de la nube.

Despliegue clústeres seguros y de alta disponibilidad en una experiencia nativa de Kubernetes con IBM Cloud Kubernetes Service.

Contenga y despliegue clústeres de Kubernetes para plataformas en contenedores empleando Red Hat OpenShift on IBM Cloud.

Autor

Stephanie Susnjara

Staff Writer

IBM Think