El uso de contenedores permite ejecutar un conjunto de procesos separados del sistema facilitando su portabilidad a otros entornos y siendo muy rápidos de implementar. Los contenedores permiten empaquetar y aislar del sistema, las aplicaciones y el entorno necesario para que se ejecuten, permitiendo mover dichas aplicaciones entre distintos sistemas. Debido a su popularidad el uso de contenedores se ha extendido y han surgido herramientas que permiten administrarlos y organizarlos como son Kubernetes de Google y Swarm de Docker.
En este artículo veremos qué es Kubernetes, qué es Swarm y cuándo es recomendable utilizar cada uno de estos orquestadores de contenedores.
Qué es Kubernetes
Un contenedor es una imagen que empaqueta la aplicación con sus dependencias y su configuración, haciendo que la portabilidad sea más rápida y eficiente, y requiere mucho menos recursos de hardware.
Kubernetes (K8s) es una plataforma de código libre cuyo objetivo es el de administrar y organizar clusters de contenedores, evitando los procesos manuales relacionados para escalar e implementar aplicaciones en contenedores. Cuando se trabaja con grupos de contenedores, Kubernetes facilita su administración de forma rápida y efectiva.
Kubernetes está basado en 15 años de experiencia ejecutando cargas de trabajo en los servicios de Google, y en las aportaciones de una gran comunidad. Google utiliza Kubernetes para la gestión de los contenedores que dan lugar a sus servicios como Gmail o YouTube.
Características y fortalezas de Kubernetes
Las principales características de Kubernetes son:
Gestión de las cargas de trabajo críticas, permitiendo optimizar los recursos y aumentar el rendimiento (best effort).
Añadir contenedores de forma automática sin que afecte a la disponibilidad.
Eliminar, reiniciar o reemplazar los contenedores que fallen o cuando sus nodos no estén disponibles. Kubernetes garantiza una alta disponibilidad.
Facilita la orquestación de almacenamiento para crear sistema de almacenamiento en la nube o en red on premise.
Ejecución de despliegues automatizados monitoreando el proceso y permitiendo revertir los cambios (rollbacks automáticos). Se integra con herramientas de despliegue DevOps.
Escalabilidad de aplicaciones, incrementando los recursos necesarios o reduciéndose si no son utilizados (escalado automático).
Utiliza su propia API por lo que pueden agregarse nuevas operaciones personalizadas.
Soporta una gran variedad de contenedores como docker, rkt, cri-o o frakti.
Cuenta con una inmensa comunidad, por lo que dispone de un gran soporte.
¿En qué casos es recomendable Kubernetes?
Dada su flexibilidad y todas las posibilidades de instalación que ofrece, Kubernetes puede utilizarse sin apenas restricciones. Entre el amplio abanico de posibilidades de uso de Kubernetes podemos nombrar:
Servidores básicos (bare metal). Puede desplegarse el cluster sobre máquinas físicas utilizando distintas distribuciones de Linux.
Virtualización on premise. Es posible montar un cluster en los servidores de las empresas, pero utilizando máquinas virtuales.
Servicios PaaS, plataforma de aplicaciones como servicio.
Servicios Cloud.
Qué es Swarm
Swarm es una herramienta integrada en Docker (aplicación para la creación contenedores) que permite agrupar una serie de hosts de Docker en un clúster y gestionarlos de forma centralizada, así como orquestar contenedores.
En el Docker Swarm se tendrán múltiples servidores que se pueden comunicar entre sí y tienen corriendo diversos contenedores. Alguno de estos servidores serán managers y podrán decidir dónde debe ir la carga, asignando en que nodo correrá cada contenedor.
Con Swarm se dispone de la API de Docker, pudiéndose administrar las tareas y la asignación de recursos para cada uno de los contenedores que forman el cluster, como si de una única máquina Docker se tratase.
Características y fortalezas de Swarm
Las principales ventajas de Swarm son:
Se encuentra integrado con la API Docker Engine, por lo que es muy sencillo de utilizar para los que trabajen con Docker. Los comandos que utiliza son los propios de Docker (no permite agregar nuevas operaciones).
Se basa en dos elementos principales: managers (host de Docker) y workers (servicios). Los managers pueden actuar también como workers y se encargan de dar órdenes a los workers.
Creación de servicios a partir de una imagen y configuración para distribuirlos en clusters (como tareas). Estos servicios pueden ser replicados o globales.
Redistribuye las cargas de trabajo si algún nodo falla asegurando una alta disponibilidad.
Administración de grupos de contenedores (agregar, eliminar, balancear, etc.).
Cuenta con funcionalidades como escalado manual (aumentar y disminuir recursos según necesidad) y rolling updates (gestión de actualizaciones sobre los servicios) integrado.
No es necesaria ninguna instalación extra para tenerlo disponible con Docker.
¿En qué casos es recomendable Swarm?
Para proyectos donde se usa Docker, Swarm es una buena opción, ya que es muy rápido y fiable, encontrándose integrado de forma nativa en el propio Docker.
Docker Swarm es muy sencillo de implementar por lo que para pequeños proyectos sencillos es muy interesante su uso, evitando complejas configuraciones como las de otras soluciones como Kubernetes o Apache Mesos.
Cuándo es más recomendable usar cada una de estas herramientas
Kubernetes es el líder en la orquestación de contenedores, siendo la herramienta más popular y utilizada del mercado. En grandes proyectos o proyectos con una mayor complejidad es mejor utilizar Kubernetes, mientras que para proyectos más pequeños o sencillos la facilidad de uso de Swarm es más apropiado.
Kubernetes requiere una instalación manual, por lo que necesita configuraciones que no son automáticas como gestión de roles e IP. Swarm se encuentra ya integrado en Docker, por lo que es menos complejo de instalar y configurar que Kubernetes.
Kubernetes también maneja el control de acceso, los volúmenes y la integración de servicios en la nube mejor que Docker Swarm, proporciona formas flexibles de monitorización para verificar que los contenedores están activos y saludables.
En los casos en los que se deseen probar conceptos relacionados con la comunicación y dinámica de las aplicaciones, Swarm es una gran opción para hacerlo de forma rápida y con poco esfuerzo.
Si se requiere disponer de un mayor control sobre los posibles fallos, Swarm no es tan bueno como Kubernetes en este aspecto.
A la hora de la asignación o modificación de los recursos asignados a cada contenedor, Swarm permite realizarlo de forma manual (aunque muy rápido), mientras que Kubernetes puede realizar de forma automática.
La gestión de grupos de contenedores se ha convertido en una cuestión de vital importancia por lo que han surgido herramientas de orquestación de contenedores como Kubernetes y Docker Swarm.
Muchas grandes empresas como Google y Amazon utilizan y apoyan Kubernetes, realizando una gran apuesta sobre este orquestador de contenedores.
Una cookie es un pequeño archivo que se almacena en el ordenador del usuario y nos permite reconocerle. El conjunto de cookies nos ayuda a mejorar la calidad de nuestra web, y nos permite controlar qué páginas son útiles para nuestros usuarios y cuáles no.
Las cookies son esenciales para el funcionamiento de internet, porque aportan innumerables ventajas en la prestación de servicios interactivos y facilitan la navegación y usabilidad de nuestra web. Ten en cuenta que las cookies no pueden dañar a tu equipo. Al contrario, el hecho de que estén activadas nos ayuda a identificar y resolver los errores.
La información que te proporcionamos a continuación te ayudará a comprender los diferentes tipos de cookies:
Cookies de sesión: son cookies temporales que permanecen en el archivo de cookies de tu navegador hasta que abandonas la página web, por lo que ninguna queda registrada en tu disco duro. La información obtenida por medio de estas cookies sirvee para analizar pautas de tráfico en la web. A la larga, esto nos permite proporcionar una mejor experiencia, mejorar el contenido y facilitar su uso.
Cookies permanentes: están almacenadas en el disco duro. Nuestra web las lee cada vez que vuelves a visitarla. Estas cookies tiene una fecha de caducidad determinada, tras la cual dejarán de funcionar.
Puedes revisar toda slas cookies que utilizamos en las pestañas de la parte izquierda, o en la página completa de nuestra política de cookies.
Cookies estrictamente necesarias
Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.
wordpress_test_cookie – en esta cookie WordPress comprueba y guarda si las cookies están activadas en el navegador. Técnica de sesión.Necesaria.
wordpress_logged_in_[hash] – Técnica de sesión.Necesaria.
wp-settings-{time}-[UID] – Técnica persistente. Tiempo por defecto 1 año. Necesaria.
wp-settings-[UID] – Técnica persistente. Tiempo por defecto 1 año.
wp-postpass_[hash] – Técnica persistente. Tiempo por defecto 10 días.
wp-wpml_current_language – Cookie para saber el diioma del usuario. Técnica persistente
_icl_visitor_lang_js – Cookie para saber el diioma del usuario. Técnica persistente
wpml_browser_redirect_test – Cookie para saber el diioma del usuario. Técnica persistente
Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.
Cookies de terceros
Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.
Dejar esta cookie activa nos permite mejorar nuestra web.
Google Analytics
_ga
Esta cookie se usa para distinguir a los visitantes del sitio web.
2 años
_gid
Esta cookie se usa para distinguir a los visitantes del sitio web.
1 día
_gat
Esta cookie se usa para limitar el porcentaje de solicitudes. Recopila información de forma anónima.
10 minutos
_utma
ILIMIT COMUNICACIONS, S.L. apoya el uso de Google Analytics en el sitio web para hacer un seguimiento de la actividad realizada en él.
2 años
_utmb
Las cookies de Google Analytics recopilan información de registro estándar y datos sobre los hábitos de los visitantes de forma anónima.
30 minutos
_utmc
Sesión
_utmz
developers.google.com/analytics/resources/concepts/gaConceptsCookies (en inglés).
6 meses
_utmv
2 años
HubSpot
_hstc
La cookie principal para monitorear visitantes. Contiene: el dominio, utk (ver abajo), fecha y hora inicial (primera visita), última fecha y hora (última visita), fecha y hora visita actual (esta visita) y número de sesión (incrementos para cada sesión posterior).
2 años
hubspotutk
Esta cookie se utiliza para controlar la identidad de un visitante. Esta cookie se pasa a HubSpot al enviar la solicitud y se usa cuando se eliminan los contactos duplicados.
10 años
__hssc
Cookies para controlar las sesiones. Esto se utiliza para determinar si debemos incrementar el número de sesión y las marcas de tiempo en la cookie __hstc. Contiene: el dominio, el conteo de visitas (incrementa cada visita a la página en una sesión), hora de inicio de sesión.
30 minutos
__hssrc
Cada vez que HubSpot cambia la cookie de sesión, también se configura esta cookie. Sencillamente la fijamos al valor «1» y la usamos para determinar si el usuario ha reiniciado su navegador. Si esta cookie no existe cuando administramos las cookies, asumimos que es una nueva sesión.
Sessión
__hs_opt_out
La política de privacidad de opt-in usa esta cookie para no volver a solicitar al usuario que acepte las cookies. Esta cookie se configura cuando el usuario opta por no aceptar las cookies.
2 años
__hs_do_not_track
Esta cookie se configura cuando el usuario pta por no aceptar las cookies. Deshabilita el monitoreo y la personalización.
2 años
__hs_testcookie
Esta cookie se utiliza para probar si el visitante tiene activadas las cookies.
Sessión
hsPagesViewedThisSession
Esta cookie se usa para monitorear el número de visitas a la página en una sesión.
Sessión
hsfirstvisit
Esta cookie se usa para monitorear la primer visita de un usuario.
10 años
Hotjar
_hjClosedSurveyInvites
Esta cookie se establece una vez que un visitante interactúa con una ventana emergente modal de la invitación a la encuesta. Se utiliza para garantizar que la misma invitación no vuelva a aparecer si ya se ha mostrado.
1 año
_hjDonePolls
Esta cookie se establece una vez que un visitante completa una encuesta usando el widget de encuesta de votos. Se utiliza para garantizar que la misma encuesta no vuelva a aparecer si ya se ha completado.
1 año
_hjMinimizedPolls
Esta cookie se establece una vez que un visitante minimiza un widget de Encuesta de opinión. Se utiliza para garantizar que el widget se mantenga minimizado cuando el visitante navega por su sitio.
1 año
_hjDoneTestersWidgets
Esta cookie se establece una vez que un visitante envía su información en el widget Recruit User Testers. Se utiliza para garantizar que el mismo formulario no vuelva a aparecer si ya se ha completado.
1 año
_hjMinimizedTestersWidgets
Esta cookie se establece una vez que un visitante minimiza un widget Recruit User Testers. Se utiliza para garantizar que el widget se mantenga minimizado cuando el visitante navega por su sitio.
1 año
_hjIncludedInSample
Esta cookie de sesión está configurada para que Hotjar sepa si ese visitante está incluido en la muestra que se utiliza para generar embudos.
1 año
¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!