¿Qué es un clúster de Kubernetes?

Publicado el 18 de marzo de 2020
Diseño de varios ordenadores portátiles abiertos dispuestos en diagonal sobre un fondo naranja, con espaciado y sombras repetidos
By Sai Vennam

Clústeres de Kubernetes definidos

Un clúster de Kubernetes es un conjunto de nodos informáticos (máquinas virtuales o físicas) que ejecutan aplicaciones en contenedores gestionadas con la plataforma de orquestación de contenedores de Kubernetes.

La nube ofrece numerosos beneficios a la empresa, como flexibilidad, agilidad, portabilidad y control de costes. Sin embargo, con estos beneficios viene la complejidad de gestionar la nube y entregar las aplicaciones que en ella residen. Kubernetes es una plataforma de orquestación de contenedores que puede ayudar a aliviar esas complejidades.

Los clústeres proporcionan la base arquitectónica de Kubernetes. Piense en los clústeres como bloques de construcción que permiten una entrega rápida y controlada de aplicaciones en la nube. Un clúster de Kubernetes es un conjunto de máquinas conectadas que funcionan juntas como una sola unidad. Se componen de nodos de trabajo, que representan un host de procesamiento en el que se pueden implementar, ejecutar y gestionar aplicaciones en contenedores. Los nodos trabajadores son gestionados por nodos maestros, que programan contenedores en los nodos trabajadores eligiendo dónde implementarlos en función de la capacidad disponible y la configuración definida por el usuario.

Los scripts especifican la configuración del contenedor y qué recursos se necesitan para ejecutar la aplicación, como almacenamiento persistente, servicios, etc. En Kubernetes, los pods son las unidades desplegables más pequeñas de un clúster y agrupan contenedores que deben tratarse como una sola unidad. Kubernetes crea pods para alojar instancias de aplicación. Los pods contienen uno o más contenedores de aplicaciones y comparten recursos, como el almacenamiento o la información de red.

La evolución hacia la orquestación de Kubernetes

La llegada de los contenedores ayudó a simplificar la computación en la nube. Los contenedores empaquetan el código y todas sus dependencias, lo que permite que una pila de software se ejecute independientemente del entorno en el que se encuentre. Aunque los contenedores ofrecen paquetes discretos, también complican las cuestiones de gestión. El desafío consistía en encontrar la manera de hacer que estos paquetes eficientes y ligeros funcionaran juntos. La orquestación fue la siguiente evolución en la simplificación de entornos multinube.

Para obtener más información sobre la contenerización, consulte nuestro vídeo "Explicación de la contenerización".

Para obtener más información sobre la orquestación de contenedores, consulte nuestro vídeo "Explicación de la orquestación de contenedores" (enlace externo a ibm.com).

Kubernetes proporciona una plataforma de código abierto para gestionar cargas de trabajo en contenedores y microservicios (enlace externo a ibm.com). Esto permite a los desarrolladores superar las diferencias entre los proveedores de servicios en la nube aplicando estándares y coherencia en todos los ámbitos para las aplicaciones basadas en contenedores. La plataforma se centra en los contenedores y organiza el almacenamiento, las redes y la computación al servicio de las cargas de trabajo de los usuarios.

Con Kubernetes, los usuarios pueden centrarse en la funcionalidad que desean de sus aplicaciones en la nube en lugar de crear capacidades específicas de la plataforma. La arquitectura Kubernetes subyacente es lo que impulsa esa capacidad.

Para ver más de cerca las capacidades de orquestación de contenedores de Kubernetes, consulte "Kubernetes vs. Docker: no es una cuestión de uno u otro":

 

Arquitectura de clúster de Kubernetes

Los clústeres de Kubernetes son los componentes básicos de Kubernetes y proporcionan la base arquitectónica de la plataforma. La modularidad de esta estructura de bloques permite disponibilidad, escalabilidad y facilidad de implementación.

Las cargas de trabajo actuales exigen una alta disponibilidad tanto a nivel de aplicación como de infraestructura. Al crear una capa de abstracción entre las aplicaciones y su infraestructura subyacente, Kubernetes distribuye la carga de trabajo de manera eficiente entre los recursos disponibles. Kubernetes se protege contra los fallos de las aplicaciones con comprobaciones constantes del estado de los nodos y contenedores. Si un contenedor deja de funcionar, la autorreparación y la replicación resuelven el error. Los equilibradores de carga integrados distribuyen la carga de trabajo entre los recursos abiertos para disminuir el impacto de los picos de tráfico o las interrupciones.

Este mismo uso eficiente de los recursos juega un papel en la escalabilidad. La adición y eliminación de nuevos servidores se simplifica, lo que permite un escalado horizontal sin fisuras. El escalado automatizado aumenta el número de contenedores en funcionamiento según métricas especificadas. Los controles de replicación terminan el exceso de pods si hay demasiados en ejecución o inician los pods si hay muy pocos.

Para profundizar en la arquitectura de Kubernetes, consulte el siguiente vídeo: "Explicación de Kubernetes":

Vea el vídeo

La velocidad es esencial para los desarrolladores. Kubernetes está diseñado para adaptarse a la rápida creación, prueba y lanzamiento de software. Las versiones nuevas o actualizadas se propagan mediante despliegue automatizado. También funciona bien con versiones canary, permitiendo que las implementaciones de nuevas versiones se ejecuten en paralelo a las versiones anteriores, verifiquen la dependabilidad de la nueva versión antes de pasarla a producción completa.

Monitorización de clústeres de Kubernetes a través de Prometheus

A medida que las aplicaciones contenedoras se vuelven más granulares e independientes, la monitorización se convierte en un desafío. Ese desafío se extiende a la monitorización de clústeres de Kubernetes. La monitorización tradicional indica si un programa, servicio o herramienta está activo (en ejecución) o inactivo (no se está ejecutando). Para los microservicios, el enfoque de arriba/abajo es demasiado estricto, ya que un microservicio de una sola función podría estar abajo sin causar un impacto en el negocio. Las herramientas de monitorización modernas deben ofrecer distinciones más refinadas e integrarse mejor con diversas plataformas y aplicaciones mutables.

Prometheus —una herramienta de registro, monitorización y alertas de código abierto— está diseñada para la portabilidad y la mutabilidad de los entornos multinube y supera las limitaciones de monitorización tradicionales. Deriva métricas exhaustivas de los clústeres, los nodos y las implementaciones de Kubernetes. Prometheus utiliza pares clave-valor, que funcionan bien con la forma en que Kubernetes organiza los metadatos. Prometheus raspa y descubre automáticamente los objetivos de datos con regularidad, lo que lo convierte en una buena opción para cargas de trabajo efímeras.

IBM DevOps

¿Qué es DevOps?

Andrea Crawford explica qué es DevOps, su valor y cómo las prácticas y herramientas de DevOps ayudan a desarrollar las aplicaciones a lo largo de todo el proceso de entrega de software, desde la ideación hasta la producción. El plan de estudios, dirigido por los principales líderes de opinión de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Autor

Sai Vennam

Technical Offering Manager

Soluciones relacionadas
IBM Instana Observability

Aproveche la potencia de la IA y la automatización para resolver problemas de manera proactiva en toda la pila de aplicaciones.

Explore IBM Instana Observability
Soluciones DevOps

Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.

Explore las soluciones DevOps
Servicios de consultoría en la nube

Acelere la agilidad y el crecimiento empresarial: modernice continuamente sus aplicaciones en cualquier plataforma utilizando nuestros servicios de consultoría en la nube.

Explore los servicios de consultoría en la nube
Dé el siguiente paso

Desde la detección proactiva de problemas con IBM® Instana hasta los conocimientos en tiempo real en toda su pila, puede mantener las aplicaciones nativas de la nube funcionando de forma fiable.

  1. Descubra IBM Instana
  2. Explore las soluciones DevOps