Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

14 herramientas de orquestación de contenedores para DevOps

Container-Orchestration-Tools-for-DevOps
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Hablemos de algunas de las herramientas populares de orquestación de contenedores disponibles en el mercado.

¿Qué es una orquestación de contenedores?

Plataformas de contenedores como Docker son muy populares en estos días para empaquetar aplicaciones basadas en una arquitectura de microservicios. Los contenedores se pueden hacer altamente escalables, que se pueden crear a pedido. Si bien esto es bueno para algunos contenedores, imagina que tienes cientos de ellos.

Se vuelve extremadamente difícil administrar el ciclo de vida del contenedor y su administración cuando los números aumentan dinámicamente con la demanda.

La orquestación de contenedores resuelve el problema automatizando la programación, implementación, escalabilidad, equilibrio de carga, disponibilidad y redes de contenedores. La orquestación de contenedores es la automatización y gestión del ciclo de vida de contenedores y servicios.

Es un proceso de gestión y organización de múltiples contenedores y arquitectura de microservicios a escala.

Afortunadamente, hay muchas herramientas de orquestación de contenedores disponibles en el mercado.

¡Vamos a explorarlos!

Kubernetes

Lo has adivinado, ¿no?

Kubernetes es una plataforma de código abierto que originalmente fue diseñada por Google y ahora mantenida por Cloud Native Computing Foundation. Kubernetes admite tanto la configuración declarativa como la automatización. Puede ayudar a automatizar la implementación, el escalado y la administración de cargas de trabajo y servicios en contenedores.

Imagen de Kubernetes.io

La API de Kubernetes ayuda a establecer la comunicación entre los usuarios, los componentes del clúster y los componentes externos de terceros. El plano de control y los nodos de Kubernetes se ejecutan en un grupo de nodos que juntos forman el clúster. La carga de trabajo de la aplicación consta de uno o más pods que se ejecutan en los nodos de trabajo. El plano de control administra los pods y los nodos de trabajo.

Empresas como Babylon, Booking.com, AppDirect utilizan ampliamente Kubernetes.

Características

  • Servicio de descubrimiento y equilibrio de carga
  • Orquestación de almacenamiento
  • Implementaciones y reversiones automatizadas
  • Escala horizontal
  • Gestión de secretos y configuraciones
  • La auto-sanación
  • Ejecución por lotes
  • Pila doble IPv4 / IPv6
  • Embalaje automático de contenedores

¿Quieres aprender Kubernetes? Mira estos recursos de aprendizaje.

OpenShift

Ofertas de Redhat OpenShift Plataforma de contenedores como servicio (PaaS). Ayuda en la automatización de aplicaciones en recursos seguros y escalables en entornos de nube híbrida. Proporciona plataformas de nivel empresarial para crear, implementar y administrar aplicaciones en contenedores.

Imagen de Openshift

Está construido sobre el motor de Redhat Enterprise Linux y Kubernetes. Openshift tiene varias funcionalidades para administrar clústeres a través de la interfaz de usuario y la CLI. Redhat ofrece Openshift en dos variantes más,

  • Openshift Online - ofrecido como software como servicio (SaaS)
  • OpenShift dedicado - ofrecidos como servicios gestionados

Openshift Origin (Origin Community Distribution) es un proyecto de comunidad ascendente de código abierto que se utiliza en OpenShift Container Platform, Openshift Online y OpenShift Dedicated.

Nomad

Nómada es un orquestador de cargas de trabajo simple, flexible y fácil de usar para implementar y administrar contenedores y aplicaciones no en contenedores en las instalaciones y en la nube a escala. Nomad se ejecuta como un solo binario con una pequeña huella de recursos (35 MB) y es compatible con macOS, Windows y Linux.

Los desarrolladores utilizan infraestructura declarativa como código (IAC) para implementar sus aplicaciones y definir cómo se debe implementar una aplicación. Nomad recupera automáticamente las aplicaciones de las fallas.

Imagen Nomad

Nomad Orquesta aplicaciones de cualquier tipo (no solo contenedores). Proporciona soporte de primera clase para Docker, Windows, Java, VM y más.

Características

  • Simple y confiable
  • Modernice las aplicaciones heredadas sin reescribir
  • Federación fácil a escala
  • Escalabilidad comprobada
  • Multi-nube con facilidad
  • Integraciones nativas con Terraform, Consul y Vault

Docker Swarm

Enjambre Docker utiliza un modelo declarativo. Puede definir el estado deseado del servicio y Docker mantendrá ese estado. Docker Enterprise Edition ha integrado Kubernetes con Swarm. Docker ahora ofrece flexibilidad en la elección del motor de orquestación. La CLI del motor de Docker se usa para crear un enjambre de motores de Docker donde se pueden implementar servicios de aplicaciones.

Imagen de Docker

Comandos de Docker se utilizan para interactuar con el clúster. Las máquinas que se unen al clúster se conocen como nodos y el administrador de Swarm maneja las actividades del clúster.

Enjambre Docker consta de dos componentes principales:

  • Administrador: los nodos de administrador asignan tareas a los nodos trabajadores en el enjambre. Un líder es elegido en base a un algoritmo de consenso de Raft. El líder maneja todas las decisiones de gestión del enjambre y orquestación de tareas para el enjambre.
  • Nodo trabajador: el nodo trabajador recibe tareas del nodo administrador y las ejecuta.

Características

  • Gestión de clústeres integrada con Docker Engine
  • Diseño descentralizado
  • Modelo de servicio declarativo
  • Piel escamosa
  • Reconciliación estatal deseada
  • Redes de hosts múltiples
  • Descubrimiento de servicio
  • Balanceo de carga
  • Seguro por defecto
  • Actualizaciones continuas

Docker Compose

Docker Compose es para definir y ejecutar aplicaciones de varios contenedores que funcionan juntas. Docker-compose describe grupos de servicios interconectados que comparten dependencias de software y están orquestados y escalados juntos.

Puede utilizar un archivo YAML (archivo acoplable) para configurar los servicios de su aplicación. Luego, con un comando docker-compose up, crea e inicia todos los servicios desde su configuración.

Un docker-compose.yml se ve así:

version: '3'
volumes:
  app_data:
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
      - ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data

  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:6.8.0
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
  app:
    depends_on:
      - elasticsearch
    image: asadali08527/app:latest
    ports:
      - 8080:8080
    volumes:
      - app_data:/var/lib/app/

Puedes usar Docker Compose factorizar el código de la aplicación en varios servicios que se ejecutan de forma independiente y que se comunican mediante una red interna. La herramienta proporciona CLI para administrar todo el ciclo de vida de sus aplicaciones. Docker Compose se ha centrado tradicionalmente en el desarrollo y las pruebas workflows, pero ahora se están enfocando en funciones más orientadas a la producción.

El motor de Docker puede ser una instancia independiente aprovisionada con Docker Machine o un clúster de Docker Swarm completo.

Características

  • Múltiples entornos aislados en un solo host
  • Conservar los datos de volumen cuando se crean contenedores
  • Solo vuelva a crear contenedores que hayan cambiado
  • Variables y movimiento de una composición entre entornos

MiniKube

Minikube permite a los usuarios ejecutar Kubernetes localmente. Con Minikube, puede probar aplicaciones localmente dentro de un clúster de Kubernetes de un solo nodo en su computadora personal. Minikube tiene soporte integrado para Panel de Kubernetes.

Minikube ejecuta la última versión estable de Kubernetes y admite las siguientes funciones.

  • Balanceo de carga
  • Multicúmulo
  • Volúmenes persistentes
  • Puertos de nodo
  • ConfigMaps y secretos
  • Container Runtime: Docker, CRI-O y containered
  • Habilitación de CNI (interfaz de red de contenedores)

Marathon

Maratón es para Apache Mesos que tiene la capacidad de organizar aplicaciones y marcos.

Apache Mesos es un administrador de clústeres de código abierto. Mesos es un proyecto de Apache que tiene la capacidad de ejecutar cargas de trabajo en contenedores y no en contenedores. Los componentes principales en un clúster de Mesos son Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks - Frameworks se coordina con el maestro para programar tareas en los nodos de agente. Los usuarios interactúan con el marco de Marathon para programar trabajos.

El programador de Marathon usa ZooKeeper para localizar el maestro actual para enviar tareas. El programador de maratones y el maestro Mesos tienen un maestro secundario en ejecución para garantizar una alta disponibilidad. Los clientes interactúan con Marathon utilizando la API REST.

Características

  • Alta disponibilidad
  • Aplicaciones con estado
  • Interfaz de usuario hermosa y poderosa
  • Limitaciones
  • Descubrimiento de servicios y equilibrio de carga
  • Los controles de salud
  • Suscripción a eventos
  • Métrica
  • API REST

Cloudify

Cloudificar es una herramienta de orquestación en la nube de código abierto para la automatización de la implementación y la gestión del ciclo de vida de contenedores y microservicios. Proporciona características como clústeres a pedido, reparación automática y escalado a nivel de infraestructura. Cloudify puede administrar la infraestructura de contenedores y organizar los servicios que se ejecutan en plataformas de contenedores.

Se puede integrar fácilmente con Docker y administradores de contenedores basados ​​en Docker, incluidos los siguientes.

  • Docker
  • Enjambre Docker
  • Docker Compose
  • Kubernetes
  • Apache Meses

Cloudify puede ayudar a crear, reparar, escalar y derribar grupos de contenedores. La orquestación de contenedores es clave para proporcionar una infraestructura escalable y de alta disponibilidad en la que los administradores de contenedores pueden ejecutar. Cloudify brinda la capacidad de organizar servicios heterogéneos en todas las plataformas. Puede implementar aplicaciones mediante la CLI y Cloudify Manager.

Rancher

Rancher es una plataforma de código abierto que utiliza la orquestación de contenedores conocida como ganado. Le permite aprovechar los servicios de orquestación como Kubernetes, Swarm, Mesos. Rancher proporciona el software necesario para administrar contenedores de modo que las organizaciones no necesiten crear plataformas de servicios de contenedores desde cero utilizando un conjunto distinto de tecnologías de código abierto.

Rancher 2.x permite la administración de clústeres de Kubernetes que se ejecutan en los proveedores especificados por el cliente.

Comenzar con Rancher es un proceso de dos pasos.

Prepare un host de Linux

Prepare un host Linux con Ubuntu 64 o 16.04 de 18.04 bits (u otra distribución de Linux compatible y al menos 4 GB de memoria. Instale una versión compatible de Docker en el anfitrión

Iniciar el servidor

Para instalar y ejecutar Rancher, ejecute el siguiente comando de Docker en su host:

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

La interfaz de usuario de rancher permite la gestión de miles de clústeres y nodos de Kubernetes.

Containership

Containership es para permitir la implementación y la gestión de la infraestructura Kubernetes de varias nubes. Es flexible para operar en entornos locales, de nube privada y públicos desde una sola herramienta. Permite el aprovisionamiento, la gestión y la supervisión de sus clústeres de Kubernetes en todos los principales proveedores de la nube.

Containership se construye con herramientas nativas de la nube, como Terraform para el aprovisionamiento, Prometeo para monitoreo y Calico para gestión de redes y políticas. Está construido sobre vainilla Kubernetes. La plataforma Containership ofrece un panel intuitivo, así como una potente API REST para una automatización compleja.

Características

  • Panel de control multicloud
  • Registros de auditoria
  • Compatibilidad con instancias de GPU
  • Actualizaciones no disruptivas
  • Maestros programables
  • Métricas integradas
  • Registro en tiempo real
  • Implementaciones sin tiempo de inactividad
  • Soporte de almacenamiento persistente
  • Soporte de registro privado
  • Ajuste de escala automático de cargas de trabajo
  • Gestión de claves SSH

AZK

AZK es una herramienta de orquestación de código abierto para entornos de desarrollo a través de un archivo de manifiesto (Azkfile.js), que ayuda a los desarrolladores a instalar, configurar y ejecutar herramientas de uso común para desarrollar aplicaciones web con diferentes tecnologías de código abierto.

AZK usa contenedores en lugar de máquinas virtuales. Los contenedores son como máquinas virtuales, con mejor rendimiento y menor consumo de recursos físicos.

Los archivos Azkfile.js se pueden reutilizar para agregar nuevos componentes o crear nuevos desde cero. Se puede compartir, lo que asegura la paridad total entre los entornos de desarrollo en las máquinas de diferentes programadores y reduce las posibilidades de errores durante la implementación.

GKE

GKE proporciona una solución totalmente administrada para la orquestación de aplicaciones de contenedores en Google Cloud Platform. Los clústeres de GKE funcionan con la tecnología de Kubernetes. Puede interactuar con los clústeres mediante la CLI de Kubernetes. Los comandos de Kubernetes se pueden usar para implementar y administrar aplicaciones, realizar tareas de administración, establecer políticas y monitorear el estado de las cargas de trabajo implementadas.

Imagen de GCP

Las funciones de administración avanzada de Google Cloud también están disponibles con los clústeres de GKE como el equilibrio de carga de Google Cloud, los grupos de nodos, el ajuste de escala automático de los nodos, las actualizaciones automáticas, la reparación automática de nodos, el registro y la supervisión con el paquete de operaciones de Google Cloud.

Google Cloud proporciona herramientas de CI / CD para ayudarlo a crear y entregar contenedores de aplicaciones. Puede usar Cloud Build para crear imágenes de contenedor (como Docker) a partir de una variedad de repositorios de código fuente y Container Registry para almacenar sus imágenes de contenedor.

GKE es una solución lista para la empresa con plantillas de implementación prediseñadas.

¿Interesado en aprender GKE? Mira esto curso de principiante.

AKS

AKS es un servicio de Kubernetes totalmente administrado ofrecido por Azure, que ofrece Kubernetes sin servidor, seguridad y gobernanza. AKS administra su clúster de Kubernetes y le permite implementar fácilmente aplicaciones en contenedores. AKS configura automáticamente todos los nodos y maestros de Kubernetes. Solo necesita administrar y mantener los nodos del agente.

Imagen de Azure

AKS es gratis; solo paga por los nodos de agente dentro de su clúster y no por los maestros. Puede crear un clúster de AKS en Azure Portal o mediante programación. Azure también admite características adicionales como redes avanzadas, integración de Azure Active Directory y supervisión mediante Azure Monitor.

AKS también admite contenedores de Windows Server. Su clúster y el rendimiento de la aplicación implementada se pueden monitorear desde Azure Monitor. Los registros se almacenan en un área de trabajo de Azure Log Analytics.

AKS ha sido certificado como compatible con Kubernetes.

AWS EKS

EKS de AWS es un servicio de Kubernetes completamente administrado. AWS le permite ejecutar su clúster de EKS mediante AWS Fragrate, que es una computación sin servidor para contenedores. Fragrance elimina la necesidad de aprovisionar y administrar servidores, lo que permite pagar por recurso por aplicación.

AWS permite el uso de funciones adicionales con EKS, como Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups y Access Management (IAM), monitorear, escalar y aplicaciones de equilibrio de carga. EKS se integra con la malla de aplicaciones de AWS y proporciona una experiencia nativa de Kubernetes. EKS ejecuta la última versión de Kubernetes y está certificado en conformidad con Kubernetes.

Conclusión

Al final, espero que la lista anterior haya brindado una comprensión justa de las diversas herramientas de orquestación de contenedores y ahora, dependiendo del caso de uso, será más fácil optar por la mejor.

A continuación, averigüe Software de gestión de Kubernetes.

Gracias a nuestros patrocinadores
Más lecturas excelentes sobre DevOps
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder