¿Qué es Kubernetes?

Por IBM Services

Coordine y despliegue aplicaciones en contenedores en cualquier entorno

Kubernetes es una solución de código abierto que automatiza el despliegue, el escalado y la supervisión de aplicaciones en contenedores.

Un contenedor es software que está separado de su infraestructura subyacente. Con los contenedores, todo está virtualizado a nivel del sistema operativo. Esto significa que independientemente de dónde se ejecute una aplicación, funcionará del mismo modo.

La mayoría de los contenedores actuales se ejecutan en una plataforma Kubernetes. De acuerdo con la organización: "Kubernetes proporciona un entorno de gestión centrado en contenedores, que coordina la infraestructura de computación, redes y almacenamiento en nombre de las cargas de trabajo de usuario… además de habilitar la portabilidad entre los proveedores de infraestructura." ⁽¹⁾

Aspectos básicos de Kubernetes

Kubernetes tiene su origen en Google, donde un equipo de ingenieros desarrolló un sistema de gestión de clústeres llamado Borg. En 2014, la compañía introdujo una versión de código abierto de Borg llamada Kubernetes.⁽²⁾

La primera versión de Kubernetes que se lanzó en 2015 ofrecía la orquestación de contenedores para aplicaciones distribuidas. Junto con este lanzamiento, Google se asoció con Linux Foundation para formar la Cloud Native Computing Foundation y ofreció Kubernetes como un vivero tecnológico. ⁽³⁾

Desde su aparición, Kubernetes es cada vez más popular gracias a la forma en la que ayuda a los equipos de desarrollo a lograr la portabilidad en sistemas basados en la tecnología de contenedores. Con más de 1.400 colaboradores, la comunidad de código abierto de Kubernetes es ahora una de las más grandes del mundo.

Docker es la tecnología de contenedores más usada, pero Kubernetes también admite otras.  Se utilizan plantillas de Docker definidas para empaquetar software en unidades estandarizadas que incluyen todos los elementos para ejecutar una aplicación.

Kubernetes coordina el entorno de contenedores, además de optimizar el uso y el espacio de los servidores. Gestiona dónde y cómo se despliegan los contenedores utilizando características como la planificación inteligente, el equilibrio de carga, la escalabilidad, la gestión del almacenamiento y la ejecución por lotes.

Algunos conceptos clave:

  • La unidad de gestión básica de Kubernetes es un pod o grupo de contenedores. Los contenedores en un pod comparten el mismo almacenamiento, recursos y dirección IP.
  • Un clúster Kubernetes consta de nodos maestro y de trabajador. (Un nodo es el host o el servidor en el que se ejecuta un contenedor; puede ser una máquina virtual o física).
  • Un nodo maestro gestiona la carga de trabajo del contenedor y dirige las comunicaciones en el sistema. Incluye un planificador que controla el rendimiento, la capacidad y la disponibilidad.
  • Los nodos de trabajador ejecutan los pods bajo la dirección del nodo maestro.
  • Los archivos de configuración permiten a los equipos especificar parámetros operativos, como el número de pods que se pueden ejecutar a la vez. Con Kubernetes, es posible gestionar los recursos en todo un centro de datos como si fuera un único sistema. 

Kubernetes frente a Docker: No se trata de elegir uno u otro

¿Por qué Kubernetes es importante?

Las aplicaciones de grandes empresas pueden incluir un número masivo de contenedores. Este tipo de arquitectura puede ganar complejidad rápidamente.

Las organizaciones tienen que ser capaces de coordinar todas las partes móviles en un entorno de contenedores, preferiblemente desde un único punto estratégico. Muchos eligen Kubernetes como solución.

Kubernetes gestiona el ecosistema y ajusta la computación y el almacenamiento para garantizar la disponibilidad y el despliegue eficiente de los contenedores. Además, el equipo de desarrollo puede ver dónde está todo en cualquier momento.

Kubernetes ayuda a las organizaciones a simplificar el despliegue de nuevas aplicaciones, agilizar la gestión de contenedores y recursos, reducir los riesgos de actualización y evitar paradas. Puede escalar componentes de aplicación, ya sea individualmente o como un grupo, además de dar soporte a aplicaciones nativas en cloud portátiles. 

En su blog de IBM, Matt Johnsen describe algunas de las ventajas:

  • Ahorro de costes: los clústeres de Kubernetes son conocidos por presentar un bajo mantenimiento. Los equipos no tienen que escribir sus propios scripts de automatización de contenedores. Pueden aprovechar una infraestructura compartida. Pueden reducir los costes de hardware mediante un uso más efectivo del hardware actual.
  • Comercialización más rápida: Kubernetes es perfecto para DevOps. Una buena gestión de contenedores significa que mientras se ejecute el software, el despliegue casi siempre será fluido.
  • Flexibilidad de TI: En la empresa moderna, el software se ejecuta en cualquier número de infraestructuras privadas y compartidas. El uso de una solución de gestión de contenedores significa que los equipos no tienen que sacrificar el rendimiento ni realizar ajustes importantes para mover aplicaciones. Pueden ejecutar software dondequiera que la empresa lo necesite.

Otra ventaja de Kubernetes es el escalado horizontal, que ayuda a abordar las cambiantes demandas de rendimiento.

"Si ya está aprovechando Docker y los contenedores con sus aplicaciones, migrarlas a Kubernetes realmente puede ayudarle a solucionar la sobrecarga operativa que casi todas las aplicaciones van a sufrir al migrarse a escala", afirma Sai Vennam, desarrollador de IBM.

Kubernetes como servicio

Las organizaciones pueden utilizar un sistema Kubernetes interno para coordinar sus despliegues de contenedores. De forma alternativa, un proveedor de servicios puede ofrecer una infraestructura como servicio o una plataforma basada en Kubernetes.

Los clientes disfrutan de las mismas funcionalidades, pero con menos complejidad y sobrecarga. De acuerdo con Jason McGee, Vicepresidente y académico de IBM, IBM Cloud:

"La mecánica de instalar, conectar y configurar una recopilación de recursos en un clúster de contenedores en funcionamiento no es fácil. Requiere horas de trabajo y conocimientos. ¿Qué pasa si necesita añadir o eliminar capacidad del entorno de contenedores?¿Cómo se recupera cuando se produce un error? Los contenedores y Kubernetes también están cambiando a gran velocidad.

"Es difícil mantenerse al día si va por su cuenta. Una de las ventajas de un servicio gestionado es que usted no tiene que encargarse de esto, y así puede centrarse en sus aplicaciones." ⁽⁴⁾

Un proveedor de servicios gestionado como IBM maneja los recursos de computación, redes y almacenamiento en cada clúster de nodos. El servicio de IBM ofrece planificación inteligente, gestión simplificada de clústeres, políticas de aislamiento y seguridad de contenedores y actualizaciones de infraestructura.

Los clientes de IBM también pueden utilizar el servicio Kubernetes en una infraestructura cloud bare metal. Esto aporta agilidad y velocidad a las aplicaciones que requieren un rendimiento informático muy alto, como las cargas de trabajo de inteligencia artificial o machine learning.

"Los desarrolladores ahora pueden elegir configuraciones de máquina de bare metal adaptadas a sus necesidades -ya sea el aislamiento, una mayor capacidad de procesamiento o más almacenamiento de disco local- mientras aprovechan las ventajas de los contenedores, como mover datos fácilmente entre sistemas o permitir que varios miembros del equipo trabajen en varias partes de una aplicación de forma simultánea", afirma McGee.

The Weather Company escala los servicios web para reforzar la seguridad de las personas

 

Recursos de Kubernetes

¿Qué son los contenedores y por qué los necesita?

Aprenda qué son los contenedores y por qué los utilizan las organizaciones

La adopción de Kubernetes y la importancia de la gestión del rendimiento de las aplicaciones

Descubra por qué un entorno cloud basado en Kubernetes puede ser transformador para un gran número de empresas

Kubernetes frente a Docker: ¿Por qué no ambos?

Conozca las diferencias entre Kubernetes y Docker

IBM aporta la facilidad de los contenedores a cargas de trabajo complejas con Kubernetes gestionado en bare metal

Explore las ventajas de ejecutar contenedores Kubernetes como servicio gestionado en una infraestructura cloud bare metal

Aprenda de Watson: Cómo los contenedores escalan las cargas de trabajo de IA

Descubra por qué las cargas de trabajo de IA son diferentes y mejores en el cloud

Supervisión de IBM Cloud Service con Outlyer

Conozca las ventajas de utilizar la supervisión de autoservicio de Outlyer en IBM Cloud Kubernetes Service

Servicios destacados

IBM Kubernetes Cloud Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2. https://blog.risingstack.com/the-history-of-kubernetes/

3. https://en.wikipedia.org/wiki/Kubernetes

4. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/