Las 5 mejores alternativas de Kubernetes by@alfonsovaldes
8,495 lecturas

Las 5 mejores alternativas de Kubernetes

2021/05/25
8 min
por @alfonsovaldes 8,495 lecturas
tldt arrow
ES
Read on Terminal Reader

Demasiado Largo; Para Leer

Kubernetes es una herramienta de orquestación de contenedores de código abierto desarrollada por Google y también se conoce como K8s. Se utiliza para gestionar el ciclo de vida completo de las aplicaciones en contenedores. La herramienta proporciona alta disponibilidad, escalabilidad y previsibilidad a la aplicación en contenedores. Hay diferentes "Alternativas de Kubernetes" disponibles en el mercado. La elección de la herramienta adecuada se basará en las prioridades que tenga y la tecnología que necesite para trabajar con ella. No todas las herramientas de orquestación son iguales, algunas pueden tener excelentes características pero no son relevantes para sus necesidades.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Las 5 mejores alternativas de Kubernetes
Alfonso Valdés  HackerNoon profile picture

@alfonsovaldes

Alfonso Valdés

CEO at ClickIT DevOps and Software Development

Aprender Mas
LEARN MORE ABOUT @ALFONSOVALDES'S EXPERTISE AND PLACE ON THE INTERNET.
react to story with heart

¿Qué es Kubernetes?

es una herramienta de orquestación de contenedores de código abierto desarrollada por Google y también se conoce como K8s. Se utiliza para gestionar el ciclo de vida completo de las aplicaciones en contenedores. Kubernetes proporciona alta disponibilidad, escalabilidad y previsibilidad para la aplicación en contenedores. Automatiza la implementación, la gestión y el escalado de aplicaciones en contenedores. Kubernetes también es compatible con la implementación y reversión automatizadas, el descubrimiento de servicios, la orquestación de almacenamiento, el escalado, la ejecución por lotes y mucho más. Kubernetes proporciona el clúster donde se pueden implementar las aplicaciones en contenedores. Kubernetes no es la única herramienta de orquestación de contenedores, pero hay varias "alternativas de Kubernetes" disponibles en el mercado.

Antes de hablar sobre las " Alternativas a Kubernetes" , exploremos los componentes clave de Kubernetes. El clúster de Kubernetes consta de al menos un nodo de trabajo donde se implementan aplicaciones en contenedores y un nodo maestro o plano de control que administra los nodos de trabajo. El plano de control o nodo maestro consta del servidor Kube-API, etc., Kube-scheduler y Kube-controller-manager, mientras que el nodo trabajador consta de Kubelet, Kube-Proxy y Container Runtime.

image

La importancia de la orquestación de contenedores

Sabemos que Kubernetes se usa para la orquestación de contenedores. Ahora examinemos qué significa realmente la orquestación y por qué la necesitamos, antes de explorar las diferentes alternativas de Kubernetes disponibles en el mercado.

La orquestación es una forma de automatizar los esfuerzos operativos necesarios para administrar aplicaciones en contenedores. Es un proceso que automatiza el scale-in, scale-out, networking, deployments de contenedores, etc. de las aplicaciones. Todas estas operaciones mencionadas anteriormente también se pueden realizar sin un orquestador si la aplicación en contenedor a administrar es muy pequeña. Pero cuando se trata de aplicaciones de microservicios con cientos de microservicios que ejecutan miles de contenedores, se vuelve un desafío administrar todos estos contenedores, y aquí viene un orquestador para rescatar.

Kubernetes no es el único jugador en el mercado, también están disponibles diferentes competidores de Kubernetes y alternativas de Kubernetes como Amazon ECS, Docker Swarm, Nomad, etc.

¿Cómo elegir la mejor herramienta de orquestación de contenedores?

Hay varias herramientas de orquestación, es decir, alternativas de Kubernetes, disponibles en el mercado, y elegir la mejor debe basarse en las necesidades de su negocio y las capacidades de mantenimiento. No todas las herramientas de orquestación son iguales, algunas pueden tener excelentes características pero no son relevantes para sus necesidades. Elegir la herramienta adecuada, por ejemplo, una de las alternativas a Kubernetes , depende mucho del caso de uso. La decisión de elegir la herramienta Orquestación se basará en las prioridades que tenga y la tecnología con la que necesita trabajar.

A la hora de elegir una de las alternativas a Kubernetes que mejor se adapte a ti, debes tener en cuenta los siguientes puntos.

  1. La herramienta debe proporcionar implementaciones y administración flexibles.
  2. Debe ser simple en uso y mantenibilidad.
  3. Implementaciones y administración flexibles.
  4. Dinero y tiempo que puede gastar para aprender la herramienta y la tecnología.
  5. Hay buena documentación disponible de la herramienta.
  6. Desafíos con el uso de Kubernetes para la orquestación de contenedores
  7. Configuración del equilibrador de carga

Kubernetes no viene con Load Balancer a menos que esté ejecutando su clúster en AWS, GCP. Para enrutar el tráfico de Internet a sus aplicaciones que se ejecutan en el clúster, debe configurar su propio Load Balancer, esto requiere exponer el servicio a un puerto en su máquina host, lo que puede presentar el riesgo de conflictos de puerto y dificultad para escalar clústeres.

Gestión de restricciones de recursos

Para usar eficientemente el poder de cómputo, necesita saber cómo configurar Kubernetes para solicitar recursos para los pods. Si no implementa solicitudes y límites de recursos explícitamente en Kubernetes, puede poner en riesgo su aplicación.

Registro y Monitoreo

Kubernetes no viene con registro y monitoreo que puedan ayudar a analizar registros y alertarlo si algo sale mal en el clúster. No ayuda a monitorear las cargas de trabajo ni a garantizar que funcionen de manera óptima. Debe usar Prometheus para monitorear, EKL para registrar y Grafana para visualizar, ya que estas herramientas no vienen de forma predeterminada con Kubernetes Cluster.

Seguridad

Uno no puede tratar el clúster de Kubernetes o los microservicios implementados en él de la misma manera que trata su aplicación heredada. Deberá descubrir las vulnerabilidades y corregirlas después de mover su aplicación heredada a Kubernetes.

Sin implementaciones azul-verde integradas

Kubernetes no viene con una estrategia de implementación azul-verde. Algunas aplicaciones no funcionan con actualizaciones continuas y necesitan tener una nueva versión, y para esto se necesita una estrategia de implementación Azul-Verde. En la estrategia de implementación azul-verde, se implementa una nueva copia de la aplicación junto con la versión existente. Cuando la nueva versión está completamente en funcionamiento, las solicitudes de la versión anterior se redirigen a la versión más nueva.

Flujos de trabajo de DevOps

Kubernetes no contiene un flujo de trabajo de CI/CD integrado ni procesos de creación y actualización de contenedores.

Competidores de Kubernetes

Amazon ECS, Docker Swarm, Nomad, Redhat OpenShift son las alternativas de Kubernetes más populares y los competidores de Kubernetes. Todos estos tienen su propio conjunto de características, y también, hay algunos conceptos básicos que todos parecen cubrir bien. Veamos estas alternativas a Kubernetes una por una, junto con sus pros y sus contras.

1. Amazon ECS

Amazon Elastic Container Service (ECS), una de las alternativas de Kubernetes , es un servicio administrado de Amazon Web Services (AWS). ECS es una plataforma de orquestación de contenedores proporcionada por AWS que administra contenedores Docker. Proporciona una arquitectura sin servidor en la que los contenedores Docker se ejecutan en instancias EC2 administradas y escaladas por ECS. Amazon ECS tiene seguridad integrada respaldada por AWS Identity Access Management (IAM). Dado que es un servicio de AWS, se integra fácilmente con otros servicios de AWS, como Elastic Load Balancing, Cloudwatch, IAM, Cloudformation, etc. También se pueden usar instancias Spot para instancias EC2, lo que puede ahorrar en el costo de la infraestructura.

ECS es una excelente opción como una de las alternativas a Kubernetes para la orquestación de contenedores. Puede optar por ejecutar contenedores en instancias Fargate o EC2. ECS con instancias Fargate o Spot EC2 puede ayudar a ahorrar hasta un 90 % en la facturación. ECS cuenta con SLA, que garantiza un Uptime Mensual de al menos 99.99%. Cuando usa ECS, solo necesita concentrarse en crear y administrar aplicaciones en lugar de infraestructura.

image

2. RedHat OpenShift

RedHat OpenShift es una plataforma de aplicaciones de contenedores de código abierto que funciona como PaaS (plataforma como servicio). Solo se puede instalar en Red Hat Enterprise Linux Atomic Host (RHELAH), Fedora o CentOS, propiedad de Red Hat. Debido a su estricta política de seguridad, los contenedores no se pueden ejecutar como root. RedHat OpenShift viene con administración centralizada de políticas y monitoreo integrado. El soporte se limita principalmente a los desarrolladores de Red Hat para OpenShift. RedHat OpenShift es un producto que incluye componentes de Kubernetes y agrega funciones de productividad y seguridad; esto lo convierte en una de las alternativas a Kubernetes construida sobre Kubernetes.

image

3. Enjambre Docker

Docker Swarm es una orquestación de contenedores que consta de administradores y trabajadores. Es un agrupamiento nativo para Docker. Los administradores del clúster administran la membresía y la delegación, y los trabajadores ejecutan servicios de enjambre. La comunicación que se lleva a cabo entre los gerentes y los trabajadores es altamente segura.

image

4. Nómada

Nomad se utiliza para implementar y administrar cargas de trabajo de aplicaciones heredadas o en contenedores. Nomad puede ejecutar cargas de trabajo de aplicaciones Docker, no contenedorizadas, de microservicios y por lotes, y es una de las alternativas de Kubernetes. Se ejecuta como un solo binario, no requiere ningún servicio externo para el almacenamiento o la coordinación, y se puede implementar en un sistema completo con la misma facilidad que en entornos de nube. Nomad también es compatible con la integración perfecta con , Vault y Consul para el aprovisionamiento, la gestión de secretos y la red de servicios.

image

5. AWS Fargate

La versión estándar de Kubernetes no es compatible con el modelo informático sin servidor, mientras que Amazon Fargate utiliza el modelo informático sin servidor. AWS solo puede admitir implementaciones en Fargate; es una tecnología vinculada a la nube. Uno necesita "pagar sobre la marcha" por Fargate en AWS, y esta es la ventaja de usar Fargate sobre otras alternativas de Kubernetes . Mientras se trabaja en la implementación de la aplicación, uno debe concentrarse solo en escribir la aplicación y no preocuparse por el hardware subyacente. Fargate necesita la menor cantidad de mantenimiento en comparación con otras alternativas de Kubernetes , ya que es el más fácil de aprender.

Amazon Fargate es la tecnología de Amazon ECS y EKS para implementar aplicaciones en contenedores sin tener que administrar servidores o clústeres. Al usar Fargate con Amazon ECS y EKS, no es necesario configurar, aprovisionar ni escalar clústeres para ejecutar contenedores.

image

¡Le recomiendo que lea este blog sobre Kubernetes vs Amazon ECS !

Tabla de comparación

image

Cómo migrar de Kubernetes a Amazon EC

La migración de su aplicación de Kubernetes a Amazon ECS o cualquier otra herramienta de orquestación requiere planificación. Aquí hay algunos consejos para tener en cuenta.

Al migrar las aplicaciones, debería tener un tiempo de inactividad cercano a cero. Las aplicaciones de producción deben migrarse en períodos de poco tráfico. La migración debe probarse en el entorno de prueba antes que en el entorno de producción.

Ahora, analicemos los factores que se deben considerar al migrar de Kubernetes a ECS.

1. Cree una VPC con subredes privadas y públicas. Este es un paso opcional pero recomendado. Siempre es una buena idea tener una VPC personalizada con el rango CIDR deseado y subredes públicas y privadas para implementar sus aplicaciones en contenedores.

2. Configure un clúster de ECS en la VPC que creó. Pregúntese cómo le gustaría configurar el ECS Cluster. Puedes hacerlo manualmente, usando Terraform o AWS Cloudformation . Si tiene varios entornos como Dev, RC/Staging, Prod, la automatización puede ayudarlo a replicar el entorno.

3. Cree definiciones de tareas de ECS que coincidan con las implementaciones en Kubernetes. Puede definir la memoria, la CPU y otras configuraciones en la definición de tareas.

4. Elija el tipo de lanzamiento de Fargate y EC2 para lanzar los servicios de ECS que coincidan con sus implementaciones de Kubernetes existentes. Especifique el número de réplicas, el tipo de implementación como Actualización continua o Implementaciones azul/verde y otras configuraciones.

5. Pruebe sus servicios de ECS equilibrando algún porcentaje de tráfico entre ECS y Kubernetes. Esto se puede lograr configurando el peso del tráfico en su DNS.

6. Repita los pasos del 3 al 5 para toda su implementación en el clúster de Kubernetes.

7. Elimine el clúster de Kubernetes cuando todas las pruebas sean exitosas y envíe el 100 % del tráfico hacia ECS para deshacerse de los recursos de Kubernetes.

Microservicio utilizando las alternativas de Kubernetes- Docker Swarm

Implementar microservicios en Docker Swarm es muy fácil; solo requiere unos pocos pasos. Exploremos estos pasos.

1. Cree e inicialice el clúster Docker Swarm
Como requisito previo, debe tener acceso a servidores con Docker instalado. Luego puede ingresar a la máquina donde desea ejecutar su nodo de administrador e inicializar el modo Docker Swarm usando el comando-

docker swarm init –advertise-addr <IP-ADMINISTRADOR>
Luego puede agregar un administrador a este enjambre usando-

administrador de tokens de unión de enjambre docker
y un trabajador usando-

docker swarm join –token <token> <Manager-IP:2377>”
En este punto, si revisa

información de la ventana acoplable
verás Swarm: activo

2. Cree imágenes acoplables usando Dockerfiles
Use Dockerfiles para definir los pasos para crear imágenes de Docker que contengan su código de microservicio.
Luego puede usar "compilación de ventana acoplable" para crear una imagen de ventana acoplable utilizando el Dockerfile que tiene.

"docker build -t <nombre-imagen>".

3. Cree y ejecute su imagen acoplable
Una vez que haya creado correctamente su imagen de Docker, puede probarla con el comando "docker run"

docker run –name <nombre-contenedor> -p <puerto-host>:<puerto-contenedor> -d <nombre-imagen-docker>”

4. Publique su imagen acoplable en el repositorio del concentrador Docker
Docker Hub es la biblioteca y comunidad de imágenes de contenedores más grande del mundo. Puede almacenar sus imágenes aquí para poder usarlas desde cualquier lugar del mundo.

5. Cree servicios docker en nuestro clúster de enjambre docker
En este punto, está listo para implementar servicios en Swarm. Es tan simple como ejecutar un solo comando para crear un servicio.

docker service create –replicas 1 –name my-service <mi-imagen> <mi-comando> <mi-argumento>
Aquí,
El comando docker service create crea el servicio.
–name flag nombra el servicio my-service
–la bandera de réplicas especifica el estado deseado de 1 instancia en ejecución.
<mi-imagen> <mi-comando> <mi-argumento> define el servicio como contenedor <mi-imagen> que ejecuta el comando <mi-comando> <mi-argumento>

Conclusión

Siempre es una buena idea dar un paso atrás y pensar dos veces antes de seguir a la multitud. Asegúrese siempre de tener en cuenta los costos asociados con el orquestador que elija. Además, decida si desea el apoyo de los expertos o de la comunidad. En última instancia, la elección de una sola plataforma entre diferentes alternativas de Kubernetes debe basarse en sus prioridades.

Si desea mantenerlo simple y desea la integración de los mecanismos de control de acceso, el soporte de expertos y prefiere la nube a los servidores privados, ECS puede ser la opción. ECS es uno de los mayores competidores de Kubernetes. Le permitirá aprovechar las integraciones de AWS IAM, Cloudwatch. ECS también puede ser una opción ideal si está buscando una solución fácil y es nuevo en los contenedores.

Si le encanta CLI y quiere mantener su selección correcta, vaya con Docker Swarm. RedHat OpenShift puede ser su elección si Kubernetes debe ser su plataforma preferida. Pero si está buscando una herramienta liviana con simplicidad en su núcleo, enfocada solo en la administración de clústeres y la programación, entonces Nomad es para usted como una de las alternativas a Kubernetes .

También publicado en: https://www.clickittech.com/devops/kubernetes-alternatives/

HISTORIAS RELACIONADAS

L O A D I N G
. . . comments & more!
Hackernoon hq - po box 2206, edwards, colorado 81632, usa