Parlons de certains des outils d'orchestration de conteneurs populaires disponibles sur le marché.

Qu'est-ce qu'une orchestration de conteneurs?

Plateformes de conteneurs comme Docker sont très populaires ces jours-ci pour créer des packages d'applications basées sur une architecture de microservices. Les conteneurs peuvent être rendus hautement évolutifs, qui peuvent être créés à la demande. Bien que ce soit bon pour quelques conteneurs, mais imaginez que vous en avez des centaines.

Il devient extrêmement difficile de gérer le cycle de vie du conteneur et sa gestion lorsque le nombre augmente dynamiquement avec la demande.

L'orchestration de conteneurs résout le problème en automatisant la planification, le déploiement, l'évolutivité, l'équilibrage de charge, la disponibilité et la mise en réseau des conteneurs. L'orchestration de conteneurs est l'automatisation et la gestion du cycle de vie des conteneurs et des services.

Il s'agit d'un processus de gestion et d'organisation de plusieurs conteneurs et d'une architecture de microservices à grande échelle.

Heureusement, il existe de nombreux outils d'orchestration de conteneurs disponibles sur le marché.

Explorons-les!

Kubernetes

Vous l'avez deviné, n'est-ce pas?

Kubernetes est une plate-forme open source qui a été initialement conçue par Google et maintenant maintenue par la Cloud Native Computing Foundation. Kubernetes prend en charge à la fois la configuration déclarative et l'automatisation. Il peut aider à automatiser le déploiement, la mise à l'échelle et la gestion de la charge de travail et des services conteneurisés.

Image de Kubernetes.io

L'API Kubernetes aide à établir la communication entre les utilisateurs, les composants du cluster et les composants tiers externes. Le plan de contrôle Kubernetes et les nœuds s'exécutent sur un groupe de nœuds qui forment ensemble le cluster. La charge de travail de l'application consiste en un ou plusieurs pods qui s'exécutent sur des nœuds de travail. Le plan de contrôle gère les pods et les noeuds worker.

Des entreprises comme Babylon, Booking.com et AppDirect utilisent largement Kubernetes.

En vedette

  • Découverte de services et équilibrage de charge
  • Orchestration du stockage
  • Déploiements et annulations automatisés
  • Mise à l'échelle horizontale
  • Gestion des secrets et de la configuration
  • L'auto-guérison
  • Exécution par lots
  • Double pile IPv4 / IPv6
  • Emballage automatique des bacs

Vous voulez apprendre Kubernetes? Découvrez ces ressources d'apprentissage.

OpenShift

Offres Redhat OpenShift Container Platform as a Service (PaaS). Il aide à l'automatisation des applications sur des ressources sécurisées et évolutives dans des environnements de cloud hybride. Il fournit des plates-formes de niveau entreprise pour la création, le déploiement et la gestion d'applications conteneurisées.

Image de Openshift

Il est basé sur le moteur Redhat Enterprise Linux et Kubernetes. OpenShift dispose de diverses fonctionnalités pour gérer les clusters via l'interface utilisateur et la CLI. Redhat propose OpenShift dans deux autres variantes,

  • OpenShift en ligne - offert en tant que logiciel en tant que service (SaaS)
  • OpenShift dédié - offerts en tant que services gérés

OpenShift Origin (Origin Community Distribution) est un projet communautaire open source en amont qui est utilisé dans OpenShift Container Platform, Openshift Online et OpenShift Dedicated.

Nomad

Nomade est un orchestrateur de charge de travail simple, flexible et facile à utiliser pour déployer et gérer des conteneurs et des applications non conteneurisées sur site et dans des clouds à grande échelle. Nomad s'exécute en tant que binaire unique avec une faible empreinte de ressources (35 Mo) et est pris en charge sur macOS, Windows et Linux.

Les développeurs utilisent une infrastructure déclarative en tant que code (IaC) pour déployer leurs applications et définir comment une application doit être déployée. Nomad récupère automatiquement les applications des échecs.

Image de Nomad

Nomad Orchestrate des applications de tout type (pas seulement des conteneurs). Il fournit une prise en charge de première classe pour Docker, Windows, Java, les machines virtuelles, etc.

En vedette

  • Simple et fiable
  • Moderniser les applications héritées sans réécriture
  • Fédération facile à grande échelle
  • Evolutivité éprouvée
  • Multi-Cloud avec facilité
  • Intégrations natives avec Terraform, Consul et Vault

Docker Swarm

Docker Swarm utilise un modèle déclaratif. Vous pouvez définir l'état souhaité du service et Docker conservera cet état. Docker Enterprise Edition a intégré Kubernetes à Swarm. Docker offre désormais une flexibilité dans le choix du moteur d'orchestration. L'interface de ligne de commande du moteur Docker est utilisée pour créer un essaim de moteurs Docker où les services d'application peuvent être déployés.

Image de Docker

Commandes Docker sont utilisés pour interagir avec le cluster. Les machines qui rejoignent le cluster sont appelées nœuds et le gestionnaire Swarm gère les activités du cluster.

Docker Swarm se compose de deux éléments principaux:

  • Manager - les nœuds de gestionnaire attribuent des tâches aux nœuds de travail dans l'essaim. Un leader est élu sur la base d'un algorithme de consensus Raft. Le chef gère toutes les décisions de gestion de l'essaim et d'orchestration des tâches pour l'essaim.
  • Nœud de travail - Le nœud de travail reçoit les tâches du nœud de gestionnaire et les exécute.

En vedette

  • Gestion des clusters intégrée à Docker Engine
  • Conception décentralisée
  • Modèle de service déclaratif
  • écaillage
  • Réconciliation d'état souhaitée
  • Réseau multi-hôte
  • Découverte de service
  • L'équilibrage de charge
  • Sécurisé par défaut
  • Mises à jour progressives

Docker Compose

Docker Compose est pour définir et exécuter des applications multi-conteneurs qui fonctionnent ensemble. Docker-compose décrit des groupes de services interconnectés qui partagent des dépendances logicielles et sont orchestrés et mis à l'échelle ensemble.

Vous pouvez utiliser un fichier YAML (fichier docker) pour configurer les services de votre application. Ensuite, avec une commande docker-compose up, vous créez et démarrez tous les services à partir de votre configuration.

Un docker-compose.yml ressemble à ceci:

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/

Vous pouvez utiliser Docker Compose pour factoriser le code de l'application dans plusieurs services exécutés indépendamment qui communiquent à l'aide d'un réseau interne. L'outil fournit une CLI pour gérer l'ensemble du cycle de vie de vos applications. Docker Compose s'est traditionnellement concentré sur le développement et les tests workflows, mais ils se concentrent désormais sur des fonctionnalités plus orientées vers la production.

Le moteur Docker peut être une instance autonome provisionnée avec Docker Machine ou un cluster Docker Swarm entier.

En vedette

  • Plusieurs environnements isolés sur un seul hôte
  • Préserver les données de volume lors de la création des conteneurs
  • Recréez uniquement les conteneurs qui ont changé
  • Variables et déplacement d'une composition entre environnements

MiniKube

Minikube permet aux utilisateurs d'exécuter Kubernetes localement. Avec Minikube, vous pouvez tester des applications localement dans un cluster Kubernetes à nœud unique sur votre ordinateur personnel. Minikube a un support intégré pour le Tableau de bord Kubernetes.

Minikube exécute la dernière version stable de Kubernetes et prend en charge les fonctionnalités suivantes.

  • Load Balancing
  • Multicluster
  • Volumes persistants
  • NodePorts
  • ConfigMaps et Secrets
  • Container Runtime: Docker, CRI-O et confiné
  • Activation de CNI (Container Network Interface)

Marathon

Marathon est pour Apache Mesos qui a la capacité d'orchestrer des applications ainsi que des frameworks.

Apache Mesos est un gestionnaire de cluster open source. Mesos est un projet d'Apache qui a la capacité d'exécuter des charges de travail conteneurisées et non conteneurisées. Les principaux composants d'un cluster Mesos sont les nœuds d'agent Mesos, Mesos Master, ZooKeeper, Frameworks - Les cadres se coordonnent avec le maître pour planifier les tâches sur les nœuds d'agent. Les utilisateurs interagissent avec le framework Marathon pour planifier des travaux.

Le planificateur Marathon utilise ZooKeeper pour localiser le maître actuel pour soumettre des tâches. Le planificateur Marathon et le maître Mesos ont un maître secondaire pour assurer une haute disponibilité. Les clients interagissent avec Marathon à l'aide de l'API REST.

En vedette

  • Haute Disponibilité
  • Applications avec état
  • Belle et puissante interface utilisateur
  • contraintes
  • Découverte de services et équilibrage de charge
  • Bilans de santé
  • Abonnement à l'événement
  • Métrique
  • API REST

Cloudify

Cloudifier est un outil d'orchestration cloud open source pour l'automatisation du déploiement et la gestion du cycle de vie des conteneurs et des microservices. Il fournit des fonctionnalités telles que les clusters à la demande, la réparation automatique et la mise à l'échelle au niveau de l'infrastructure. Cloudify peut gérer l'infrastructure de conteneurs et orchestrer les services qui s'exécutent sur des plates-formes de conteneurs.

Il peut être facilement intégré aux gestionnaires de conteneurs basés sur Docker et Docker, y compris les suivants.

  • Docker
  • Docker Swarm
  • Docker Compose
  • Kubernetes
  • Apache Mésos

Cloudify peut aider à créer, réparer, mettre à l'échelle et supprimer des clusters de conteneurs. L'orchestration de conteneurs est essentielle pour fournir une infrastructure évolutive et hautement disponible sur laquelle les gestionnaires de conteneurs peuvent s'exécuter. Cloudify offre la possibilité d'orchestrer des services hétérogènes sur plusieurs plates-formes. Vous pouvez déployer des applications à l'aide de la CLI et de Cloudify Manager.

Rancher

Rancher est une plateforme open source qui utilise l'orchestration de conteneurs connue sous le nom de bétail. Il vous permet de tirer parti des services d'orchestration tels que Kubernetes, Swarm, Mesos. Rancher fournit le logiciel requis pour gérer les conteneurs afin que les organisations n'aient pas besoin de créer des plates-formes de services de conteneurs à partir de zéro en utilisant un ensemble distinct de technologies open source.

Rancher 2.x permet la gestion des clusters Kubernetes exécutés sur les fournisseurs spécifiés par le client.

Démarrer avec Rancher est un processus en deux étapes.

Préparer un hôte Linux

Préparez un hôte Linux avec Ubuntu 64 ou 16.04 18.04 bits (ou une autre distribution Linux prise en charge, et au moins 4 Go de mémoire. Installez une version prise en charge de Docker sur l'hôte.

Démarrez le serveur

Pour installer et exécuter Rancher, exécutez la commande Docker suivante sur votre hôte:

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

L'interface utilisateur du rancher permet la gestion de milliers de clusters et de nœuds Kubernetes.

Containership

Containership permet de déployer et de gérer une infrastructure Kubernetes multi-cloud. Il est flexible pour fonctionner dans les environnements de cloud public, privé et sur site à partir d'un seul outil. Il permet de provisionner, de gérer et de surveiller vos clusters Kubernetes sur tous les principaux fournisseurs de cloud.

Containership est construit à l'aide d'outils cloud natifs, tels que Terraform pour l'approvisionnement, Prométhée pour la surveillance et Calico pour le réseautage et la gestion des politiques. Il est construit sur Kubernetes à la vanille. La plateforme Containership offre un tableau de bord intuitif, ainsi qu'une puissante API REST pour une automatisation complexe.

En vedette

  • Tableau de bord multicloud
  • Journaux d'audit
  • Prise en charge des instances GPU
  • Mises à niveau sans interruption
  • Masters programmables
  • Mesures intégrées
  • Journalisation en temps réel
  • Déploiements sans temps d'arrêt
  • Prise en charge du stockage persistant
  • Prise en charge du registre privé
  • Autoscaling de la charge de travail
  • Gestion des clés SSH

AZK

AZK est un outil d'orchestration open-source pour les environnements de développement via un fichier manifeste (le Azkfile.js), qui aide les développeurs à installer, configurer et exécuter des outils couramment utilisés pour développer des applications Web avec différentes technologies open source.

AZK utilise des conteneurs au lieu de machines virtuelles. Les conteneurs sont comme des machines virtuelles, avec de meilleures performances et une consommation moindre de ressources physiques.

Les fichiers Azkfile.js peuvent être réutilisés pour ajouter de nouveaux composants ou en créer de nouveaux à partir de zéro. Il peut être partagé, ce qui assure une parité totale entre les environnements de développement dans les différentes machines des programmeurs et réduit les risques de bogues lors du déploiement.

GKE

GKE fournit une solution entièrement gérée pour l'orchestration des applications de conteneur sur Google Cloud Platform. Les clusters GKE sont alimentés par Kubernetes. Vous pouvez interagir avec les clusters à l'aide de l'interface de ligne de commande Kubernetes. Les commandes Kubernetes peuvent être utilisées pour déployer et gérer des applications, effectuer des tâches d'administration, définir des stratégies et surveiller l'intégrité des charges de travail déployées.

Image par GCP

Des fonctionnalités de gestion avancées de Google Cloud également disponibles avec les clusters GKE comme l'équilibrage de charge de Google Cloud, les pools de nœuds, l'autoscaling des nœuds, les mises à niveau automatiques, la réparation automatique des nœuds, la journalisation et la surveillance avec la suite d'opérations de Google Cloud.

Google Cloud fournit des outils CI / CD pour vous aider à créer et à diffuser des conteneurs d'applications. Vous pouvez utiliser Cloud Build pour créer des images de conteneur (telles que Docker) à partir de divers référentiels de code source et Container Registry pour stocker vos images de conteneur.

GKE est une solution prête pour l'entreprise avec des modèles de déploiement prédéfinis.

Vous souhaitez apprendre GKE? Regarde ça cours débutant.

AKS

AKS est un service Kubernetes entièrement géré proposé par Azure, qui offre Kubernetes sans serveur, la sécurité et la gouvernance. AKS gère votre cluster Kubernetes et vous permet de déployer facilement des applications conteneurisées. AKS configure automatiquement tous les maîtres et nœuds Kubernetes. Il vous suffit de gérer et de maintenir les nœuds d'agent.

Image par Azure

AKS est gratuit; vous ne payez que pour les nœuds d'agent au sein de votre cluster et non pour les maîtres. Vous pouvez créer un cluster AKS dans le portail Azure ou par programme. Azure prend également en charge des fonctionnalités supplémentaires telles que la mise en réseau avancée, l'intégration d'Azure Active Directory et la surveillance à l'aide d'Azure Monitor.

AKS prend également en charge les conteneurs Windows Server. Les performances de son cluster et de ses applications déployées peuvent être surveillées à partir d'Azure Monitor. Les journaux sont stockés dans un espace de travail Azure Log Analytics.

AKS a été certifié conforme à Kubernetes.

AWS EKS

AWS EKS est un service Kubernetes entièrement géré. AWS vous permet d'exécuter votre cluster EKS à l'aide d'AWS Fragrate, qui est un calcul sans serveur pour les conteneurs. Fragrance élimine le besoin de provisionner et de gérer des serveurs, permettant de payer par ressource et par application.

AWS permet l'utilisation de fonctionnalités supplémentaires avec EKS telles que Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups et Access Management (IAM), surveiller, mettre à l'échelle et équilibrer la charge des applications. EKS s'intègre à AWS App Mesh et offre une expérience native Kubernetes. EKS exécute le dernier Kubernetes et est certifié conforme à Kubernetes.

Conclusion

En fin de compte, j'espère que la liste ci-dessus a donné une bonne compréhension des différents outils d'orchestration de conteneurs, et maintenant, en fonction du cas d'utilisation, il sera plus facile d'opter pour le meilleur.

Ensuite, découvrez Logiciel de gestion Kubernetes.