Introduction à Azure Kubernetes Service (AKS)

Via son offre de Kubernetes as a Service, Microsoft a choisi de tout encapsuler et de proposer un portail qui permet d'afficher toutes propriétés liées à un cluster AKS. Les puristes Linux ne vont pas aimer.

Le développement Kubernetes sous Windows étant compliqué, Microsoft avec Azure Kubernetes Service (AKS) a voulu prendre la main sur Kubernetes. Hormis l’aspect un peu magique et lisse d’Azure, cela permet de simplifier et de déléguer une partie du travail à Azure directement. Le but premier d’AKS est de simplifier le déploiement d’un cluster Kubernetes en délégant la complexité et la surcharge opérationnelle de la gestion de ce cluster au cloud de Microsoft.

Qu’est-ce qu’AKS ?

Un service Azure conçu pour déployer un cluster Kubernetes managé facilitant le déploiement et la gestion des applications conteneurisées. Azure va donc gérer pour nous les tâches dites critiques comme l’analyse et la maintenance. Encore une fois le but étant de simplifier les actions que le développeur sera amenées à réaliser.

Qu’est-ce que Kubernetes ?

C’est un ensemble de services réseau qui permet de lancer des pods Docker en cluster (via des replicaset) avec une gestion du load balancing (ou répartition de charge). Pour résumer cela plus simplement, c’est un orchestrateur.

Qu’est-ce qu’Azure Container Registry  ou une Regsitry ?

Il permet de stocker les images Docker privées qui sont déployées sur le cluster. Une Registry est une sorte d’espace de stockage d’images.

Qu’est-ce qu’Helm ?

Petit disclaimer: utiliser Helm n’est pas obligatoire avec Kubernetes, vous pouvez choisir de faire sans.

Helm est un gestionnaire de paquets pour Kubernetes qui va permettre d’installer et de gérer le cycle de vie de vos applications. Il permet de regrouper les objets Kubernetes en une seule unité que l’on peut par la suite publier, déployer, mettre à jour et dont on peut contrôler la version.

Dans notre exemple il va nous permettre de déployer notre application, grâce à la génération d’un dossier chart qui contiendra lui-même des fichiers de configuration (extension .yaml).

Voici un exemple d’un des fichiers : values.yaml (présent dans le dossier Chart) :

Comment fonctionne AKS avec un projet Web API .NET Core 3.1 ?

Il y a différentes étapes à respecter pour faire fonctionner son projet avec AKS. Néanmoins, n’ayez pas peur, ça peut paraître effrayant, mais c’est trivial quand on prend le temps de lire correctement les étapes et consulter les différentes documentations.

Voici les différentes étapes pour mettre en place un projet Web API .NET Core avec AKS :

  •           Création d’une Web API .NET Core 3.1 avec un container Docker sous Linux,
  •           Création d’un Resource Group,
  •           Build de l’image Docker,
  •           Création de la Registry dans Azure Container Registry (ACR),
  •           Tag de l’image Docker avec la Registry,
  •           Push de l’image Docker dans la Registry,
  •           Création du cluster AKS,
  •           Installation de Helm sous Windows,
  •           Création des fichiers avec Helm,
  •           Déploiement dans AKS via Helm,
  •           Exposition du déploiement en service via la commande suivante:

kubectl expose deployment dockerwithlinux-deployment --type=LoadBalancer --name=image_name-service

  •           Récupération de l’adresse IP externe du service, via la commande suivante :

kubectl get service dockerwithlinux-service (elle permet de récupérer notre service ainsi que l’IP externe. Et c’est grâce à cela que nous allons pouvoir tester notre service !)

  •            Test du service,

AKS permet de mettre en oeuvre des architectures à base de micro-services : c'est l'avenir !