X

Top 5 alternativas a Kubernetes

Desde hace ya algún tiempo los contenedores se han vuelto muy populares, esto es gracias al grado de abstracción que ofrecen.

Los contenedores nos permiten aislar un proyecto/aplicación del resto del equipo, ya sea en la nube, nuestro entorno local o un servidor dedicado.

Hoy en dia con tantas tecnologías a disposición es común tener aplicaciones en distintos lenguajes o diferentes versiones las cuales se hace imposible hospedar en un mismo entorno. Es aquí donde entran los contenedores, ya sean Docker, Linux Containers u otros.

Lo usual es utilizar varios contenedores en un mismo equipo, separando aplicaciones y manteniendo todo ordenado.

De todas maneras la tarea de administrar varios contenedores termina siendo algo engorrosa.

Es aquí donde llega los orquestadores, y Kubernetes como bien sabemos es el más utilizado del mercado.

Los orquestadores nos permiten desplegar, gestionar, interconectar contenedores y realizar otras tareas de manera simplificada.

Si quieres saber más sobre Kubernetes puntualmente, te recomiendo darte una vuelta por nuestro tutorial inicial sobre Kubernetes.

Hoy vamos a ver en este artículo las mejores alternativas a Kubernetes.

¿Por qué buscar alternativas a Kubernetes?

Kubernetes es una excelente herramienta com muchas características positivas que cubre varios aspectos de la administración de contenedores por no decir todos.

Nos permite trabajar en diversos entornos y compañías como Google y Amazon que lo proveen en sus servicios.

Pero Kubernetes a veces puede ser demasiado, es una herramienta muy robusta para utilizan en entornos pequeños pudiendo causar mas problemas que soluciones.

Es realmente difícil de instalar y configurar un entorno con Kubernetes de forma manual.

Además la curva de aprendizaje es escalonada, esto quiere decir que te insumirá mucho tiempo y trabajo entender y saber usar Kubernetes. Lo mejor para aprender esta herramienta es tener a un experto que te guíe.

Y si estás pensando en contratar a alguien que maneje tus contenedor con Kubernetes, ten en cuenta que los expertos en esta materia se pagan muy bien y no son especialmente abundantes.

Otra gran desventaja de Kubernetes es que la alta disponibilidad no es algo que venga por defecto. Si queremos manejar una alta disponibilidad es necesario realizar determinadas configuraciones de forma manual.

Populares alternativas a Kubernetes

Ahora que hemos visto las razones por las cuales buscar alternativas a Kubernetes, vamos a ver cuales son los 5 mejores Orquestadores que podemos utilizar para remplazarlo.

Docker Swarm

Swarm es un orquestador de contenedores Docker. En un principio no ofrecía grandes herramientas para el manejo de contenedores. Fue a partir de la versión 1.12 de Docker Engine que se incluyó de forma nativa.

Swarm es fácil de utilizar y configurar, al ser propio de Docker utiliza el mismo lenguaje lo que facilita su uso.

Podemos utilizar Swarm en cualquier entorno que tenga Docker instalado ya que es compatible con todas sus versiones y soporta retrocompatibilidad.

Gracias a su flexibilidad, nos permite agregar nuevos nodos de forma sencilla haciendo la escalabilidad algo simple y rápido. Swarm provee una alta disponibilidad ya que los servicios pueden ser fácilmente replicados.

Este se compone de nodos maestros que se encargan de mantener el cluster y repartir los recursos, mientras que los nodos trabajadores se encargan de realizar las tareas.

Con Swarm podemos manejar servicios y micro-servicios. Estos servicios pueden ser asignados automaticamente por Swarm o pueden atender un puerto en especifico definido por el usuario.

Swarm es ideal para entornos medianos a pequeños, ofrece simplicidad y un fácil setup.

Es el preferido de los desarrolladores mientras que Kubernetes es más utilizado para entornos de producción en grandes proveedores.

Nomad By HashiCorp

Es un orquestador de carga de trabajo para manejar distintos tipos de aplicaciones. Esto incluye contenedores, micro-servicios, aplicaciones Java, VM, entre otras.

Nomad es compatible con contenedores Docker y también con otras tecnologías. Se puede utilizar en varios sistemas operativos, Linux, Windows, BSD y OSX. Y su instalación es sencilla ya que se instala como un simple binario.

Este se centra en ser eficiente y fácil de implementar. Por lo que no es un orquestador tan completo como lo es Kubernetes. Aunque si podemos integrar otras herramientas desarrolladas por HashiCorp tales como Terraform, Consul y Vault. Junto a estas provee aprovisionamiento, redes de servicios y gestión de secretos respectivamente.

Nos permite montar nuestro cluster agregando Servidores/Clouds de distintos DataCenters. Nomad es altamente escalable, incluso tiene un caso de estudio llamado «Reto del millon de contenedores».

Nomad se maneja con dos tipos de modos, el cliente y el servidor. El cliente se encarga de realizar las tareas mientras que el servidor se encarga de manejar los nodos.

También posee una opción dev para cuando estamos trabajando en un entorno de desarrollo, en este caso Nomad se inicia con ambos modos cliente y servidor.

Donde más se destaca Nomad es para la administración de clusters. Es muy sencillo crear clusters y agregar nuevos nodos. Estos nodos pueden estar en otro datacenter y en una ubicación totalmente diferente. Para este tipo de configuración se recomienda manejar entre 3 y 5 servidores, esto nos asegura una alta disponibilidad.

Nomad es una alternativa a Kubernetes más fácil de utilizar he instalar. Nos permite manejar tareas y crear un cluster con nodos sin rodeos.

Rancher – Kubernetes como servicio

Rancher más que una alternativa a Kubernetes es una forma diferente y más fácil de utilizarlo. Este se define asi mismo como una distribución completa de Kubernetes.

Agrega valor extra en las áreas de Operación y administración del Cluster, Gestión intuitiva en la carga de trabajo y soporte empresarial.

Es importante destacar que también provee una interfaz gráfica la cual nos ayuda a trabajar en un entorno visual y no unicamente por comando.

En todas las versiones 2.x Rancher trabaja especialmente con Kubernetes y ofrece compatibilidad con Centos, Oracle Linux, RancherOS, RHEL, Ubuntu y Windows Server. En cuanto a los contenedores acepta Docker en distintas versiones dependiendo del sistema operativo.

Soporta cualquier distribución certificada de Kubernetes incluyendo RKE y K3s. Esto ayuda a que sea más fácil de migrar.

Además provee una desinstalación limpia, permitiendo manejar cada cluster de forma independiente una vez removido.

Rancher admite la rápida implementación de herramientas como Prometheus, Grafana, Fluentd y Istio, aumentando las características de Kubernetes.

Esto no solo nos permite administrar los nodos, sino que los une centralizando la autenticación, el control de acceso y la observabilidad.

Rancher es una excelente alternativa a Kubernetes, permitiendo instalar y configurar el mismo de forma simplificada además de las caracteristicas extra que agrega.

Apache Mesos

Mesos es un kernel para el manejo de clusters y puede ser utilizado en Linux, Windows o OSX. Este ofrece una mayor abstracción de los recursos de CPU, Memoria y Disco para formar sistemas distribuidos fácil de escalar y tolerantes a fallas.

Se maneja con el uso de APIs para gestionar los recursos y la planificación de tareas. Para ello es necesario que corra en cada uno de los nodos del cluster. De esta forma puede distribuir los recursos de manera óptima entre los diferentes nodos.

Cada nodo trabaja con un Framework sobre el cual se realizan las tareas. Los Framework más populares son Apache Spark, Cassandra, Akka y Apache Kafka.

Cada Framework se especializa en una tarea determinada y podemos utilizar uno por cada nodo.

Mesos es aún más complejo que Kubernetes y su aprendizaje es más lento. Es recomendable para grandes aplicaciones que manejan una gran cantidad de datos donde se utilizan 20 o más nodos.

También se recomienda para aplicaciones de Inteligencia Artificial ya que permite realizar cálculos con mayor velocidad.

Con Mesos también podemos hacer uso de contenedores Docker y APPC, incluso es posible combinarlo con la API de Kubernetes. Aunque la orquestación de contenedores no es su fuerte ya que no fue desarrollado para dicho fin.

Este es una solución más genérica, pensada a mayor escala y que requiere de un Framework para la mayoría de los casos. Mesos es una alternativa a Kubernetes si buscamos mayor estabilidad y sistemas elasticos, sobretodo para grandes volumenes de datos.

Cloudify

Cloudify es un framework de orquestación de Clouds que permite el modelado de aplicaciones y servicios. También permite automatizar todo el ciclo de vida de estas, incluyendo el despliegue en cualquier Cloud o Centro de Datos.

No solo es un orquestador de contenedores y servicios sino que engloba toda la aplicación.

Esto incluye Infraestructura, Contenedores, Componentes de Red, Middleware, Aplicaciones, Bases de Datos y Monitoreo.

Al igual que otros orquestadores, Cloudify proporciona un panel muy completo. En este podemos realizar y monitorear el despliegue de aplicaciones. Además de ver el reporte de fallas y solucionar los errores manualmente o dejar que lo haga de forma automática.

A partir de su versión 5.0 Cloudify añadió la integración con Kubernetes, Azure ARM, AWS, Cloudformation, Andible y Terraform. Esto permite la creación de un entorno con automatización de extremo a extremo.

Algo llamativo de Cloudify es que sus últimas actualizaciones de versión se realizaron en conjunto con algunos de sus clientes más importantes.

Esto nos asegura que escuchan las necesidades de los usuarios y están comprometidos con brindar soluciones confiables que satisfacen todas las necesidades de sus clientes.

Cloudify más que una alternativa a Kubernetes es una herramienta que puede trabajar en conjunto con este. Es ideal para centralizar toda nuestra infraestructura con un único orquestador. Siendo utilizado incluso por bancos podemos dar crédito de su seguridad y alta disponibilidad.

Conclusión

Hoy en día con el boom de los contenedores podemos encontrar todo tipo de Orquestadores. Aquí solo hemos visto algunas de las alternativas a Kubernetes, tratando de abarcar diferentes necesidades.

En el mercado podremos encontrar otras alternativas con características similares para todo tipo de aplicaciones. Desde entornos pequeños a grandes infraestructuras pasando por varios niveles de complejidad.

Si te interesan los contenedores te recomendamos darte una vuelta por nuestro artículo de Alternativas a Docker.

Artículos relacionados