Découverte de AKS

Cet article a pour but de présenter la solution Kubernetes de Microsoft (AKS), ce service est facilement exploitable et permet ainsi de se concentrer sur le développement de ses applications et non sur la mise en place de Kubernetes.

À savoir que Microsoft a rejoint la CNCF (Cloud Native Computing Foundation) en 2018 et a également fait l'acquisition de Deis, une entreprise à la base de plusieurs outils Kubernetes open source.

L’offre service managé signifie qu’Azure gère pour nous les nœuds Master.  Nous devons uniquement nous soucier des nœuds Worker concernant notre application.

Les ressources Azure AKS sont disponible ici : https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest#az-aks-create

La solution Kubernetes  permet d’automatiser le déploiement et la gestion d’applications en microservice (Docker) tout en proposant de la scalabilité.

Concepts de base de Kubernetes pour AKS (Azure Kubernetes Service ...

Mise en place d’un cluster AKS

Pour créer notre cluster, nous allons utiliser le portail Azure (https://portal.azure.com) en cliquant sur Kubernetes Service comme ci-dessous.

1 1024x436 - Debugger son cluster Kubernetes dans Azure

Il faut ensuite renseigner les différents champs demandés :

  • groupe de ressource,
  • nom du cluster
  • région
  • préfixe DNS
Créer un cluster AKS - fournir des informations de base

Après validation de la configuration, le déploiement du cluster est en cours

Une image contenant capture d’écran

Description générée automatiquement

Il est bien entendu possible de déployer votre cluster Kubernetes par Terraform

https://www.terraform.io/docs/providers/azurerm/r/kubernetes_cluster.html

Pour vous connectez sur votre Cluster, Installez la CLI sur votre poste en ouvrant PowerShell puis en exécutant la commande suivante :

az aks install-cli

Connectez-vous ensuite sur votre cluster

az aks get-credentials --resource-group {Resource group name} --name {Cluster name}

Ci-dessous quelques exemples de lignes de commande pour manager votre cluster AKS :

La commande suivante permet de déployer un pod reverse proxy nginx sur un node

kubectl run nginx --image=nginx --replicas=3

La commande suivante permet de lister vos nodes :

$ kubectl get nodes

La commande suivante permet d’avoir un détail de vos nodes

kubectl describe nodes

La commande suivante permet de scaler vos nodes

az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>

La commande suivante permet de scaler les pods

kubectl autoscale deployment <your deployment> --cpu-percent=50 --min=3 --max=10

Les commandes kubectl permettent de manager les ressources Kubernetes comme pour n’importe quel autre environnement Kubernetes, tandis que les commandes AZ permettent de gérer vos ressources Azure comme vos ressources groupe.

L'avantage d'utiliser Kubernetes sur Azure est de pouvoir bénéficier de la sécurité du Cloud. Votre cluster Kubernetes peut être supervisé par Azure Security Center.

Les logs et l'état de santé de votre cluster ainsi que les préconisations de Microsoft sont visibles dans une seule console.

Ci-dessous le schéma de principe de déploiement d’une application en microservice via GitHub, Azure Devops et AKS dans le cloud Azure.

Architecture Diagram
  1. Le développeur, utilise son IDE tel que Visual Studio pour valider un changement sur GitHub
  2. GitHub lance le Build sur Azure Devops
  3. Azure Devops package les microservice en tant que conteneur et les push sur Azure Container Registry
  4. Les conteneurs sont déployés sur le cluster AKS
  5. Les utilisateurs accèdent aux différents services
  6. Azure Active Directory est utilisé pour sécuriser les accès aux ressources
  7. Les micros-services utilisent les bases de données pour stocker et récupérer les informations
  8. Les administrateurs accèdent via un portail d’administration séparé

Pour tester vous aussi la solution AKS, je vous invite à créer un compte free tiers Azure via le lien suivant : https://azure.microsoft.com/compte/gratuit

Puis découvrez le portail Azure afin de vous familiariser avec la multitude de service que vous propose Microsoft !