¿Qué es Kubernetes?

Con la amplia adopción de los contenedores en las organizaciones, Kubernetes, el software de administración centrado en contenedores, se convirtió en el estándar para implementar y operar aplicaciones alojadas en contenedores. Google Cloud es la base de Kubernetes, que originalmente se desarrolló en Google y se lanzó como código abierto en 2014. Kubernetes se desarrolló sobre la base de la experiencia de 15 años de ejecución de cargas de trabajo en contenedores de Google y las valiosas contribuciones de la comunidad de código abierto. Inspirado en el sistema de administración de clústeres interno de Google, Borg, Kubernetes facilita todo lo asociado con la implementación y la administración de tu aplicación. Mediante la organización automática de contenedores, Kubernetes mejora la confiabilidad y reduce el tiempo y los recursos asociados a las operaciones diarias.

Pon a prueba tus conocimientos con un lab práctico en Google Skills

Definición de Kubernetes

Kubernetes (a veces abreviado como K8s; el 8 representa la cantidad de letras entre la “K” y la “s”) es un sistema de código abierto para implementar, escalar y administrar aplicaciones alojadas en contenedores en cualquier lugar.

Kubernetes automatiza las tareas operativas de la administración de contenedores e incluye comandos integrados para implementar aplicaciones, actualizarlas, escalarlas a fin de que se ajusten a tus necesidades, supervisarlas y mucho más. Todo esto facilita la administración de las aplicaciones.

Cómo funciona Kubernetes

A medida que las aplicaciones se escalan en varios contenedores y servidores, Kubernetes ayuda a simplificar la administración. Organiza los Deployments con una API de código abierto, agrupando los contenedores en Pods para escalar en función de la demanda y la disponibilidad de recursos. Kubernetes también automatiza el descubrimiento de servicios, el balanceo de cargas y la asignación de recursos, y supervisa el estado para habilitar la autorecuperación mediante el reinicio o la replicación de contenedores.

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

  • Define tu aplicación: Comienza por definir el estado deseado de tu aplicación con archivos YAML. Estos archivos especifican los contenedores que se deben ejecutar, los recursos que necesitan (CPU y memoria) y cómo se deben exponer a la red.
  • Envía la solicitud a la API de Kubernetes: Debes enviar estos archivos YAML a la API de Kubernetes, por lo general, con 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 encuentra los mejores nodos en el clúster para ejecutar tus contenedores (empaquetados como Pods).
  • kubelet inicia contenedores: En cada nodo, un proceso de kubelet recibe instrucciones del plano de control e inicia los contenedores.
  • Los Services exponen aplicaciones: los Services de Kubernetes proporcionan una dirección IP estable y un nombre de DNS para tu aplicación, lo que permite que otras aplicaciones accedan a ella, incluso cuando los Pods se crean, destruyen y reprograman.
  • Los controladores garantizan el estado deseado: Los controladores de Kubernetes supervisan 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 reemplazarlo.
  • Escalamiento y actualizaciones: Puedes escalar tu aplicación con facilidad actualizando la cantidad de réplicas en la configuración de tu Deployment. Kubernetes creará o quitará Pods automáticamente para que coincidan con la escala deseada. Las actualizaciones progresivas te permiten implementar nuevas versiones de tu aplicación sin tiempo de inactividad.

¿Cuáles son los beneficios de Kubernetes?

 Operaciones automatizadas

Kubernetes cuenta con comandos integrados para manejar gran parte del trabajo pesado que forma parte de la administración de aplicaciones, lo que te permite automatizar las operaciones del día a día. Puedes asegurarte de que las aplicaciones siempre se ejecuten de la manera que planeaste.

Abstracción de la infraestructura

Cuando instalas Kubernetes, se encarga del procesamiento, las herramientas de redes y el almacenamiento en nombre de tus cargas de trabajo. Esto les permite a los desarrolladores enfocarse en las aplicaciones y no preocuparse por el entorno subyacente.

Supervisión del estado de los servicios

Kubernetes ejecuta verificaciones de estado de manera continua en los servicios, reinicia los contenedores con errores o que se detuvieron y solo pone los servicios a disposición de los usuarios una vez que confirmó que se están ejecutando.

Uso de recursos optimizado

Kubernetes optimiza el uso de recursos empaquetando contenedores de manera eficiente en nodos según sus requisitos. Esto, a su vez, ayuda a reducir los recursos desperdiciados y los costos de infraestructura.

Administración simplificada de aplicaciones

Optimiza la administración de aplicaciones con Kubernetes. Kubernetes ofrece un enfoque uniforme para implementar, actualizar y administrar aplicaciones de diferentes complejidades.

Portabilidad mejorada

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

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.
Habla con un especialista en ventas de Google Cloud para analizar tu desafío único en más detalle.

Kubernetes en comparación con Docker

Muchas veces se interpreta que debe elegirse uno o el otro; sin embargo, si bien Kubernetes y Docker son tecnologías muy diferentes, son complementarias para ejecutar aplicaciones en contenedores. 

Docker te permite colocar todo lo necesario para ejecutar tu aplicación en una caja que puede almacenarse y abrirse cuando y donde sea necesario. Una vez que comienzas a hacer esto con tus aplicaciones, debes encontrar la forma de administrar dichas cajas; esa es la función de Kubernetes.

Kubernetes es una palabra griega que significa “capitán” en español. Así como el capitán es responsable de navegar el barco de forma segura en el mar, Kubernetes es responsable de trasladar y entregar las cajas de forma segura a las ubicaciones en las que puedan usarse.

  • Kubernetes puede usarse con o sin Docker
  • Docker no es una alternativa a Kubernetes, por lo que no es una cuestión de elegir entre "Kubernetes o Docker". Se trata de usar Kubernetes y Docker para colocar las aplicaciones en contenedores y ejecutarlas a gran escala
  • La diferencia entre Docker y Kubernetes está en el rol que cada uno cumple en la creación de contenedores y la ejecución de las aplicaciones
  • Docker es un estándar de la industria para el empaquetado y la distribución de aplicaciones en contenedores
  • Kubernetes usa Docker para implementar, administrar y escalar aplicaciones en contenedores

Casos de uso comunes de Kubernetes

Kubernetes se usa para crear aplicaciones fáciles de administrar e implementar en cualquier lugar. Cuando está disponible como un servicio administrado, Kubernetes te ofrece una variedad de soluciones según tus necesidades. Estos son algunos de los casos de uso más comunes.

Aumento de la velocidad de desarrollo

Kubernetes te ayuda a compilar apps basadas en microservicios y nativas de la nube. También admite la creación de contenedores de apps existentes, por lo que se convierte en la base de la modernización de aplicaciones y te permite desarrollar apps más rápido.

  • Ejemplo: Una empresa de servicios financieros usa Kubernetes para implementar microservicios en su plataforma de banca en línea, lo que permite tener ciclos de desarrollo más rápidos y una escalabilidad mejorada.

Implementación de aplicaciones en cualquier lugar

Kubernetes está diseñado para usarse en cualquier lugar, lo que te permite ejecutar aplicaciones entre implementaciones locales y nubes públicas, al igual que en implementaciones híbridas. Por esta razón, puedes ejecutar tus aplicaciones en el lugar que las necesites.

  • Ejemplo: Una empresa global de comercio electrónico usa Kubernetes para implementar su aplicación en varios proveedores de servicios en la nube, lo que garantiza una alta disponibilidad y evita la dependencia de un solo proveedor.

Ejecución de servicios eficientes

De forma automática, Kubernetes puede ajustar el tamaño de un clúster necesario para ejecutar un servicio. Esto te permite escalar verticalmente tus aplicaciones de forma automática en función de la demanda y ejecutarlas de manera eficiente.

  • Ejemplo: Un servicio de transmisión de contenido multimedia usa Kubernetes para escalar automáticamente su infraestructura de codificación de video en función de la cantidad de usuarios que miran contenido, lo que optimiza la utilización de recursos y reduce los costos.

Preguntas frecuentes

Explora estas preguntas frecuentes sobre Kubernetes

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

Un Pod de Kubernetes, la unidad más pequeña que se puede implementar, aloja uno o más contenedores, lo que representa una única instancia de un proceso en ejecución.

Un Deployment de Kubernetes garantiza el estado deseado de la aplicación administrando réplicas y actualizaciones fluidas.

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

Puedes escalar tu aplicación actualizando la cantidad de réplicas en la configuración de tu Deployment. Kubernetes creará o quitará Pods automáticamente para que coincidan con la escala deseada.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud