Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
AKS (Azure Kubernetes Service) est un service Kubernetes managé qui vous permet de déployer et de gérer rapidement des clusters. Dans cet article, vous allez utiliser Azure CLI pour déployer un cluster AKS qui exécute des conteneurs Windows Server. Vous déployez également un exemple d’application ASP.NET dans un conteneur Windows Server vers le cluster.
Remarque
Dans cet article, vous trouverez les étapes à suivre pour déployer rapidement un cluster AKS. Les paramètres par défaut sont utilisés à des fins d'évaluation uniquement. Avant de déployer un cluster prêt pour la production, nous vous recommandons de vous familiariser avec notre architecture de référence de base pour prendre en compte la façon dont elle s’aligne sur vos besoins métier.
Avant de commencer
Ce guide de démarrage rapide suppose une compréhension élémentaire des concepts liés à Kubernetes. Pour plus d’informations, consultez Concepts de base de Kubernetes pour AKS (Azure Kubernetes Service).
- Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Quand vous y êtes invité, installez l’extension Azure CLI à la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Cet article nécessite la version 2.0.64 ou ultérieure de l’interface Azure CLI. Si vous utilisez Azure Cloud Shell, sachez que la dernière version y est déjà installée.
- Veillez à ce que l’identité que vous utilisez pour créer votre cluster dispose des autorisations minimales appropriées. Pour plus d’informations sur l’accès et l’identité pour AKS, consultez Options d’accès et d’identité pour Kubernetes Azure Service (AKS).
- Si vous avez plusieurs abonnements Azure, sélectionnez l’ID d’abonnement approprié dans lequel les ressources doivent être facturées avec la commande
az account set. Pour obtenir plus d’informations, consultez Gérer les abonnements Azure – Azure CLI. - Si vous utilisez
--os-sku Windows2025, vous devez installer l’extensionaks-previewet inscrire l’indicateur d’aperçu. La version minimale est 18.0.0b40.
Installer l’extension aks-preview
Important
Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions d'essai sont fournies « en l’état » et « selon disponibilité », et elles sont exclues des contrats de niveau de service et de la garantie limitée. Les versions préliminaires AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :
- Installez l’extension
aks-previewAzure CLI en utilisant la commandeaz extension add.
az extension add --name aks-preview
- Mettez à jour vers la dernière version de l’extension à l’aide de la commande
az extension update. Windows Server 2025 nécessite un minimum de 18.0.0b40.
az extension update --name aks-preview
Inscrire l’indicateur de fonctionnalité AksWindows2025Preview
- Inscrivez l’indicateur de fonctionnalité
AksWindows2025Previewà l’aide de la commande [az feature register][az-feature-register].
az feature register --name AksWindows2025Preview --namespace Microsoft.ContainerService
- Vérifiez l’état de l’inscription à l’aide de la commande [
az feature show][az-feature-show]. Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit).
az feature show --name AksWindows2025Preview --namespace Microsoft.ContainerService
Lorsque l’état reflète Inscrit, actualisez l’inscription du fournisseur de ressources Microsoft.ContainerService à l’aide de la commande [
az provider register][az-provider-register].az provider register --namespace Microsoft.ContainerService
Créer un groupe de ressources
Un groupe de ressources Azure est un groupe logique dans lequel des ressources Azure sont déployées et gérées. Lorsque vous créez un groupe de ressources, vous devez spécifier un emplacement. Il s’agit de l’emplacement de stockage des métadonnées de groupe de ressources et c’est là que vos ressources s’exécutent dans Azure si vous ne spécifiez pas une autre région pendant la création de ressources.
Créez un groupe de ressources à l’aide de la commande
az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement WestUS2 .export RANDOM_SUFFIX=$(openssl rand -hex 3) export REGION="canadacentral" export MY_RESOURCE_GROUP_NAME="myAKSResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RESOURCE_GROUP_NAME --location $REGIONRésultats :
{ "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx", "location": "WestUS2", "managedBy": null, "name": "myResourceGroupxxxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Créer un cluster AKS
Dans cette section, nous allons créer un cluster AKS avec la configuration suivante :
- Le cluster est configuré avec deux nœuds pour garantir un fonctionnement fiable. Un nœud est une machine virtuelle (VM) Azure qui exécute les composants de nœud Kubernetes et le runtime de conteneur.
- Les paramètres
--windows-admin-passwordet--windows-admin-usernamedéfinissent les informations d’identification d’administrateur pour tous les nœuds Windows Server du cluster et doivent répondre aux exigences relatives aux mots de passe de Windows Server. - Le pool de nœuds utilise
VirtualMachineScaleSets.
Pour créer le cluster AKS avec Azure CLI, procédez comme suit :
Créez un nom d’utilisateur à utiliser en tant qu’informations d’identification d’administrateur pour les nœuds Windows Server sur votre cluster.
export WINDOWS_USERNAME="winadmin"Créez un mot de passe pour le nom d’utilisateur administrateur que vous avez créé à l’étape précédente. Le mot de passe doit comporter au moins 14 caractères et répondre aux exigences de complexité de mot de passe Windows Server.
export WINDOWS_PASSWORD=$(echo "P@ssw0rd$(openssl rand -base64 10 | tr -dc 'A-Za-z0-9!@#$%^&*()' | cut -c1-6)")Créez votre cluster à l’aide de la commande
az aks createet spécifiez les paramètres--windows-admin-usernameet--windows-admin-password. L’exemple de commande suivant crée un cluster à partir des valeurs deWINDOWS_USERNAMEetWINDOWS_PASSWORDque vous avez définies dans les commandes précédentes. Un suffixe aléatoire est ajouté au nom du cluster pour l’unicité.export MY_AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RESOURCE_GROUP_NAME \ --name $MY_AKS_CLUSTER \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azureAu bout de quelques minutes, la commande se termine et retourne des informations au format JSON sur le cluster. Parfois, le provisionnement du cluster peut prendre un peu de temps. Prévoyez 10 minutes tout au plus.
Si vous obtenez une erreur de validation de mot de passe et que le mot de passe que vous définissez répond aux exigences de longueur et de complexité, essayez de créer votre groupe de ressources dans une autre région. Puis essayez de créer le cluster avec le nouveau groupe de ressources.
Si vous ne spécifiez pas de nom d’utilisateur et de mot de passe Administrateur lorsque vous créez le pool de nœuds, le nom d’utilisateur est défini sur azureuser et le mot de passe sur une valeur aléatoire. Pour plus d’informations, consultez FAQ Windows Server
Vous ne pouvez pas modifier le nom d’utilisateur administrateur, mais vous pouvez modifier le mot de passe administrateur utilisé par votre cluster AKS pour les nœuds Windows Server à l’aide
az aks updatede . Pour plus d’informations, consultez FAQ Windows Server.Pour pouvoir exécuter un cluster AKS qui prend en charge les pools de nœuds pour les conteneurs Windows Server, votre cluster doit appliquer une stratégie de réseau qui utilise le plug-in réseau Azure CNI (avancé). Le paramètre
--network-plugin azurespécifie Azure CNI.
Ajouter un pool de nœuds
Par défaut, tous les clusters AKS sont créés avec un pool de nœuds qui peut exécuter des conteneurs Linux. Vous devez ajouter un pool de nœuds Windows qui peut exécuter des conteneurs Windows Server en même temps que le pool de nœuds Linux. Pour vérifier si vous disposez d’un pool de nœuds Windows dans votre cluster, vous pouvez afficher les nœuds sur votre cluster à l’aide de la kubectl get nodes -o wide commande.
Pour créer un pool de nœuds Windows, vous devez spécifier un OsType et un OsSku pris en charge. Utilisez les informations du tableau suivant pour déterminer qui convient à votre cluster :
OsType |
OsSku |
Par défaut | Versions K8s prises en charge | Détails |
|---|---|---|---|---|
windows |
Windows2025 |
Actuellement en préversion. Non défini par défaut | 1.32+ | Mises à jour par défaut : containerd 2.0, l'image Generation 2 est utilisée par défaut. |
windows |
Windows2022 |
Paramètre par défaut dans K8s 1.25-1.35 | Non disponible dans K8s 1.36+ | Prend sa retraite en mars 2027. Mises à jour par défaut : FIPS est activé par défaut. |
windows |
Windows2019 |
Valeur par défaut dans K8s 1.24 et versions antérieures | Non disponible dans K8s 1.33+ | Prend sa retraite en mars 2026. |
Windows Server 2022 est le système d’exploitation par défaut pour Kubernetes versions 1.25-1.35. Windows Server 2019 est le système d’exploitation par défaut pour les versions antérieures. Si vous ne spécifiez pas de référence SKU de système d’exploitation particulière, Azure crée le nouveau pool de nœuds avec la référence SKU par défaut pour la version de Kubernetes utilisée par le cluster.
Remarque
- Windows Server 2019 prend sa retraite le 1er mars 2026. Après cette date, AKS ne produit plus de nouvelles images de nœud ou fournit des correctifs de sécurité. Après cette date, vous ne pourrez pas créer de pools de nœuds avec Windows Server 2019 sur n’importe quelle version de Kubernetes. Tous les pools de nœuds existants avec Windows Server 2019 ne sont pas pris en charge. Windows Server 2019 n’est pas pris en charge dans Kubernetes version 1.33 et ultérieure. À compter du 1er avril 2027, AKS supprime toutes les images de nœud existantes pour Windows Server 2019, ce qui signifie que les opérations de mise à l’échelle échouent.
- Windows Server 2022 prend sa retraite le 15 mars 2027. Après cette date, AKS ne produit plus de nouvelles images de nœud ou fournit des correctifs de sécurité. Après cette date, vous ne pourrez pas créer de pools de nœuds avec Windows Server 2022 sur n’importe quelle version de Kubernetes. Tous les pools de nœuds existants avec Windows Server 2022 ne sont pas pris en charge. Windows Server 2022 n’est pas pris en charge dans Kubernetes version 1.36 et ultérieure. À compter du 1er avril 2028, AKS supprime toutes les images de nœud existantes pour Windows Server 2022, ce qui signifie que les opérations de mise à l’échelle échouent.
Pour plus d’informations, consultez les notes de publication AKS. Pour rester informé sur les dernières versions de système d’exploitation Windows Server et découvrir notre feuille de route sur les prévisions de prise en charge sur AKS, consultez notre Feuille de route publique AKS.
Ajoutez un pool de nœuds Windows en utilisant la commande
az aks nodepool addavec les paramètres spécifiésOsTypeetOsSku. Si vous ne spécifiez pas de référence SKU de système d’exploitation particulière, Azure crée le nouveau pool de nœuds avec la référence SKU par défaut pour la version de Kubernetes utilisée par le cluster.az aks nodepool add \ --resource-group $MY_RESOURCE_GROUP_NAME \ --cluster-name $MY_AKS_CLUSTER \ --os-type Windows \ --os-sku Windows2022 \ --name npwin \ --node-count 1Cette commande crée un pool de nœuds nommé npwin et l’ajoute à myAKSCluster. La commande utilise également le sous-réseau par défaut dans le réseau virtuel par défaut créé lors de l’exécution de
az aks create.
Se connecter au cluster
Vous devez utiliser kubectl, le client en ligne de commande Kubernetes, pour gérer vos clusters Kubernetes. Si vous utilisez Azure Cloud Shell, kubectl est déjà installé. Si vous souhaitez installer et exécuter kubectl localement, utilisez la az aks install-cli commande.
Configurez
kubectlafin de vous connecter à votre cluster Kubernetes avec la commandeaz aks get-credentials. Cette commande télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTERVérifiez la connexion à votre cluster, utilisez la commande
kubectl getpour retourner une liste des nœuds du cluster.kubectl get nodes -o wideL’exemple de sortie suivant montre tous les nœuds du cluster. Vérifiez que l’état de tous les nœuds est Ready (Prêt) :
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-nodepool1-20786768-vmss000000 Ready agent 22h v1.27.7 10.224.0.4 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.27.7 10.224.0.33 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aksnpwin000000 Ready agent 20h v1.27.7 10.224.0.62 <none> Windows Server 2022 Datacenter 10.0.20348.2159 containerd://1.6.21+azureRemarque
Le runtime de conteneur pour chaque pool de nœuds est affiché sous CONTAINER-RUNTIME. Les valeurs du runtime de conteneur commencent par
containerd://, ce qui signifie qu’elles utilisentcontainerdchacune pour le runtime de conteneur.
Déployer l’application
Un fichier manifeste Kubernetes définit un état souhaité pour le cluster, notamment les images conteneur à exécuter. Dans cet article, vous allez utiliser un manifeste pour créer tous les objets nécessaires à l’exécution de l’exemple d’application ASP.NET dans un conteneur Windows Server. Ce manifeste comprend un déploiement Kubernetes pour l’exemple d’application ASP.NET et un service Kubernetes externe pour accéder à l’application à partir d’Internet.
L’exemple d’application ASP.NET est fourni dans le cadre des Exemples .NET Framework et s’exécute dans un conteneur Windows Server. AKS exige que les conteneurs Windows Server soient basés sur des images de Windows Server 2019 ou versions supérieures. Le fichier manifeste Kubernetes doit également définir un sélecteur de nœud pour indiquer à votre cluster AKS d’exécuter le pod de votre exemple d’application ASP.NET sur un nœud qui peut exécuter des conteneurs Windows Server.
Créez un fichier nommé
sample.yamlet copiez-le dans la définition YAML suivante :apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: samplePour obtenir une répartition des fichiers manifeste YAML, consultez Déploiements et manifestes YAML.
Si vous créez et que vous enregistrez le fichier YAML localement, vous pouvez charger le fichier manifeste dans votre répertoire par défaut dans CloudShell en sélectionnant le bouton Charger/télécharger des fichiers, puis en sélectionnant le fichier dans votre système de fichiers local.
Déployez l’application à l’aide de la commande
kubectl applyet spécifiez le nom de votre manifeste YAML.kubectl apply -f sample.yamlL’exemple de sortie suivant montre le déploiement et le service créés avec succès :
{ "deployment.apps/sample": "created", "service/sample": "created" }
Test de l’application
Quand l’application s’exécute, un service Kubernetes expose le front-end de l’application sur Internet. L’exécution de ce processus peut prendre plusieurs minutes. Parfois, le provisionnement du service peut prendre plus de quelques minutes. Prévoyez 10 minutes tout au plus.
Vérifiez l'état des pods déployés à l'aide de la commande
kubectl get pods. Vérifiez que tous les pods sontRunningavant de continuer.kubectl get podsSurveillez la progression avec la commande
kubectl get serviceet l’argument--watch.while true; do export EXTERNAL_IP=$(kubectl get service sample -o jsonpath="{.status.loadBalancer.ingress[0].ip}" 2>/dev/null) if [[ -n "$EXTERNAL_IP" && "$EXTERNAL_IP" != "<pending>" ]]; then kubectl get service sample break fi echo "Still waiting for external IP assignment..." sleep 5 doneDans un premier temps, la valeur pending (en attente) s’affiche pour EXTERNAL-IP dans la sortie de l’exemple de service :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer xx.xx.xx.xx pending xx:xxxx/TCP 2mQuand l’adresse EXTERNAL-IP passe de l’état pending à une adresse IP publique réelle, utilisez
CTRL-Cpour arrêter le processus de surveillancekubectl.L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :
{ "NAME": "sample", "TYPE": "LoadBalancer", "CLUSTER-IP": "10.0.37.27", "EXTERNAL-IP": "52.179.23.131", "PORT(S)": "80:30572/TCP", "AGE": "2m" }Consultez l’exemple d’application en action en ouvrant un navigateur web à l’adresse IP externe de votre service après quelques minutes.
Étapes suivantes
Dans ce démarrage rapide, vous avez déployé un cluster Kubernetes puis déployé un exemple d’application ASP.NET dans un conteneur Windows Server vers ce cluster. Cet exemple d’application est fourni à des fins de version de démonstration uniquement et ne représente pas toutes les meilleures pratiques pour les applications Kubernetes. Pour obtenir des conseils sur la création de solutions complètes avec AKS pour la production, consultez Conseils pour les solutions AKS.
Pour en savoir plus sur AKS et étudier un exemple complet code-à-déploiement, passez au didacticiel sur le cluster Kubernetes.