¿Qué es Kubernetes?

Por IBM Services

Orquestación e implementación de aplicaciones contenedorizadas en cualquier entorno

Kubernetes es una solución de código abierto que automatiza la implementación, la escalación y la supervisión de aplicaciones contenedorizadas.

Un contenedor es un software que está separado de su infraestructura subyacente. Con los contenedores, todo está virtualizado a nivel del sistema operativo. Esto significa que no importa dónde se ejecute una aplicación, funcionará de la misma manera.

La mayoría de los contenedores de hoy se ejecutan en una plataforma Kubernetes. De acuerdo con la organización: “Kubernetes proporciona un entorno de gestión centrado en contenedor. Orquesta la infraestructura de computación, de redes y de almacenamiento en nombre de las cargas de trabajo de los usuarios... y permite la portabilidad entre los proveedores de infraestructura”. ⁽¹⁾

Principios básicos de Kubernetes

Kubernetes comenzó en Google, donde un equipo de ingenieros desarrolló un sistema de gestión de agrupaciones llamado Borg. En el 2014, la compañía introdujo una versión de código abierto de Borg llamada Kubernetes.⁽²⁾

La primera versión de Kubernetes fue lanzada en 2015 para proporcionar la orquestación de contenedores para aplicaciones distribuidas. Además de esta publicación, Google unió fuerzas con Linux Foundation para formar la Cloud Native Computing Foundation (CNCF), y propuso Kubernetes como la tecnología básica.⁽³⁾

Desde su debut, Kubernetes se ha vuelto cada vez más popular debido a la forma en la que ayuda al desarrollo a lograr portabilidad a través de sistemas basados en la tecnología de contenedores. Con más de 1.400 contribuyentes, 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 da soporte a otros. Docker definió modelos para empaquetar software en unidades estandarizadas que incluían todos los elementos necesarios para ejecutar una aplicación.

Kubernetes orquesta el entorno de contenedor, al tiempo que optimiza el uso y el espacio del servidor. Gestiona dónde y cómo se implementan los contenedores utilizando características como planificación inteligente, equilibrio de carga, escalabilidad, gestión de almacenamiento y ejecución por lotes.

Algunos conceptos importantes:

  • La unidad de gestión básica de Kubernetes es un pod o un 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 trabajo. (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 a través del sistema. Incluye un planificador que controla el rendimiento, la capacidad y la disponibilidad.
  • Los nodos de trabajo 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. Usando Kubernetes, es posible gestionar los recursos en un centro de datos completo como si fuera un solo sistema. 

Kubernetes en comparación con Docker: No es una cuestión de elección

¿Por qué Kubernetes es importante?

Las grandes aplicaciones empresariales pueden incluir un número masivo de contenedores. Este tipo de arquitectura puede volverse rápidamente complejo.

Las organizaciones tienen que ser capaces de orquestar todas las partes móviles en un entorno de contenedor, preferiblemente desde un punto de vista único. Muchos eligen a Kubernetes como la solución.

Kubernetes administra el ecosistema y ajusta la computación y el almacenamiento para asegurar que los contenedores estén disponibles y se implementen eficientemente. En el momento, el equipo de desarrollo siempre sabe dónde están estos contenedores.

Los Kubernetes pueden ayudar a las organizaciones a simplificar la implementación de nuevas aplicaciones, agilizar la gestión de los contenedores y los recursos, reducir los riesgos de actualización y evitar el tiempo de inactividad. Puede escalar componentes de aplicación, ya sea individualmente o como un grupo, y dar soporte a aplicaciones nativas de nube portables. 

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

  • Ahorros: Los clústeres de Kubernetes son conocidos por ser de bajo mantenimiento. Los equipos no tienen que escribir sus propios scripts de automatización de contenedores. Pueden aprovechar una infraestructura compartida. Pueden reducir los costos de hardware haciendo un uso más efectivo del hardware actual.
  • Lanzamiento al mercado más rápido: Kubernetes es perfecto para DevOps. Una buena administración de contenedores significa que, mientras el software se esté ejecutando, la implementación casi siempre será transparente.
  • Flexibilidad de TI: En los negocios modernos, el software se ejecuta en una serie 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 o realizar ajustes importantes para mover aplicaciones. Pueden ejecutar software dondequiera que la empresa lo necesite.

Otra ventaja de Kubernetes es la escalación horizontal, que puede ayudar a hacer frente a las cambiantes demandas de rendimiento.

"Si ya aprovecha Docker y los contenedores para sus aplicaciones, moverlos a Kubernetes lo ayudará a administrar algunos de los costos operativos inherentes a casi todas las escalas de aplicaciones", dijo Sai Vennam, IBM Developer Advocate.

Kubernetes como servicio

Las organizaciones pueden utilizar un sistema Kubernetes interno para orquestar sus implementaciones de contenedor. Alternativamente, un proveedor de servicios puede ofrecer una plataforma o una infraestructura basada en Kubernetes como un servicio.

Los clientes se benefician de las mismas prestaciones, pero con menos complejidad y sobrecarga. De acuerdo con Jason McGee, VP e IBM Fellow, IBM Cloud:

"La mecánica de instalar, conectar y configurar una colección de recursos en un clúster de contenedores en funcionamiento no es fácil. Se necesita trabajo y conocimiento. ¿Qué pasa si necesita añadir o eliminar capacidad del entorno de contenedor? ¿Cómo se recuperan cuando se producen anomalías? Los contenedores y los Kubernetes también están cambiando a una tasa muy rápida.

"Es difícil mantenerse al día si lo hace usted mismo. Una de las ventajas de un servicio gestionado es que todo esto se hace por usted, y sólo puede centrarse en sus aplicaciones." ⁽⁴⁾

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

Los clientes de IBM también pueden utilizar el servicio Kubernetes en una infraestructura de nube bare metal. Esto aporta agilidad y velocidad a las aplicaciones que requieren un rendimiento de cómputo muy alto, como machine learning o las cargas de trabajo de IA.

"Los desarrolladores ahora pueden elegir configuraciones de máquinas bare metal que satisfagan sus necesidades - ya sea el aislamiento, la capacidad de procesamiento incrementada o el almacenamiento de disco local grande - mientras aprovechan de los beneficios de los contenedores, como mover datos fácilmente a través de sistemas o permitir que varios miembros del equipo trabajen en varias partes de una aplicación simultáneamente", dijo McGee.

The Weather Company escala los servicios web para ayudar a mantener a la gente segura

 

Recursos de Kubernetes

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

Obtenga información sobre qué contenedores son y por qué las organizaciones los utilizan

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

Descubra por qué un entorno de nube basado en Kubernetes puede ser transformador en un gran número de negocios

Kubernetes vs. Docker: ¿Por qué no?

Obtenga información sobre las diferencias entre Kubernetes y Docker

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

Conozca las ventajas de ejecutar contenedores Kubernetes como un servicio gestionado en una infraestructura de nube bare metal.

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

Descubra por qué las cargas de trabajo de IA son diferentes y mejores en la nube

Supervisión de IBM Cloud Service con Outlyer

Obtenga información acerca de las ventajas de utilizar la supervisión de autoservicio de Outlyer en IBM Cloud Kubernetes Service

Servicio destacado

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/