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 simple pour les développeurs, les ingénieurs DevOps et les 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 disponibilité des pods qui garantit que 99,9 % des opérations de préparation de pod éligibles se terminent en 5 minutes, assurant une infrastructure fiable et auto-réparatrice 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 Kubernetes concepts de base pour Azure Kubernetes Service (AKS).
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 de Azure, créez un compte free.
- Azure CLI version 2.86.0 ou ultérieure. Pour rechercher la version, exécutez
az --versionla commande. Si vous devez installer ou mettre à niveau, consultez 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é 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 dédié pour le serveur d'API d’une taille d'au moins
*/28, qui est délégué àMicrosoft.ContainerService/managedClusters.- S'il existe un groupe de sécurité réseau (NSG) attaché à des sous-réseaux, assurez-vous que les règles autorisent le trafic suivant entre les nœuds et le serveur d'API, l'Azure Load Balancer et le serveur d'API, ainsi que la communication entre pods.
- S'il existe un pare-feu Azure ou une autre méthode ou appliance de restriction sortante, vérifiez que les règles réseau sortantes requises et les noms de domaine complets sont autorisés.
- AKS Automatic enable Azure Policy sur votre cluster AKS, mais vous devez préinscrire le fournisseur de ressources
Microsoft.PolicyInsightsdans votre abonnement pour une expérience plus fluide. Pour plus d’informations, consultez les fournisseurs de ressources et types Azure. - Désinstallez l’extension AKS-preview à l’aide de
az extension remove -n aks-preview.
Important
À partir d’AKS 1.36, les nouveaux clusters AKS Automatic activeront par défaut Kubernetes Gateway API via le module complémentaire de routage d’application au lieu de Managed NGINX ingress avec le module complémentaire de routage d’application, en raison de l’abandon en amont d’Ingress NGINX.
Les clusters automatiques existants ne sont pas affectés, mais doivent commencer la migration vers l’API kubernetes Gateway via le module complémentaire de routage d’application.
Limites
Les limitations suivantes s’appliquent aux clusters automatiques AKS :
- AKS Automatic est généralement disponible dans les régions suivantes :
australiaeast,austriaeast,belgiumcentral,brazilsouth,canadacentral,centralindia,centralus,chilecentral,denmarkeast,eastasia,eastus,eastus2,francecentral,germanywestcentral,indonesiacentral,israelcentral,italynorth,japaneast,japanwest,koreacentral,malaysiawest,mexicocentral,newzealandnorth,northeurope,norwayeast,polandcentral,southafricanorth,southcentralus,southeastasia,spaincentral,swedencentral,switzerlandnorth,uaenorth,uksouth,westeurope,westus2,westus3.- Par défaut, les nouveaux clusters automatiques AKS activent les pools de nœuds système managés et LocalDNS. Vous ne pouvez pas créer de clusters automatiques AKS sans pools de nœuds système managés dans n’importe quelle région.
- Le cluster automatique AKS est préconfiguré avec le verrouillage du groupe de ressources des nœuds, ce qui n’autorise pas les modifications du
MC_groupe de ressources et empêche les liens de réseau virtuel sur la zone DNS privée par défaut. Pour les scénarios DNS inter-réseaux virtuels ou personnalisés, utilisez un réseau personnalisé et un DNS privé en suivant Créer un cluster automatique de Azure Kubernetes Service (AKS) privé dans un réseau virtuel personnalisé. - Azure CLI version 2.86.0 ou ultérieure est requise. Pour rechercher la version, exécutez
az --versionla commande. Si vous devez installer ou mettre à niveau, consultez Installer Azure CLI. - Les extensions suivantes ne sont pas prises en charge :
- Les nœuds Windows ne sont pas pris en charge.
- La migration entre la référence SKU de base AKS et la référence SKU automatique n’est pas prise en charge.
- Les migrations entre les clusters automatiques AKS sans pools de nœuds système managés et les clusters automatiques AKS avec des pools de nœuds système managés ne sont pas prises en charge.
Définir des variables
Définissez les variables suivantes 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 Azure ressources 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": "canadacentral",
"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 un sous-réseau de serveur d’API. AKS délègue le sous-réseau à Microsoft.ContainerService/managedClusterson votre compte, 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 neuf adresses IP (9) dans l’espace d’adressage du sous-réseau. L’épuisement des adresses IP peut empêcher la mise à l’échelle du serveur d’API et provoquer une panne de serveur d’API.
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 userNodeSubnet \
--address-prefixes 172.19.1.0/24
az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name managedSystemNodeSubnet \
--address-prefixes 172.19.0.64/26
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 nœud utilisateur et sous-réseau de nœud système | 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 (équilibreur 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 l’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-object-id "${IDENTITY_PRINCIPAL_ID}" \
--assignee-principal-type ServicePrincipal
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 d’autres options, comme 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" \
--node-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/userNodeSubnet" \
--system-node-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/managedSystemNodeSubnet"
--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 LES VPN ajoutent des coûts et nécessitent d’autres complexités réseau. 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, consultez 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 automatiques AKS sont configurés avec Microsoft Entra ID pour le contrôle d’accès en fonction du rôle Kubernetes (RBAC).
Lorsque vous créez un cluster à l’aide d'Azure CLI, votre utilisateur se voit assigné les rôles intégrés pour .
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-hostedpool-16652789-vms1 Ready <none> 19m v1.34.7
aks-hostedpool-16652789-vms2 Ready <none> 19m v1.34.7
aks-hostedpool-16652789-vms3 Ready <none> 19m v1.34.7
aks-system-surge-zq4d2 Ready <none> 19m v1.34.7
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 user node subnet.')
param userNodeSubnetName string = 'userNodeSubnet'
@description('The subnet prefix of the user node subnet.')
param userNodeSubnetPrefix string = '172.19.1.0/24'
@description('The name of the system node subnet.')
param systemNodeSubnetName string = 'systemNodeSubnet'
@description('The subnet prefix of the system node subnet.')
param systemNodeSubnetPrefix string = '172.19.0.64/26'
// Virtual network with an API server subnet, a user node subnet, and a system node subnet
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [ addressPrefix ]
}
subnets: [
{
name: apiServerSubnetName
properties: {
addressPrefix: apiServerSubnetPrefix
}
}
{
name: userNodeSubnetName
properties: {
addressPrefix: userNodeSubnetPrefix
}
}
{
name: systemNodeSubnetName
properties: {
addressPrefix: systemNodeSubnetPrefix
}
}
]
}
}
output apiServerSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, apiServerSubnetName)
output userNodeSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, userNodeSubnetName)
output systemNodeSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, systemNodeSubnetName)
Enregistrez le fichier Bicep virtualNetwork.bicep sur votre ordinateur local.
Important
Le fichier Bicep définit le paramètre vnetName sur aksAutomaticVnet, le addressPrefix param sur 172.19.0.0/16, le apiServerSubnetPrefix param à 172.19.0.0/28 et le apiServerSubnetPrefix param à 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 à l’aide du 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 nœud utilisateur et sous-réseau de nœud système | 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 (équilibreur 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 l’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
Ce fichier Bicep définit une identité managée utilisateur assignée.
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 le 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 à l’aide du 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://dotnet.territoriali.olinfo.it/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 à l’aide du 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 d’autres options 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 = 'aksPrivateAutomaticCluster'
@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 user node subnet.')
param userNodeSubnetId string
@description('The resource ID of the system node subnet.')
param systemNodeSubnetId 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: {
apiServerAccessProfile: {
subnetId: apiServerSubnetId
enablePrivateCluster: true
}
networkProfile: {
outboundType: 'loadBalancer'
}
hostedSystemProfile: {
systemNodeSubnetID: systemNodeSubnetId
nodeSubnetID: userNodeSubnetId
}
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${uamiId}': {}
}
}
}
Enregistrez le fichier Bicep aks.bicep sur votre ordinateur local.
Important
Le fichier Bicep définit le clusterName paramètre à aksPrivateAutomaticCluster. 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 à l’aide du Azure CLI. Vous devez fournir l’ID de ressource du sous-réseau du serveur d’API, l’ID de ressource de sous-réseau du nœud utilisateur, l’ID de ressource de sous-réseau du nœud système et l’ID de ressource d’identité managée 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 nodeSubnetId=<user node subnet resource id> \
--parameters systemNodeSubnetId=<system node 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. Express Route et VPN ajoutent des coûts et nécessitent une plus grande complexité réseau. 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, consultez 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 automatiques AKS sont configurés avec Microsoft Entra ID pour le contrôle d’accès en fonction du rôle Kubernetes (RBAC).
Important
Lorsque vous créez un cluster à l’aide de Bicep, vous devez asigner l’un des rôles intégrés tels que Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin ou Azure Kubernetes Service RBAC Cluster Admin à vos utilisateurs, limité au cluster ou à un espace de noms spécifique, par exemple en utilisant az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Vérifiez également que vos utilisateurs disposent du rôle intégré Azure Kubernetes Service Cluster User pour pouvoir exécuter az aks get-credentials, puis obtenir le kubeconfig de votre cluster AKS à l’aide de 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-hostedpool-16652789-vms1 Ready <none> 19m v1.34.7
aks-hostedpool-16652789-vms2 Ready <none> 19m v1.34.7
aks-hostedpool-16652789-vms3 Ready <none> 19m v1.34.7
aks-system-surge-zq4d2 Ready <none> 19m v1.34.7
Déployer l’application
Pour déployer l’application, vous utilisez un fichier manifeste pour créer tous les objets requis pour exécuter 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 par souci de simplicité, mais nous vous recommandons d’utiliser des services managés, tels que 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 pour 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 sur l’adresse IP externe de votre entrée pour afficher l’application Azure Store en action.
Supprimer le cluster
Si vous ne prévoyez pas de passer par le didacticiel AKS, supprimez les ressources inutiles pour éviter les frais Azure. 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.