Introduction
Azure Kubernetes Service (AKS) est le service managé de Microsoft Azure pour orchestrer des conteneurs Kubernetes. En 2026, AKS simplifie la gestion des clusters en automatisant les mises à jour, la scalabilité et la sécurité, vous permettant de vous concentrer sur vos applications. Ce tutoriel beginner vous guide pour créer un cluster AKS, déployer une application web simple (Nginx) et l'exposer via un LoadBalancer. Pourquoi c'est important ? Kubernetes domine l'orchestration conteneurs (80% des entreprises l'utilisent), et AKS réduit le temps de setup de 70% par rapport à un cluster vanilla. À la fin, vous aurez un déploiement production-ready, scalable horizontalement. Nous utilisons Azure CLI pour l'infra et kubectl pour les workloads, avec des manifests YAML complets et testés. Durée estimée : 30 minutes. Prêt à conteneuriser ?
Prérequis
- Un compte Azure gratuit (créez-en un sur portal.azure.com)
- Azure CLI installé (version 2.65+)
- kubectl installé (version 1.31+)
- Docker Desktop pour tester localement (optionnel)
- Connaissances basiques de terminal et YAML
Installer et se connecter à Azure CLI
# Installer Azure CLI (sur Ubuntu/Debian, adaptez pour Windows/macOS)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# Vérifier l'installation
az --version
# Se connecter à Azure
az login
# Définir l'abonnement par défaut (remplacez par votre ID)
az account set --subscription "votre-subscription-id"
# Lister les emplacements disponibles
az account list-locations --output tableCes commandes installent Azure CLI, authentifient votre session et préparent l'environnement. Utilisez az login pour ouvrir un navigateur d'authentification. Évitez les erreurs en vérifiant votre abonnement avec az account show. Sur Windows, utilisez le script PowerShell officiel.
Créer un groupe de ressources
Un groupe de ressources est un conteneur logique pour vos ressources Azure. Il facilite la gestion, le billing et la suppression en cascade.
Créer le groupe de ressources
# Créer un groupe de ressources (région europe-west, adaptable)
az group create --name rg-aks-demo --location "westeurope"
# Vérifier la création
az group show --name rg-aks-demo --query location -o tsvCette commande crée rg-aks-demo en Europe de l'Ouest pour minimiser la latence. Choisissez une région proche de vos users. Piège : Oubliez pas --location, sinon erreur. Utilisez az group delete pour cleanup.
Créer le cluster AKS
# Créer un cluster AKS avec 2 nœuds (nodepool system)
az aks create \
--resource-group rg-aks-demo \
--name aks-demo-cluster \
--node-count 2 \
--enable-addons monitoring \
--generate-ssh-keys \
--node-vm-size Standard_D2_v2
# Attendre 5-10 min, puis vérifier
az aks show --resource-group rg-aks-demo --name aks-demo-cluster --output tableCrée un cluster managed avec monitoring activé et SSH auto-généré. Standard_D2_v2 est économique pour démos (~0.10€/h). Temps de création : 7 min. Évitez les VM trop petites pour workloads réels.
Configurer kubectl pour AKS
kubectl est l'outil CLI Kubernetes. Configurez-le pour pointer vers votre cluster AKS.
Connecter kubectl au cluster
# Obtenir les credentials kubectl
az aks get-credentials --resource-group rg-aks-demo --name aks-demo-cluster
# Vérifier la connexion
kubectl get nodes
# Lister les namespaces
kubectl get nsget-credentials met à jour ~/.kube/config. kubectl get nodes confirme 2 nœuds ready. Piège : Multi-clusters ? Utilisez kubectl config current-context.
Déployer l'application Nginx
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.27-alpine
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "100m"
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancerCe manifest déploie 3 pods Nginx avec resources limits/requests et un Service LoadBalancer pour exposition externe. Image alpine pour légèreté. Copiez-collez en un fichier et appliquez.
Appliquer le déploiement
# Sauvegarder le YAML précédent dans nginx-deployment.yaml
# Appliquer le manifest
kubectl apply -f nginx-deployment.yaml
# Vérifier les pods
kubectl get pods -l app=nginx
# Vérifier le service et obtenir l'IP externe
kubectl get svc nginx-service
# Tester (attendre IP)
curl http://<IP_EXTERNE>apply -f crée Deployment + Service atomiquement. get svc montre EXTERNAL-IP (5 min provisioning). Scalez avec kubectl scale deployment nginx-deployment --replicas=5. Accès public immédiat.
Scaler et monitorer
# Scaler horizontalement
kubectl scale deployment nginx-deployment --replicas=5
# Auto-scaler (HPA)
kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=3 --max=10
# Logs d'un pod
kubectl logs deployment/nginx-deployment
# Décrire un pod pour debug
kubectl describe pod <POD_NAME>Scale manuel ou HPA sur CPU. Logs et describe aident au debug. Piège : Pas de resources ? HPA ignore. Vérifiez avec kubectl get hpa.
Bonnes pratiques
- Toujours définir resources requests/limits : Évite le bruit et optimise les coûts.
- Utiliser des namespaces :
kubectl create ns prodpour isoler environnements. - Activer Azure Monitor : Inclus dans AKS, dashboards auto en portal.azure.com.
- Secrets pour creds :
kubectl create secret generic db-pass --from-literal=password=secret. - Helm pour apps complexes : Au lieu de YAML raw après ce beginner.
Erreurs courantes à éviter
- Cluster pas ready : Attendez
kubectl get nodestous Ready avant deploy. - IP LoadBalancer stuck
: Vérifiez quotas/subnet en Azure Portal. - kubectl context perdu :
az aks get-credentialsrefresh. - Coûts cachés : ~0.10€/h/nœud + LoadBalancer ; deletez avec
az group delete --name rg-aks-demo --yes.
Pour aller plus loin
Maîtrisez AKS avancé : Formations Learni DevOps & Kubernetes. Ressources : Docs AKS officiels, Kubernetes.io basics. Essayez Ingress NGINX ou CI/CD avec GitHub Actions.