Conceptos básicos de Kubernetes para administradores de sistemas | Activar el administrador del sistema

En el primero de una serie de dos partes, este artículo examina las similitudes y diferencias en contenedores, máquinas virtuales y las ventajas y desventajas de cada tecnología. También analizo Kubernetes (a menudo escrito como K8) y por qué surgió.

Índice

    Contenedores

    En pocas palabras, piense en los contenedores como cajas de software estándar que se pueden usar como una unidad de implementación independiente en cualquier infraestructura. Los contenedores vienen con el código y todas las dependencias dentro. Son livianos, independientes y contienen todos los tiempos de ejecución, configuraciones y herramientas del sistema necesarios para ejecutar las aplicaciones.

    Maquinas virtuales

    Las máquinas virtuales (VM) son programas de espacio aislado (máquinas invitadas) que se comportan como máquinas físicas y se ejecutan en hardware físico y sistemas operativos (máquinas host). La virtualización es como crear varias máquinas dentro de una máquina. El software dentro de la máquina virtual no interfiere con el sistema operativo host. Esto hace que las máquinas virtuales sean ideales para probar aplicaciones beta, diseccionar y estudiar archivos infectados con virus y explorar cualquier otro software que no desee colocar en un sistema físico. Los sistemas host de máquinas virtuales están diseñados y equipados para admitir varias máquinas virtuales, desde unas pocas hasta varias docenas, según las tecnologías y el hardware involucrados.

    Cada máquina virtual utiliza su propio procesador virtual, memoria, disco duro, tarjetas de red (tarjetas de interfaz de red), que corresponden a los recursos físicos de la máquina. Básicamente, las máquinas virtuales son entornos de prueba que pueden ahorrarle dinero, tiempo y otros recursos debido a su disponibilidad, tiempos de construcción rápidos y portabilidad entre hosts. Las máquinas virtuales brindan entornos seguros para probar el software y las aplicaciones más recientes sin correr el riesgo de dañar su sistema host físico.

    Existen diferencias clave entre las máquinas virtuales y los contenedores

    Ahora que conoce la definición y algunos casos de uso de máquinas virtuales y contenedores, puede comparar las principales diferencias entre máquinas virtuales y contenedores en la siguiente tabla:

    Máquina virtualEnvase
    El hipervisor virtualiza el sistema operativo host, lo que da como resultado máquinas virtuales que contienen un sistema operativo invitado completo.Los contenedores virtualizan los sistemas operativos, que luego solo necesitan aplicaciones y sus dependencias y bibliotecas.
    Las máquinas virtuales brindan aislamiento del sistema operativo host, proporcionando un entorno de prueba aislado favorable.Los contenedores están aislados del host y de otros contenedores en el sistema.
    El hipervisor separa los recursos de la máquina física de la máquina virtual.Todo sobre un contenedor se guarda en un archivo basado en código llamado imagen.
    Las máquinas virtuales requieren más recursos del sistema porque utilizan un sistema operativo completo con kernel, procesador, discos duros y tarjetas de red.Los contenedores pueden adaptarse mejor a las necesidades de sus propias aplicaciones, consumiendo menos recursos del sistema.
    Se utiliza en entornos de prueba de aplicaciones tradicionales.Los contenedores se utilizan en entornos de microservicios y Kubernetes.

    Kubernetes

    Kubernetes es un sistema de código abierto para automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores. Google usó K8s, anteriormente conocido como Borg, antes de que se convirtiera en un proyecto de código abierto. Ahora es mantenido y administrado por CNCF (Cloud Native Computing Foundation). Los K8 agrupan contenedores en una unidad lógica llamada pod. Las vainas forman aplicaciones. Los pods también ofrecen fácil administración y descubrimiento.

    ¿Por qué deberíamos usar Kubernetes?

    A medida que los microservicios y la nube comenzaron a crecer, surgió la necesidad de administrar miles de contenedores que se ejecutan en un sistema. Esto se debió en parte a los requisitos de alta disponibilidad y otras necesidades.

    Las principales ventajas de Kubernetes incluyen:

    • Implementaciones y restauraciones automatizadas: ayuda en la implementación automática de cambios al tiempo que garantiza que todos los módulos no fallen al mismo tiempo. Supervisa la salud y se puede utilizar para deshacer cambios.
    • Detección de servicios y equilibrio de carga: ayuda a dar a los pods (que son envoltorios para contenedores) sus propias direcciones IP y un solo nombre de DNS. El K8 también ayuda a equilibrar la carga.
    • Topología del servicio: ayuda a enrutar el tráfico del servicio en función de la topología del clúster.
    • Orquestación de almacenamiento: monta el sistema de almacenamiento de su elección, como el almacenamiento local o los servicios de almacenamiento del proveedor de la nube.
    • Escalado: Escale hacia arriba o hacia abajo su aplicación según el uso de la CPU a través de la CLI o la GUI.
    • Autorreparación: reinicia los contenedores fallidos, elimina los contenedores que no responden a las solicitudes de los usuarios y ayuda a ver los contenedores que no responden a su verificación de estado.

    Casos de uso, eficiencia y reducción de costes

    Ha visto los beneficios de K8, pero ahora le mostraré por qué cualquier empresa puede beneficiarse de Kubernetes. Las empresas necesitan que sus productos estén disponibles para sus clientes de forma rápida y fiable. Kubernetes ayuda a lograr precisamente eso. Divide sus componentes en microservicios, que pueden ser el objetivo de equipos más pequeños. Luego, las partes se integran juntas a través de las API. De esta forma, cada equipo tiene un objetivo más pequeño y acelera el proceso de publicación general.

    Escalabilidad mejorada

    En la actualidad, cuando la carga del usuario cambia dinámicamente, nunca se sabe cuándo ocurrirá el tiempo de inactividad. Supongamos que tiene una venta flash programada para un día en particular. En este día, la disponibilidad de su aplicación para los clientes es imprescindible. Kubernetes ayuda a escalar los pods, que mantienen la funcionalidad. Además, cuando finaliza la venta, se reducen los pods, lo que se traduce en una reducción automática de costes.

    Disponible para entornos multinube

    El mayor beneficio de Kubernetes es que ayuda a las empresas a implementar sus aplicaciones en una variedad de entornos de nube pública y privada. Le permite usar nubes híbridas, lo que evita el bloqueo del proveedor. También permite a las empresas migrar sus cargas de trabajo, brindándoles el máximo retorno de la inversión (ROI).

    Conclusión

    Es posible que este artículo no cubra todos los casos de uso de Kubernetes, pero ahora tiene una idea de cómo nació K8, qué es y qué puede hacer por usted.

    Artículos de interés

    Subir