(DÉPRÉCIÉ) Introduction aux solutions d’hébergement de conteneurs Docker avec Azure Container Service

Avertissement

Le service Azure Container Service (ACS) est déprécié. Aucune nouvelle fonctionnalité ni fonction n’est ajoutée à ACS. L’ensemble des API, de l’utilisation du portail, des commandes CLI et de la documentation sont marquées comme dépréciées.

Pour plus d’informations, consultez l’annonce de la dépréciation d’Azure Container Service sur Azure.com.

Nous vous recommandons de déployer une des solutions suivantes de la Place de marché Azure :

Si vous souhaitez utiliser Kubernetes, consultez Azure Kubernetes Service.

Azure Container Service simplifie la création, la configuration et la gestion d’un cluster de machines virtuelles préconfigurées pour exécuter des applications en conteneur. Ce service utilise une configuration optimisée d’outils de planification et d’orchestration open source bien connus. Il vous permet d’exploiter vos compétences existantes ou de faire appel à une large communauté d’experts toujours plus nombreux pour déployer et gérer des applications en conteneur sur Microsoft Azure.

Azure Container Service offre un moyen de gérer les applications en conteneur sur plusieurs hôtes dans Azure.

Azure Container Service utilise le format de conteneur Docker pour assurer la portabilité complète de vos conteneurs d’application. Par ailleurs, il prend en charge votre choix d’utiliser Marathon et DC/OS, Docker Swarm ou Kubernetes pour vous permettre de mettre à l’échelle ces applications pour des milliers, voire des dizaines de milliers de conteneurs.

En utilisant Azure Container Service, vous pouvez tirer parti des fonctionnalités d’entreprise d’Azure tout en conservant la portabilité des applications, notamment au niveau des couches d’orchestration.

Utilisation d’Azure Container Service

L’objectif d’Azure Container Service est de proposer un environnement d’hébergement de conteneurs basé sur des outils et des technologies open source déjà bien connus des utilisateurs. À cette fin, nous exposons les points de terminaison des API standard pour l’orchestrator de votre choix (DC/OS, Docker Swarm ou Kubernetes). Vous pouvez alors exploiter n’importe quel logiciel capable de communiquer avec ces points de terminaison. Par exemple, dans le cas du point de terminaison Docker Swarm, vous pouvez choisir d’utiliser l’interface de ligne de commande Docker. Pour DC/OS, vous pouvez choisir l’interface CLI DCOS. Pour Kubernetes, vous pouvez choisir kubectl.

Création d’un cluster Docker en utilisant Azure Container Service

Pour commencer à utiliser Azure Container Service, vous déployez un cluster Azure Container Service via le portail (recherchez Azure Container Service dans la Place de marché), à l’aide d’un modèle Azure Resource Manager (Docker Swarm, DC/OS ou Kubernetes) ou avec Azure CLI. Les modèles de démarrage rapide fournis peuvent être modifiés pour inclure une configuration Azure supplémentaire ou avancée. Pour plus d’informations, consultez Déployer un cluster Azure Container Service.

Déploiement d’une application

Azure Container Service propose le choix entre Docker Swarm, DC/OS ou Kubernetes pour l’orchestration. Le déploiement de votre application dépend de votre choix en termes d’orchestrateur.

Utilisation de DC/OS

DC/OS est un système d’exploitation distribué basé sur le noyau de systèmes distribués Apache Mesos. Hébergé par l’Apache Software Foundation, Apache Mesos répertorie certains des plus grands noms des technologies de l’information en tant qu’utilisateurs et contributeurs.

Azure Container Service configuré pour DC/OS présentant des agents et des maîtres.

DC/OS et Apache Mesos intègrent un impressionnant ensemble de fonctionnalités :

  • Extensibilité éprouvée
  • Serveurs principaux et secondaires répliqués à tolérance de panne utilisant Apache ZooKeeper
  • Prise en charge des conteneurs de format Docker
  • Isolement natif entre les tâches avec des conteneurs Linux
  • Planification de ressources multiples (mémoire, UC, disque et ports)
  • API Java, Python et C++ pour le développement de nouvelles applications parallèles
  • Interface utilisateur web pour l’affichage de l’état du cluster

Par défaut, le système DC/OS exécuté sur le service de conteneur Azure inclut la plateforme d’orchestration Marathon pour la planification des charges de travail. Toutefois, l’ensemble de services Mesosphere Universe est inclus avec le déploiement DC/OS d’ACS et il peut être ajouté à votre service. Ces services incluent Spark, Hadoop, Cassandra et bien plus encore.

DC/OS Universe dans Azure Container Service

Utilisation de Marathon

Marathon est un système d’initialisation et de contrôle à l’échelle du cluster destiné à des services de groupes de contrôle (ou « cgroups ») ou, dans le cas d’Azure Container Service, des conteneurs de format Docker. Marathon propose une interface utilisateur web à partir de laquelle vous pouvez déployer vos applications. Vous pouvez y accéder avec une URL de type http://DNS_PREFIX.REGION.cloudapp.azure.com où DNS_PREFIX et REGION sont définis au moment du déploiement. Vous pouvez aussi fournir votre propre nom DNS. Pour plus d’informations sur l’exécution d’un conteneur à l’aide de l’interface utilisateur web Marathon, consultez Gestion de conteneur DC/OS via l’interface utilisateur web Marathon.

Liste des applications Marathon

Vous pouvez également utiliser des API REST pour communiquer avec Marathon. Plusieurs bibliothèques clientes sont disponibles pour chaque outil. Elles couvrent une variété de langages ; vous pouvez utiliser le protocole HTTP dans n’importe quel langage. De plus, de nombreux outils DevOps bien connus prennent en charge Marathon. Votre équipe en charge des opérations profite ainsi d’une flexibilité maximale quand vous utilisez un cluster Azure Container Service. Pour plus d’informations sur l’exécution d’un conteneur à l’API REST Marathon, consultez Gestion de conteneur DC/OS via l’API REST Marathon.

Utilisation de Docker Swarm

Docker Swarm assure un clustering natif pour Docker. Étant donné que Docker Swarm dessert l’API Docker standard, tout outil qui communique déjà avec un démon Docker peut utiliser Swarm pour évoluer de façon transparente vers plusieurs hôtes sur Azure Container Service.

Azure Container Service configuré pour utiliser Swarm.

Notes

L’orchestrateur Docker Swarm d’Azure Container Service utilise Swarm autonome hérité. Pour le moment, le mode Swarm intégré (dans Docker 1.12 et supérieur) n’est pas un orchestrateur pris en charge dans Azure Container Service. Si vous souhaitez déployer un cluster en mode Swarm dans Azure, utilisez le moteur ACS open source, un modèle de démarrage rapide bénéficiant de la contribution de la communauté ou une solution Docker dans la Place de marché Azure.

Les outils pris en charge pour la gestion des conteneurs sur un cluster Swarm incluent, sans s’y limiter, les suivants :

  • Dokku
  • Interface de ligne de commande Docker et Docker Compose
  • Krane
  • Jenkins

Utilisation de Kubernetes

Kubernetes est un outil orchestrator de conteneur populaire, open source, à l’échelle de la production. Kubernetes automatise le déploiement, la mise à l’échelle et la gestion des applications en conteneur. Étant donné qu’il s’agit d’une solution Open Source pilotée par la communauté Open Source, elle s’exécute de manière transparente sur Azure Container Service et peut être utilisée pour déployer des conteneurs à grande échelle sur Azure Container Service.

Azure Container Service configuré pour utiliser Kubernetes.

Il possède un jeu complet de fonctionnalités, notamment :

  • Mise à l’échelle horizontale
  • Détection de service et équilibrage de charge
  • Secrets et gestion de la configuration
  • API basée sur les déploiements et restaurations automatisés
  • Autoréparation

Vidéos

Prise en main d’Azure Container Service (101) :

Création d’applications à l’aide du service de conteneur Azure (Build 2016)

Étapes suivantes

Déployez un cluster de service de conteneur à l’aide du portail ou d’Azure CLI.