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.
S’applique à : ✔️ AKS Automatic
Azure Kubernetes Service (AKS) Automatic offre l’expérience Kubernetes managée la plus facile aux développeurs, aux ingénieurs DevOps et aux ingénieurs de plateforme. Idéal pour les applications modernes et d’IA, AKS Automatic automatise l’installation et les opérations des clusters AKS et incorpore les configurations de bonnes pratiques. Quel que soit leur niveau de compétence, les utilisateurs peuvent tirer parti de la sécurité, des performances et de la fiabilité d’AKS Automatic pour leurs applications. AKS Automatic inclut également un SLA de préparation des pods qui garantit que 99,9% des opérations de préparation des pods se terminent en moins de 5 minutes, ce qui assure une infrastructure fiable et auto-guérissante pour vos applications. 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).
Dans ce guide de démarrage rapide, vous allez apprendre à :
- Créer un réseau virtuel.
- Créez une identité managée avec des autorisations sur le réseau virtuel.
- Déployez un cluster automatique AKS privé dans le réseau virtuel.
- Connectez-vous au cluster privé.
- Exécutez un exemple d’application multiconteneur avec un groupe de microservices et de serveurs web frontaux simulant un scénario de vente au détail.
Conditions préalables
- Si vous n’avez pas de compte Azure, créez un compte gratuit.
- Cet article nécessite la version 2.77.0 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, sachez que la dernière version y est déjà installée. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
- Identité de cluster avec une
Network Contributorattribution de rôle intégrée sur le sous-réseau du serveur d’API. - Identité de cluster avec une attribution de rôle intégré
Network Contributorsur le réseau virtuel pour prendre en charge l’approvisionnement automatique de nœud. - Identité d’utilisateur accédant au cluster avec
Azure Kubernetes Service Cluster User RoleetAzure Kubernetes Service RBAC Writer. - Un réseau virtuel avec un sous-réseau de serveur d’API dédié d’une taille d’au moins
*/28déléguéeMicrosoft.ContainerService/managedClusters.- S’il existe un groupe de sécurité réseau (NSG) attaché aux sous-réseaux, vérifiez que les règles autorisent le trafic suivant entre les nœuds et le serveur d’API, Azure Load Balancer et le serveur d’API, et la communication de pod à pod.
- S’il existe un pare-feu Azure ou une autre méthode ou appliance de restriction sortante, vérifiez que les règles de réseau sortant et les noms de domaine complets requis sont autorisés.
- AKS Automatic active Azure Policy sur votre cluster AKS, mais vous devez préinscrire le
Microsoft.PolicyInsightsfournisseur de ressources dans votre abonnement pour une expérience plus fluide. Pour plus d’informations, consultez les fournisseurs et types de ressources Azure .
Limites
- Le pool de nœuds système des clusters automatiques AKS nécessite un déploiement dans les régions Azure qui prennent en charge au moins trois zones de disponibilité, un disque de système d’exploitation éphémère et un système d’exploitation Linux Azure.
- Vous ne pouvez créer de clusters automatiques AKS que dans des régions où l’intégration au réseau virtuel du serveur d’API est en disponibilité générale (GA).
Important
AKS Automatic tente de sélectionner dynamiquement une taille de machine virtuelle pour le system pool de nœuds en fonction de la capacité disponible dans l’abonnement. Vérifiez que votre abonnement dispose d’un quota pour 16 processeurs virtuels de n’importe laquelle des tailles suivantes dans la région où vous déployez le cluster : Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2, Standard_D4alds_v6, Standard_D4lds_v6 ou Standard_D4alds_v5. Vous pouvez afficher les quotas de familles de machines virtuelles spécifiques et envoyer des demandes d’augmentation de quota via le portail Azure.
Si vous avez des questions supplémentaires, découvrez-en davantage dans la documentation de résolution des problèmes.
Définir des variables
Définissez les variables suivantes qui seront utilisées dans les étapes suivantes.
RG_NAME=automatic-rg
VNET_NAME=automatic-vnet
CLUSTER_NAME=automatic
IDENTITY_NAME=automatic-uami
LOCATION=eastus
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
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.
Créez un groupe de ressources avec la commande az group create.
az group create -n ${RG_NAME} -l ${LOCATION}
L'exemple de sortie suivant illustre la création réussie du groupe de ressources :
{
"id": "/subscriptions/<guid>/resourceGroups/automatic-rg",
"location": "eastus",
"managedBy": null,
"name": "automatic-rg",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Créer un réseau virtuel
Créer un réseau virtuel en utilisant la commande az network vnet create. Créez un sous-réseau de serveur d’API et un sous-réseau de cluster à l’aide de la az network vnet subnet create commande.
Lorsque vous utilisez un réseau virtuel personnalisé avec AKS Automatic, vous devez créer et déléguer un sous-réseau de serveur d’API à Microsoft.ContainerService/managedClusters, ce qui accorde les autorisations de service AKS pour injecter les pods du serveur d’API et l’équilibreur de charge interne dans ce sous-réseau. Vous ne pouvez pas utiliser le sous-réseau pour d’autres charges de travail, mais vous pouvez l’utiliser pour différents clusters AKS situés dans le même réseau virtuel. La taille minimale de sous-réseau de serveur d’API prise en charge est de /28.
Avertissement
Un cluster AKS réserve au moins 9 adresses IP dans l’espace d’adressage du sous-réseau. Le fait de manquer d’adresses IP peut empêcher la mise à l’échelle du serveur d’API et provoquer une panne de celui-ci.
az network vnet create --name ${VNET_NAME} \
--resource-group ${RG_NAME} \
--location ${LOCATION} \
--address-prefixes 172.19.0.0/16
az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name apiServerSubnet \
--delegations Microsoft.ContainerService/managedClusters \
--address-prefixes 172.19.0.0/28
az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name clusterSubnet \
--address-prefixes 172.19.1.0/24
Règles de groupe de sécurité réseau
Tout le trafic au sein du réseau virtuel est autorisé par défaut. Toutefois, si vous avez ajouté des règles de groupe de sécurité réseau (NSG) pour restreindre le trafic entre différents sous-réseaux, assurez-vous que les règles de sécurité du groupe de sécurité réseau autorisent les types de communication suivants :
| Destination | Origine | Protocole | Port | Utilisation |
|---|---|---|---|---|
| CIDR du sous-réseau APIServer | Sous-réseau de cluster | TCP | 443 et 4443 | Obligatoire pour activer la communication entre Nodes et le serveur d’API. |
| CIDR du sous-réseau APIServer | Azure Load Balancer (répartiteur de charge Azure) | TCP | 9 988 | Obligatoire pour activer la communication entre Azure Load Balancer et le serveur d’API. Vous pouvez également activer toutes les communications entre Azure Load Balancer et le CIDR du sous-réseau du serveur d’API. |
| CIDR de nœud | CIDR de nœud | Tous les protocoles | Tous les ports | Obligatoire pour activer la communication entre les nœuds. |
| CIDR de nœud | Pod CIDR | Tous les protocoles | Tous les ports | Obligatoire pour le routage du trafic de service. |
| Pod CIDR | Pod CIDR | Tous les protocoles | Tous les ports | Requis pour le trafic Pod vers Pod et Pod to Service, y compris DNS. |
Créer une identité managée et lui accorder des autorisations sur le réseau virtuel
Créez une identité managée en utilisant la commande az identity create et récupérez l'identifiant principal. Attribuez le rôle Contributeur réseau sur le réseau virtuel à l’identité managée à l’aide de la az role assignment create commande.
az identity create \
--resource-group ${RG_NAME} \
--name ${IDENTITY_NAME} \
--location ${LOCATION}
IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group ${RG_NAME} --name ${IDENTITY_NAME} --query principalId -o tsv)
az role assignment create \
--scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}" \
--role "Network Contributor" \
--assignee ${IDENTITY_PRINCIPAL_ID}
Créer un cluster automatique AKS privé dans un réseau virtuel personnalisé
Pour créer un cluster automatique AKS privé, utilisez la commande az aks create . Notez l’utilisation de l’indicateur --enable-private-cluster .
Remarque
Vous pouvez consulter la documentation du cluster privé pour configurer des options supplémentaires telles que la désactivation du nom de domaine complet public du cluster et la configuration de la zone DNS privée.
az aks create \
--resource-group ${RG_NAME} \
--name ${CLUSTER_NAME} \
--location ${LOCATION} \
--apiserver-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/apiServerSubnet" \
--vnet-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/clusterSubnet" \
--assign-identity "/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RG_NAME}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${IDENTITY_NAME}" \
--sku automatic \
--enable-private-cluster \
--no-ssh-key
Au bout de quelques minutes, la commande se termine et retourne des informations au format JSON sur le cluster.
Se connecter au cluster
Lorsqu’un cluster automatique AKS est créé en tant que cluster privé, le point de terminaison du serveur d’API n’a aucune adresse IP publique. Pour gérer le serveur d’API, par exemple via kubectl, vous devez vous connecter via une machine qui a accès au réseau virtuel Azure du cluster. Vous pouvez établir une connectivité réseau au cluster privé de différentes manières :
- Créez une machine virtuelle dans le même réseau virtuel que le cluster automatique AKS à l’aide de la
az vm createcommande avec l’indicateur--vnet-name. - Utilisez une machine virtuelle dans un réseau virtuel distinct et configurez le peering des réseaux virtuels.
- Utilisez une connexion Express Route ou VPN .
- Utilisez une connexion point de terminaison privé.
La création d’une machine virtuelle dans le même réseau virtuel que le cluster AKS est l’option la plus simple. ExpressRoute et VPN ajoutent des coûts et nécessitent une complexité réseau supplémentaire. L’appairage de réseaux virtuels implique la planification de vos plages CIDR réseau pour veiller à ce qu'aucune plage ne se chevauche. Pour plus d’informations, reportez-vous aux options de connexion au cluster privé .
Pour gérer un cluster Kubernetes, utilisez kubectl, le client de ligne de commande Kubernetes.
kubectl est déjà installé si vous utilisez Azure Cloud Shell. Pour installer kubectl en local, exécutez la commande az aks install-cli. Les clusters AKS Automatic sont configurés avec Microsoft Entra ID pour le contrôle d’accès en fonction du rôle (RBAC) Kubernetes.
Lorsque vous créez un cluster à l’aide d’Azure CLI, votre utilisateur se voit attribuer des rôles intégrés pour Azure Kubernetes Service RBAC Cluster Admin.
Configurez kubectl afin de vous connecter à votre cluster Kubernetes avec la commande az 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 ${RG_NAME} --name ${CLUSTER_NAME}
Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get. Cette commande renvoie la liste des nœuds de cluster.
kubectl get nodes
L’exemple de sortie suivant montre comment vous êtes invité à vous connecter.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Une fois connecté, l’exemple de sortie suivant montre les pools de nœuds système managés. Assurez-vous que l’état du nœud est Prêt.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Créer un réseau virtuel
Ce fichier Bicep définit un réseau virtuel.
@description('The location of the managed cluster resource.')
param location string = resourceGroup().location
@description('The name of the virtual network.')
param vnetName string = 'aksAutomaticVnet'
@description('The address prefix of the virtual network.')
param addressPrefix string = '172.19.0.0/16'
@description('The name of the API server subnet.')
param apiServerSubnetName string = 'apiServerSubnet'
@description('The subnet prefix of the API server subnet.')
param apiServerSubnetPrefix string = '172.19.0.0/28'
@description('The name of the cluster subnet.')
param clusterSubnetName string = 'clusterSubnet'
@description('The subnet prefix of the cluster subnet.')
param clusterSubnetPrefix string = '172.19.1.0/24'
// Virtual network with an API server subnet and a cluster subnet
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [ addressPrefix ]
}
subnets: [
{
name: apiServerSubnetName
properties: {
addressPrefix: apiServerSubnetPrefix
}
}
{
name: clusterSubnetName
properties: {
addressPrefix: clusterSubnetPrefix
}
}
]
}
}
output apiServerSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, apiServerSubnetName)
output clusterSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, clusterSubnetName)
Enregistrez le fichier Bicep virtualNetwork.bicep sur votre ordinateur local.
Important
Le fichier Bicep définit le paramètre vnetName sur aksAutomaticVnet, le paramètre addressPrefix sur 172.19.0.0/16, le paramètre apiServerSubnetPrefix sur 172.19.0.0/28 et le paramètre apiServerSubnetPrefix sur 172.19.1.0/24. Si vous souhaitez utiliser différentes valeurs, veillez à mettre à jour les chaînes avec vos valeurs préférées.
Déployez le fichier Bicep en utilisant l’interface Azure CLI.
az deployment group create --resource-group <resource-group> --template-file virtualNetwork.bicep
Tout le trafic au sein du réseau virtuel est autorisé par défaut. Toutefois, si vous avez ajouté des règles de groupe de sécurité réseau (NSG) pour restreindre le trafic entre différents sous-réseaux, assurez-vous que les règles de sécurité du groupe de sécurité réseau autorisent les types de communication suivants :
| Destination | Origine | Protocole | Port | Utilisation |
|---|---|---|---|---|
| CIDR du sous-réseau APIServer | Sous-réseau de cluster | TCP | 443 et 4443 | Obligatoire pour activer la communication entre Nodes et le serveur d’API. |
| CIDR du sous-réseau APIServer | Azure Load Balancer (répartiteur de charge Azure) | TCP | 9 988 | Obligatoire pour activer la communication entre Azure Load Balancer et le serveur d’API. Vous pouvez également activer toutes les communications entre Azure Load Balancer et le CIDR du sous-réseau du serveur d’API. |
Créer une identité managée
Ce fichier Bicep définit une identité managée assignée par l'utilisateur.
param location string = resourceGroup().location
param uamiName string = 'aksAutomaticUAMI'
resource userAssignedManagedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
name: uamiName
location: location
}
output uamiId string = userAssignedManagedIdentity.id
output uamiPrincipalId string = userAssignedManagedIdentity.properties.principalId
output uamiClientId string = userAssignedManagedIdentity.properties.clientId
Enregistrez le fichier Bicep uami.bicep sur votre ordinateur local.
Important
Le fichier Bicep définit le paramètre uamiName sur aksAutomaticUAMI. Si vous souhaitez utiliser un autre nom d’identité, veillez à mettre à jour la chaîne avec votre nom préféré.
Déployez le fichier Bicep en utilisant l’interface Azure CLI.
az deployment group create --resource-group <resource-group> --template-file uami.bicep
Attribuer le rôle Contributeur réseau sur le réseau virtuel
Ce fichier Bicep définit les attributions de rôles sur le réseau virtuel.
@description('The name of the virtual network.')
param vnetName string = 'aksAutomaticVnet'
@description('The principal ID of the user assigned managed identity.')
param uamiPrincipalId string
// Get a reference to the virtual network
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' existing ={
name: vnetName
}
// Assign the Network Contributor role to the user assigned managed identity on the virtual network
// '4d97b98b-1d4f-4787-a291-c67834d212e7' is the built-in Network Contributor role definition
// See: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/networking#network-contributor
resource networkContributorRoleAssignmentToVirtualNetwork 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(uamiPrincipalId, '4d97b98b-1d4f-4787-a291-c67834d212e7', resourceGroup().id, virtualNetwork.name)
scope: virtualNetwork
properties: {
roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', '4d97b98b-1d4f-4787-a291-c67834d212e7')
principalId: uamiPrincipalId
}
}
Enregistrez le fichier Bicep roleAssignments.bicep sur votre ordinateur local.
Important
Le fichier Bicep définit le paramètre vnetName sur aksAutomaticVnet. Si vous avez utilisé un autre nom de réseau virtuel, veillez à mettre à jour la chaîne avec le nom de votre réseau virtuel préféré.
Déployez le fichier Bicep en utilisant l’interface Azure CLI. Vous devez fournir l’ID du principal de l’identité affectée par l’utilisateur.
az deployment group create --resource-group <resource-group> --template-file roleAssignments.bicep \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Créer un cluster automatique AKS privé dans un réseau virtuel personnalisé
Ce fichier Bicep définit le cluster automatique AKS.
Remarque
Vous pouvez consulter la documentation du cluster privé pour configurer des options supplémentaires telles que la désactivation du nom de domaine complet public des clusters et la configuration de la zone DNS privée.
@description('The name of the managed cluster resource.')
param clusterName string = 'aksAutomaticCluster'
@description('The location of the managed cluster resource.')
param location string = resourceGroup().location
@description('The resource ID of the API server subnet.')
param apiServerSubnetId string
@description('The resource ID of the cluster subnet.')
param clusterSubnetId string
@description('The resource ID of the user assigned managed identity.')
param uamiId string
/// Create the private AKS Automatic cluster using the custom virtual network and user assigned managed identity
resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
name: clusterName
location: location
sku: {
name: 'Automatic'
}
properties: {
agentPoolProfiles: [
{
name: 'systempool'
mode: 'System'
count: 3
vnetSubnetID: clusterSubnetId
}
]
apiServerAccessProfile: {
subnetId: apiServerSubnetId
enablePrivateCluster: true
}
networkProfile: {
outboundType: 'loadBalancer'
}
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${uamiId}': {}
}
}
}
Enregistrez le fichier Bicep aks.bicep sur votre ordinateur local.
Important
Le fichier Bicep définit le paramètre clusterName sur aksAutomaticCluster. Si vous souhaitez un autre nom de cluster, veillez à mettre à jour la chaîne avec le nom de votre cluster préféré.
Déployez le fichier Bicep en utilisant l’interface Azure CLI. Vous devez fournir l’ID de ressource du sous-réseau du serveur d’API, l’ID de ressource du sous-réseau de cluster et l’ID du principal de l’identité affectée par l’utilisateur.
az deployment group create --resource-group <resource-group> --template-file aks.bicep \
--parameters apiServerSubnetId=<API server subnet resource id> \
--parameters clusterSubnetId=<cluster subnet resource id> \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Se connecter au cluster
Lorsqu’un cluster automatique AKS est créé en tant que cluster privé, le point de terminaison du serveur d’API n’a aucune adresse IP publique. Pour gérer le serveur d’API, par exemple via kubectl, vous devez vous connecter via une machine qui a accès au réseau virtuel Azure du cluster. Vous pouvez établir une connectivité réseau au cluster privé de différentes manières :
- Créez une machine virtuelle dans le même réseau virtuel que le cluster automatique AKS à l’aide de la
az vm createcommande avec l’indicateur--vnet-name. - Utilisez une machine virtuelle dans un réseau virtuel distinct et configurez le peering des réseaux virtuels.
- Utilisez une connexion Express Route ou VPN .
- Utilisez une connexion point de terminaison privé.
La création d’une machine virtuelle dans le même réseau virtuel que le cluster AKS est l’option la plus simple. ExpressRoute et les VPN présentent des coûts et une complexité de mise en réseau supplémentaires. L’appairage de réseaux virtuels implique la planification de vos plages CIDR réseau pour veiller à ce qu'aucune plage ne se chevauche. Pour plus d’informations, reportez-vous aux options de connexion au cluster privé .
Pour gérer un cluster Kubernetes, utilisez kubectl, le client de ligne de commande Kubernetes.
kubectl est déjà installé si vous utilisez Azure Cloud Shell. Pour installer kubectl en local, exécutez la commande az aks install-cli. Les clusters AKS Automatic sont configurés avec Microsoft Entra ID pour le contrôle d’accès en fonction du rôle (RBAC) Kubernetes.
Important
Lorsque vous créez un cluster à l’aide de Bicep, vous devez affecter l’un des rôles intégrés tels que Azure Kubernetes Service RBAC Reader, , Azure Kubernetes Service RBAC Writerou Azure Kubernetes Service RBAC AdminAzure Kubernetes Service RBAC Cluster Admin à vos utilisateurs, délimités au cluster ou à un espace de noms spécifique, par exemple à l’aide az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.comde . Assurez-vous aussi que vos utilisateurs ont le rôle intégré Azure Kubernetes Service Cluster User pour pouvoir exécuter az aks get-credentials, puis obtenez l’attribut kubeconfig de votre cluster AKS en utilisant la commande az aks get-credentials.
Configurez kubectl afin de vous connecter à votre cluster Kubernetes avec la commande az 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 <resource-group> --name <cluster-name>
Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get. Cette commande renvoie la liste des nœuds de cluster.
kubectl get nodes
L’exemple de sortie suivant montre comment vous êtes invité à vous connecter.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Une fois connecté, l’exemple de sortie suivant montre les pools de nœuds système managés. Assurez-vous que l’état du nœud est Prêt.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Déployer l’application
Pour déployer l'application, vous utilisez un fichier manifeste pour créer tous les objets nécessaires à l'exécution de l'application AKS Store. Un fichier manifeste Kubernetes définit un état souhaité d’un cluster, notamment les images conteneur à exécuter. Le manifeste inclut les déploiements et services Kubernetes suivants :
- Vitrine : application web permettant aux clients d’afficher les produits et de passer des commandes.
- Service de produit : affiche les informations sur le produit.
- Service de commande : passer des commandes.
- Rabbit MQ : file d’attente de messages pour une file d’attente de commandes.
Remarque
Nous ne recommandons pas l'exécution de conteneurs avec état, comme Rabbit MQ, sans stockage persistant pour la production. Ces conteneurs sont utilisés ici pour simplifier, mais nous vous recommandons d’utiliser des services managés, tels qu’Azure Cosmos DB ou Azure Service Bus.
Créez un espace de noms
aks-store-demopour y déployer les ressources Kubernetes.kubectl create ns aks-store-demoDéployez l’application en utilisant la commande kubectl apply dans l’espace de noms
aks-store-demo. Le fichier YAML définissant le déploiement se trouve sur GitHub.kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yamlL'exemple de sortie suivant montre les déploiements et les services :
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created ingress/store-front created
Tester 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.
Vérifiez l’état des pods déployés à l’aide de la commande kubectl get pods. Vérifiez que tous les pods sont
Runningavant de continuer. S’il s’agit de la première charge de travail que vous déployez, l’approvisionnement automatique de nœuds peut prendre quelques minutes pour créer un pool de nœuds visant à exécuter les pods.kubectl get pods -n aks-store-demoRecherchez une adresse IP publique pour l'application de vitrine. Surveillez la progression avec la commande kubectl get service et l’argument
--watch.kubectl get ingress store-front -n aks-store-demo --watchLa sortie ADDRESS pour le service
store-frontn’affiche rien initialement :NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mUne fois qu’ADDRESS passe de rien à 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 CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12mOuvrez un navigateur web à l’adresse IP externe de votre entrée pour voir l’application Azure Store en action.
Supprimer le cluster
Pour éviter les frais Azure, si vous ne prévoyez pas de suivre le Tutoriel AKS, nettoyez vos ressources inutiles. Exécutez la commande az group delete pour supprimer le groupe de ressources, le service conteneur ainsi que toutes les ressources associées.
az group delete --name <resource-group> --yes --no-wait
Remarque
Le cluster AKS a été créé avec une identité managée assignée par l’utilisateur. Si vous n’avez plus besoin de cette identité, vous pouvez la supprimer manuellement.
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez déployé un cluster Kubernetes privé à l’aide d’AKS Automatic à l’intérieur d’un réseau virtuel personnalisé, puis déployé une application à plusieurs conteneurs simple. 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 les instructions de la solution AKS.
Pour en savoir plus sur AKS Automatic, passez à la présentation.