[go: up one dir, main page]

¿Qué es Kubernetes?

A raíz de la adopción generalizada de los contenedores en las organizaciones, Kubernetes, el software de gestión específico para contenedores, se ha convertido en el estándar de facto para desplegar y utilizar aplicaciones en contenedores. Kubernetes tiene su origen en Google Cloud, ya que lo desarrollamos en Google y lo publicamos como software libre en el 2014. Kubernetes cuenta con el aval de 15 años de ejecución de cargas de trabajo en contenedores de Google y las valiosas aportaciones de la comunidad de código abierto. Kubernetes se basa en Borg, el sistema interno de Google para gestionar clústeres, y facilita todas las tareas relacionadas con el despliegue y la gestión de las aplicaciones. Este software orquesta los contenedores de forma automática, de manera que mejora la fiabilidad y reduce tanto el tiempo como los recursos que se destinan a las operaciones diarias.

Pon a prueba tus conocimientos con un experimento práctico en Google Cloud Skills Boost

Definición de Kubernetes

Kubernetes es un sistema de código abierto que permite desplegar, escalar y gestionar aplicaciones en contenedores en cualquier lugar. Para referirse a él, se usa a veces la abreviatura "K8s", en la que el 8 indica el número de letras que hay entre la "K" y la "s".

Kubernetes automatiza las tareas operativas de la gestión de los contenedores e integra comandos para desplegar aplicaciones, aplicarles cambios, ampliarlas o reducirlas según las necesidades del momento, monitorizarlas y realizar muchas más acciones. En definitiva, hace que te resulte más fácil gestionar las aplicaciones.

Cómo funciona Kubernetes

A medida que las aplicaciones se escalan en varios contenedores y servidores, Kubernetes ayuda a simplificar la gestión. Orquesta los despliegues mediante una API de código abierto, agrupando los contenedores en pods para escalar según la demanda y la disponibilidad de recursos. Kubernetes también automatiza el descubrimiento de servicios, el balanceo de carga y la asignación de recursos, y monitoriza el estado para que los contenedores se reinicien o se repliquen y se autoreparen.

Para los desarrolladores empresariales, aquí tienes un desglose paso a paso de cómo funciona Kubernetes:

  • Define tu aplicación: empieza definiendo el estado deseado de tu aplicación mediante archivos YAML. Estos archivos especifican los contenedores que se van a ejecutar, los recursos que necesitan (CPU, memoria) y cómo se deben exponer a la red.
  • Envía una solicitud a la API de Kubernetes: envías estos archivos YAML a la API de Kubernetes, normalmente mediante la herramienta de línea de comandos kubectl.
  • El programador asigna pods a nodos: el programador de Kubernetes analiza los requisitos de tu aplicación y busca los mejores nodos del clúster para ejecutar tus contenedores (empaquetados como pods).
  • Kubelet lanza contenedores: en cada nodo, un proceso de Kubelet recibe instrucciones del plano de control y lanza los contenedores.
  • Los servicios exponen las aplicaciones: los servicios de Kubernetes proporcionan una dirección IP y un nombre de DNS estables para tu aplicación, lo que permite que otras aplicaciones accedan a ella, incluso cuando se crean, destruyen y reprograman pods.
  • Los controladores garantizan el estado deseado: los controladores de Kubernetes monitorizan continuamente el estado de tu aplicación y toman medidas correctivas si es necesario. Por ejemplo, si un pod falla, el controlador creará automáticamente uno nuevo para sustituirlo.
  • Escalado y actualizaciones: puedes escalar tu aplicación fácilmente actualizando el número de réplicas en la configuración de tu despliegue. Kubernetes creará o eliminará pods automáticamente para ajustarse a la escala deseada. Las actualizaciones continuas te permiten implementar nuevas versiones de tu aplicación sin tiempo de inactividad.

¿Cuáles son las ventajas de Kubernetes?

 Operaciones automáticas

Los comandos integrados de Kubernetes se ocupan de muchas de las tareas tediosas que implica gestionar las aplicaciones. Por eso, puedes automatizar las operaciones rutinarias para que las aplicaciones se ejecuten en todo momento tal y como quieres.

Abstracción de la infraestructura

Cuando instalas Kubernetes, se encarga de la computación, las redes y el almacenamiento que afectan a las cargas de trabajo. Así, los desarrolladores pueden centrarse en las aplicaciones y desentenderse del entorno subyacente.

Monitorización del estado de los servicios

Kubernetes hace continuas comprobaciones del estado de los servicios y, en su caso, reinicia los contenedores que han fallado o se han interrumpido. Además, solo pone los servicios a disposición de los clientes después de confirmar que se están ejecutando.

Uso optimizado de los recursos

Kubernetes optimiza el uso de los recursos al empaquetar contenedores de forma eficiente en los nodos en función de sus requisitos. Esto, a su vez, ayuda a reducir el desperdicio de recursos y los costes de infraestructura.

Gestión de aplicaciones simplificada

Simplifica la gestión de aplicaciones con Kubernetes. Kubernetes ofrece un enfoque uniforme para desplegar, actualizar y gestionar aplicaciones de distinta complejidad.

Mayor portabilidad

Kubernetes es una plataforma de código abierto que se ejecuta de forma coherente en diversos entornos, desde centros de datos on-premise hasta nubes públicas, lo que proporciona flexibilidad y portabilidad a las empresas.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud para analizar el caso concreto de tu empresa con más detalle.

Kubernetes frente a Docker

Kubernetes y Docker se suelen malinterpretar como alternativas mutuamente excluyentes. Sin embargo, son tecnologías complementarias para ejecutar aplicaciones en contenedores. 

Docker te permite incluir todo lo que necesitas para ejecutar tus aplicaciones en un contenedor que puedes almacenar y abrir cuando y donde te haga falta. Ahora bien, en cuanto empiezas a usar esos contenedores, tienes que gestionarlos de algún modo. Ahí entra en escena Kubernetes.

Kubernetes es la palabra griega para designar al "capitán". Al igual que el capitán es el responsable de que la travesía sea plácida y el barco llegue a buen puerto, Kubernetes se encarga de transportar los contenedores y entregarlos sin incidentes en las ubicaciones donde se pueden utilizar.

  • Puedes utilizar Kubernetes con Docker, pero también sin esta plataforma.
  • Docker no es una alternativa a Kubernetes. No tienes que elegir entre uno u otro. Puedes usar Kubernetes con Docker para empaquetar las aplicaciones en contenedores y ejecutarlas a escala.
  • Docker y Kubernetes se diferencian en el papel que cada uno desempeña a la hora de empaquetar aplicaciones en contenedores y ejecutarlas.
  • Docker es un estándar de código abierto del sector para empaquetar y distribuir aplicaciones en contenedores.
  • Kubernetes utiliza Docker para desplegar, gestionar y escalar aplicaciones en contenedores.

Casos prácticos habituales de Kubernetes

Kubernetes permite crear aplicaciones fáciles de gestionar y desplegar en cualquier lugar. Si utilizas el servicio gestionado, tienes a tu disposición toda una variedad de soluciones para satisfacer cualquier necesidad. A continuación se indican algunos de los usos más habituales.

Agilizar el desarrollo

Kubernetes te ayuda a desarrollar aplicaciones nativas de la nube basadas en microservicios y empaquetar en contenedores las aplicaciones que ya tienes. Por lo tanto, puedes usarlo como base para modernizar las aplicaciones y desarrollarlas de forma más rápida.

  • Ejemplo: una empresa de servicios financieros usa Kubernetes para desplegar microservicios en su plataforma de banca online, lo que le permite acelerar los ciclos de desarrollo y mejorar la escalabilidad

Desplegar aplicaciones en cualquier lugar

Kubernetes se ha diseñado de modo que se puede utilizar en cualquier parte. Por eso, puedes ejecutar tus aplicaciones en despliegues en las instalaciones, nubes públicas o entornos híbridos, es decir, allá donde las necesites.

  • Ejemplo: una empresa de comercio electrónico internacional usa Kubernetes para desplegar su aplicación en varios proveedores de servicios en la nube, lo que le permite garantizar la alta disponibilidad y evitar el bloqueo del proveedor

Ejecutar servicios eficientes

Kubernetes ajusta automáticamente los clústeres al tamaño preciso para ejecutar los servicios. Así, las aplicaciones también se adaptan de forma automática a la demanda y se ejecutan de manera eficiente.

  • Ejemplo: un servicio de streaming de contenido multimedia usa Kubernetes para escalar automáticamente su infraestructura de codificación de vídeo en función del número de usuarios que están viendo contenido, lo que optimiza la utilización de los recursos y reduce los costes

Preguntas frecuentes

Consulta estas preguntas frecuentes sobre Kubernetes

Un clúster de Kubernetes está formado por nodos (máquinas virtuales o físicas) que ejecutan aplicaciones en contenedores orquestadas por Kubernetes.

Un pod de Kubernetes, la unidad desplegable más pequeña, alberga uno o varios contenedores, que representan una única instancia de un proceso en ejecución.

Un despliegue de Kubernetes garantiza el estado deseado de la aplicación gestionando las réplicas y las actualizaciones sin interrupciones.

Un servicio de Kubernetes es un objeto de Kubernetes que proporciona una dirección IP y un nombre de DNS estables para tu aplicación, lo que permite que otras aplicaciones accedan a ella.

Puedes escalar tu aplicación actualizando el número de réplicas en la configuración de tu despliegue. Kubernetes creará o eliminará pods automáticamente para ajustarse a la escala deseada.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud