Exercice - Déployer un cluster Azure Kubernetes Service avec Azure CNI
Notes
Cet exercice est facultatif. Si vous souhaitez effectuer cet exercice, vous devrez créer un abonnement Azure avant de commencer. Si vous n’avez pas de compte Azure ou si vous ne souhaitez pas en créer un pour l’instant, vous pouvez lire les instructions pour comprendre les informations qui sont présentées.
Dans cet exercice, vous déployez des réseaux virtuels, des sous-réseaux et des identités, puis vous déployez un cluster Azure Kubernetes Service (AKS) à l’aide du plug-in Azure Container Networking Interface (CNI).
Vous avez sollicité le service informatique de votre entreprise et avez fourni les informations recueillies concernant les exigences de l’application, le dimensionnement des machines virtuelles (VM) et du réseau. Le service informatique a fourni certaines plages d’adresses réseau à utiliser pour le cluster.
Le tableau suivant répertorie les besoins, ainsi que les adresses IP fournies par le service informatique :
Élément | Description | Adresses IP |
---|---|---|
Sous-réseau AKS | Adresses IP des nœuds et des pods du cluster. 248 adresses IP utilisables nécessaires. | 10.150.20.0/24 |
Sous-réseau des services Kubernetes | Adresses IP utilisées à l’intérieur du cluster pour les services Kubernetes. Ne doivent pas entrer en conflit avec d’autres réseaux virtuels ou locaux. | 10.240.0.0/24 |
Adresse IP de service Domain Name System (DNS) | Doit se trouver dans le sous-réseau du service Kubernetes, sans être la première adresse IP de la plage disponible. | 10.240.0.10 |
- Pour le sous-réseau AKS, vous avez identifié un besoin de 248 adresses IP utilisables. Votre service informatique a proposé le réseau 10.150.20.0/24, qui fournit 251 adresses IP utilisables une fois les cinq adresses réservées par Azure dans chaque sous-réseau prises en compte.
- Le sous-réseau des services Kubernetes est un groupe d’adresses IP non utilisées dans les autres réseaux virtuels Azure et qui n’entrent pas en conflit avec des plages d’adresses réseau locales. Cette plage d’adresses est utilisée uniquement à l’intérieur du cluster. Votre service informatique vous a recommandé d’utiliser la plage d’adresses 10.240.0.0/24.
- L’adresse IP du service DNS est une adresse IP située dans la plage d’adresses du sous-réseau des services Kubernetes. Toutefois, elle ne peut pas être la première adresse IP de cette plage. Vous avez décidé d’utiliser l’adresse 10.240.0.10 comme adresse IP du DNS.
Créer le réseau virtuel et le sous-réseau
Pour cet exercice, vous créez un réseau virtuel et un sous-réseau. Dans un environnement réel, une équipe de votre service informatique peut être responsable de la gestion des réseaux et crée ces ressources à votre place.
Lancez Azure Cloud Shell.
Si vous n’êtes pas connecté à Azure, connectez-vous à votre compte à l’aide de la commande
az login
.az login
Choisissez une région Azure proche de vous, par exemple eastus pour les États-Unis. Stockez la valeur dans une variable d’environnement pour pouvoir l’utiliser dans le reste de l’exercice.
AKSLocation=eastus
Créez un groupe de ressources, AKSLearn, pour contenir les ressources de cet exercice à l’aide de la commande
az group create
.az group create --location $AKSLocation --name AKSLearn
Créez un réseau virtuel, AKSVirtualNetwork, avec la commande
az network vnet create
.az network vnet create \ --name AKSVirtualNetwork \ --resource-group AKSLearn \ --address-prefixes 10.150.0.0/16 \ --location $AKSLocation
Créez un sous-réseau, AKSSubnet, à l’aide de la commande
az network vnet subnet create
et spécifiez la plage d’adresses fournie par le service informatique.az network vnet subnet create \ --resource-group AKSLearn \ --vnet-name AKSVirtualNetwork \ --name AKSSubnet \ --address-prefixes 10.150.20.0/24
Créer une identité managée Azure
Vous devez créer une identité managée Azure pour AKS à utiliser pour accéder aux ressources dans votre abonnement Azure. Les deux commandes suivantes permettent de créer une identité managée Azure, puis de stocker sa valeur d’ID unique dans une variable d’environnement pour une utilisation ultérieure.
Créez une identité managée Azure, AKSIdentity, à l’aide de la commande
az identity create
.az identity create \ --name AKSIdentity \ --resource-group AKSLearn
Obtenez l’ID de l’identité managée à l’aide de la commande
az identity show
et stockez-la dans une variable d’environnement, identityId, à utiliser dans les commandes ultérieures.identityId=$(az identity show \ --name AKSIdentity \ --resource-group AKSLearn \ --query id \ --output tsv)
Créer un cluster AKS
Obtenez la valeur d’ID de la ressource du sous-réseau à l’aide de la commande
az network vnet subnet list
et stockez-la dans une variable d’environnement, subnetId, à utiliser dans les commandes ultérieures.subnetId=$(az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[?name=='AKSSubnet'].id" \ --output tsv)
Créez un cluster AKS, AKSCluster, avec la commande
az aks create
.az aks create \ --name AKSCluster \ --resource-group AKSLearn \ --location $AKSLocation \ --network-plugin azure \ --vnet-subnet-id $subnetId \ --service-cidr 10.240.0.0/24 \ --dns-service-ip 10.240.0.10 \ --generate-ssh-keys \ --enable-managed-identity \ --assign-identity $identityId \ --node-vm-size Standard_F8s_v2 \ --node-count 3
Le tableau suivant décrit les paramètres utilisés dans la commande
az aks create
:Paramètre Description --name
Nom du cluster en cours de création. --resource-group
Groupe de ressources où le cluster doit être créé. --location
Région Azure où le cluster doit être créé. --network-plugin
Spécifie le plugin réseau à utiliser. --vnet-subnet-id
Spécifie l’ID de la ressource du sous-réseau à utiliser. --service-cidr
Spécifie la plage d’adresses du service Kubernetes à utiliser. --dns-service-ip
Spécifie l’adresse IP DNS à utiliser. --generate-ssh-keys
Crée un ensemble de clés SSH utilisées pour sécuriser les nœuds. --enable-managed-identity
Permet d’utiliser une identité managée Azure pour accéder aux ressources de l’abonnement Azure. --assign-identity
Spécifie la valeur d’ID de l’identité managée Azure à utiliser. --node-vm-size
Spécifie la taille de machine virtuelle à utiliser. --node-count
Spécifie le nombre de nœuds à créer. Une fois le cluster déployé, vérifiez les détails du pool de nœuds à l’aide de la commande
az aks nodepool list
.az aks nodepool list \ --cluster-name AKSCluster \ --resource-group AKSLearn \ --output table
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
Name OsType VmSize Count MaxPods ProvisioningState Mode --------- -------- --------------- ------- --------- ------------------- ------ nodepool1 Linux Standard_F8s_v2 3 30 Succeeded System
Depuis la sortie, vous pouvez voir qu’il existe trois nœuds de type Standard_F8s_v2, une valeur MaxPods de 30 et un mode de pool de nœuds
System
.
Confirmer l’utilisation des adresses IP du cluster
Vérifiez le nombre d’adresses IP utilisées par le cluster à l’aide de la commande
az network vnet subnet list
.az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[].ipConfigurations.length(@)" \ --output table
Cette commande utilise une chaîne de requête JMESPath pour déterminer le nombre de
ipConfigurations
définis dans le sous-réseau. la sortie maximale doit être 93. Vous avez déployé trois nœuds pour commencer. Ainsi, chaque nœud a une adresse IP. Vous avez utilisé la valeur par défaut 30 pour le nombre de pods maximum. Par conséquent, chaque nœud a 30 adresses IP préallouées pour les pods à utiliser. Le nombre total d’adresses IP allouées jusqu’à présent est3 x nodes + (30 pods * 3 nodes) = 93
. Toutefois, certaines adresses sont réservées afin que votre sortie puisse être inférieure.
Ajouter un nœud supplémentaire au cluster
Voyons comment l’utilisation de l’adresse IP est affectée par le vol du cluster et l’ajout d’un autre nœud.
Effectuez un scale-up du cluster et ajoutez un autre nœud à l’aide de la commande
az aks scale
.az aks scale \ --name AKSCluster \ --resource-group AKSLearn \ --node-count=4
Une fois la commande achevée, confirmez les nouveaux détails du pool de nœuds à l’aide de la commande
az aks nodepool list
.az aks nodepool list \ --cluster-name AKSCluster \ --resource-group AKSLearn \ --output table
Votre sortie doit ressembler à l’exemple de sortie suivant qui montre la disponibilité actuelle de quatre nœuds.
Name OsType VmSize Count MaxPods ProvisioningState Mode --------- -------- --------------- ------- --------- ------------------- ------ nodepool1 Linux Standard_F8s_v2 4 30 Succeeded System
Vérifiez le nombre d’adresses IP utilisées à ce moment précis par le cluster à l’aide de la commande
az network vnet subnet list
.az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[].ipConfigurations.length(@)" \ --output table
Cette fois, la sortie maximum doit être de 124, soit 31 de plus que la dernière fois. Cela correspond à une adresse IP supplémentaire pour le nouveau nœud, plus 30 autres adresses IP préallouées pour les pods qui s’exécutent sur ce nœud. Toutefois, certaines adresses sont réservées afin que votre sortie puisse être inférieure.