Avant de présenter Azure Kubernetes Service en tant que produit Azure, il faut s’intéresser à l’outil Kubernetes lui même.
Kubernetes est une plateforme open source d’orchestration de containers créée par Google, puis offert à la Cloud Native Computing Foundation en 2015.
Kubernetes permet d’automatiser le déploiement et la gestion d’applications conteneurisées. K8s gère le cycle de vie des services en proposant scalabilité et haute disponibilité.
Kubernetes peut fonctionner avec n’importe quel système de container conforme au standard Open Container Initiative et notamment le plus connu d’entre eux : Docker.
Architecture de Kubernetes
Master : Le Kubernetes master est responsable du maintien de l’état souhaité pour votre cluster. Il gère la disponibilité des nodes.
etcd : les données de configuration du cluster. Il représente l’état du cluster à n’importe quel instant.
Node : Machine virtuelle ou physique permettant l’exécution de pods.
Kubelet : il est responsable de l’état d’exécution de chaque nœud. Il prend en charge le démarrage, l’arrêt, et la maintenance des conteneurs d’applications organisés en pods.
kubeproxy : Il est responsable d’effectuer le routage du trafic vers le conteneur approprié.
Pod : unité d’exécution de K8s. Contient un ou plusieurs conteneur. Un Pod représente un processus en cours d’exécution dans votre cluster.
Kubernetes dans Azure
En mars 2016, Microsoft lance Azure Container Service. ACS est une offre PAAS, aujourd’hui obsolète, permettant de déployer rapidement un cluster Kubernetes, DC/OS ou Docker Swarm pour provisionner et manager des conteneur Docker.
Aussi, compte tenu de l’engouement autour de Kubernetes, Microsoft a décidé avec AKS (Azure Kubernetes Services) d’investir fortement sur l’intégration de Kubernetes dans Azure et d’en faire un service managé. Azure gère pour nous les tâches critiques telles que l’analyse de l’intégrité et la maintenance. Nous devons uniquement nous soucier des nœuds de notre cluster.
Grâce à AKS, plateforme de choix pour la mise en oeuvre de microservices, Microsoft nous propose dans Azure une plateforme agile et robuste pour déployer et manager nos containers. En parallèle des outils sont mis à disposition des développeurs pour faciliter leur utilisation de la plateforme.
AKS et Visual Studio
Par exemple, Visual Studio Kubernetes Tools est un ensemble d’outil pour simplifier l’utilisation de Kubernetes dans Visual Studio. Une fois les outils installés, vous pouvez créer un nouveau projet “Application conteneur pour Kubernetes” ou ajouter le support de Kubernetes à une application Web .NET Core existante.
Entre autre, il est également possible de déployer une solution sur un cluster Azure Kubernetes Services directement à partir de Visual Studio via l’option “Publier vers Azure AKS”.
Enfin, une dernière fonctionnalité plus qu’intéressante : Azure Dev Spaces. Cet outil permet depuis VS d’exécuter et de déboguer les conteneurs dans AKS.
Il permet d’éditer et déboguer votre code comme si tout fonctionnait localement sur votre machine. Tout cela sans même devoir installer Docker ou Kubernetes sur votre machine locale …
A très vite pour la mise en oeuvre 🙂
Une réponse sur “Introduction à Azure Kubernetes Service”