¿Qué es Kubernetes?

Kubernetes, a veces abreviado a «K8s», coordina las aplicaciones contenedorizadas para que se ejecuten en un clúster de hosts. El sistema Kubernetes automatiza la implementación y la gestión de aplicaciones nativas de nube usando una infraestructura local o plataformas de nube pública. Distribuye las cargas de trabajo de las aplicaciones en un clúster de Kubernetes y automatiza las necesidades dinámicas de red de contenedores. Kubernetes también asigna almacenamiento y volúmenes persistentes a los contenedores en ejecución, proporciona escalabilidad automática y trabaja continuamente para mantener el estado deseado de las aplicaciones, proporcionando así flexibilidad.

Descubra cómo las empresas usan Kubernetes para crear, implementar y ejecutar aplicaciones modernas según las necesidades.

«Kubernetes en 5 minutos»

«La situación de Kubernetes 2022»

Características de Kubernetes

Kubernetes tiene muchas características que ayudan a coordinar los contenedores en múltiples hosts, automatizar la gestión de los clústeres de Kubernetes y maximizar el uso de recursos mediante una mejor utilización de la infraestructura. Estas son algunas de las características importantes:

  • Escalabilidad automática. Amplíe o reduzca automáticamente las aplicaciones contenedorizadas y los recursos asociados en función de su uso.
  • Gestión del ciclo de vida. Automatice las implementaciones y las actualizaciones gracias a contar con la capacidad de:
    • Restaurar versiones anteriores.
    • Pausar y retomar una implementación.
  • Modelo declarativo. Declare el estado deseado y Kubernetes trabajará en segundo plano para mantener ese estado y recuperarse de cualquier fallo.
  • Flexibilidad y recuperación automática. Las prestaciones automáticas de asignación, reinicio, replicación y escalabilidad proporcionan la recuperación automática de las aplicaciones.
  • Almacenamiento persistente. Disfrute de la capacidad de montar y añadir almacenamiento de forma dinámica.
  • Balanceo de carga. Kubernetes admite diversas opciones de balanceo de carga internas y externas para satisfacer diversas necesidades.
  • Compatibilidad con DevSecOps. DevSecOps es un enfoque de seguridad avanzado que simplifica y automatiza las operaciones de contenedores en distintas nubes, integra la seguridad en todo el ciclo de vida de los contenedores y capacita a los equipos para que distribuyan software seguro y de alta calidad más rápidamente. Al combinar Kubernetes y las prácticas de DevSecOps, la productividad de los desarrolladores mejora.

La arquitectura de Kubernetes y su funcionamiento

Los contenedores encapsulan las aplicaciones en un formato que facilita su traslado e implementación. La arquitectura de Kubernetes está diseñada para ejecutar aplicaciones contenedorizadas. Un clúster de Kubernetes consta de, por lo menos, un plano de control y un nodo subordinado (este último suele ser un servidor físico o virtual). El plano de control tiene dos responsabilidades principales: expone la API de Kubernetes a través del servidor de API y gestiona los nodos que conforman el clúster. El plano de control toma decisiones sobre la gestión de clústeres y detecta y responde a los eventos de los clústeres.

La unidad de ejecución mínima de una aplicación que se ejecuta en Kubernetes es el pod de Kubernetes, que consta de uno o más contenedores. Los pods de Kubernetes se ejecutan en nodos subordinados.

Terminología adicional de Kubernetes

Es importante saber los nombres y las funciones de los principales componentes de Kubernetes que forman parte del plano de control o que se ejecutan en los nodos de Kubernetes.

Kubernetes Terminology

El plano de control tiene cuatro componentes principales que se utilizan para controlar las comunicaciones, gestionar los nodos y hacer un seguimiento del estado de un clúster de Kubernetes.

  • Kube-apiserver. Como su nombre indica, kube-apiserver expone la API de Kubernetes.
  • etcd. Un almacén de valores clave donde se guardan todos los datos relacionados con el clúster de Kubernetes.
  • Kube-scheduler. Busca nuevos pods de Kubernetes sin nodos asignados y los asigna a un nodo para ejecutarlos en función de los recursos, las políticas y las especificaciones de afinidad.
  • Kube-controller-manager. Todas las funciones del controlador del plano de control se compilan en un único archivo binario: kube-controller-manager.

Un nodo de Kubernetes tiene tres componentes principales:

  • Kubelet. Un agente que garantiza que los contenedores necesarios se estén ejecutando en un pod de Kubernetes.
  • Kube-proxy. Un proxy de red que se ejecuta en cada nodo de un clúster para mantener las reglas de red y permitir la comunicación.
  • Entorno de ejecución de contenedores. El software responsable de ejecutar contenedores. Kubernetes admite todo entorno de ejecución que se adhiera a la interfaz del entorno de ejecución de contenedores (CRI) de Kubernetes.

Estos son algunos términos más que se deben tener en cuenta:

  • Servicio de Kubernetes. Un servicio de Kubernetes es una desvinculación lógica para un grupo de pods de Kubernetes que comparten una misma función. A los servicios de Kubernetes se les asignan direcciones únicas que permanecen inmutables aunque las instancias de los pods vayan y vengan.
  • Controladora. Las controladoras garantizan que el estado de ejecución actual del clúster de Kubernetes sea lo más parecido posible al estado deseado.
  • Operador. Los operadores de Kubernetes le permiten encapsular el conocimiento específico de cada dominio para una aplicación similar a un procedimiento. Al automatizar las tareas específicas de cada aplicación, los operadores le permiten implementar y gestionar más fácilmente las aplicaciones en Kubernetes.

Ventajas de Kubernetes

La plataforma de Kubernetes se ha popularizado gracias a que ofrece una serie de ventajas importantes:

  • Portabilidad. Es posible trasladar contenedores a una amplia gama de entornos, desde entornos virtuales hasta entornos sin sistema operativo. Kubernetes es compatible con las principales nubes públicas, por lo que puede ejecutar aplicaciones contenedorizadas en Kubernetes desde muchos entornos diferentes.
  • Integración y extensibilidad. Kubernetes se adapta a las soluciones en las que usted ya confía, incluidos los servicios de registro, supervisión y creación de alertas. La comunidad de Kubernetes está desarrollando una amplia variedad de soluciones de código abierto complementarias a Kubernetes, con miras a crear un ecosistema rico y de rápido crecimiento.
  • Rentabilidad. Todas las características inherentes de Kubernetes, como la optimización de recursos, la escalabilidad automatizada y la flexibilidad para ejecutar las cargas de trabajo donde proporcionan el mayor valor, significan que el gasto de TI está en sus manos.
  • Escalabilidad. Las aplicaciones nativas de nube disponen de escalabilidad horizontal. Kubernetes utiliza la escalabilidad automática, que consiste en crear instancias de contenedores adicionales para adaptarse automáticamente en respuesta a la demanda.
  • Basado en API. La estructura fundamental de Kubernetes es su API de REST. Todo lo que hay en el entorno de Kubernetes se puede controlar mediante programación.
  • CI/CD simplificadas. La integración y distribución continuas (CI/CD) es una práctica de DevOps que automatiza la creación, las pruebas y la implementación de aplicaciones en entornos de producción. Las empresas están integrando Kubernetes y CI/CD para crear flujos de CI/CD escalables que se adaptan dinámicamente a la carga.

¿Qué es la coordinación de contenedores?

La coordinación de contenedores automatiza la mayoría de las tareas necesarias a la hora de ejecutar cargas de trabajo y servicios contenedorizados, que incluye las operaciones esenciales para el ciclo de vida de los contenedores de Kubernetes: aprovisionamiento, implementación, escalabilidad, red y balanceo de carga.

Kubernetes frente a Docker

Docker es una plataforma de software que se utiliza para crear aplicaciones contenedorizadas. Kubernetes automatiza el proceso de ejecución de aplicaciones contenedorizadas nativas de nube creadas con Docker u otras herramientas. Las empresas suelen utilizar Docker y Kubernetes juntos.

Productos y soluciones relacionados

Tanzu Kubernetes Grid

Disfrute de gestión de Kubernetes preparada para la empresa.

Tanzu Community Edition

Ponga en marcha VMware Tanzu de forma gratuita en cuestión de minutos en la estación de trabajo local o en la nube.

Tanzu Application Platform

Cree, implemente y gestione aplicaciones en una plataforma de Kubernetes.